Proyecto Arduino

1. Como manejar un LED

El objetivo de este proyecto es construir un circuito para encender y apagar un LED.


1.1. Componentes electrónicos

  • Placa Arduino UNO R3.
  • Protoboard.
  • Cables de conexión macho-macho.
  • Una resistencia de 330 (Naranja, Naranja, Marrón).
  • Un LED azul.
Montaje

1.2. Programación

//  Declaración de constantes
#define BLUE 2 // Pin al que está conectado el LED azul
#define DELAYTIME 500 // Milisegundos de parada para la función delay
// Configuración de pines
void setup()
{
   pinMode(BLUE, OUTPUT) ;
   digitalWrite(BLUE, LOW) ;
}
void loop()
{
   // Encender LED
   digitalWrite(BLUE, HIGH) ;
   // Esperar medio segundo
   delay(DELAYTIME) ;
   // Apagar LED
   digitalWrite(BLUE, LOW) ;
   // Esperar medio segundo
   delay(DELAYTIME) ;
}

1.3. Ejecución

Antes de ejecutar el código, es posible que tenga algún problema con los permisos en Linux para acceder a la tarjeta Arduino, si esto ocurre debes abrir un terminal y digitar lo siguiente:
  • sudo usermod -a -G dialout Nombre del usuario
  • sudo chmod a+rw /dev/ttyACM0
El código anterior en el editor de Arduino se vera algo así:
  

Por último, de click en le botón Upload para enviar el codigo a la tarjeta Arduino y se tendra el siguiente resultado:

 

2. Como manejar varios LEDs

El objetivo de este proyecto es aprender a manejar varios componentes de forma simultánea en un mismo proyecto de Arduino.

 

2.1. Componentes electrónicos

  • Placa Arduino UNO R3.
  • Protoboard.
  • Cables de conexión macho-macho.
  • Cuatro resistencia de 330 (Naranja, Naranja, Marrón).
  • Cuatro LED de colores. 
Montaje

2.2. Programación

// Declaración de constantes (pines conectados a la tarjeta)
#define RED1 2
#define RED2 7
#define GREEN1 4
#define GREEN2 12
#define DELAYTIME 500
void setup()
{
 // Configuración de pines
 pinMode(RED1, OUTPUT);
 pinMode(RED2, OUTPUT);
 pinMode(GREEN1, OUTPUT);
 pinMode(GREEN2, OUTPUT);
 digitalWrite(RED1,LOW);
 digitalWrite(RED2,LOW);
 digitalWrite(GREEN1,LOW);
 digitalWrite(GREEN2,LOW);
}
void loop()
{
 // Encendido de los LED verde y apagado de los LED rojo
 digitalWrite(GREEN1, HIGH);
 digitalWrite(GREEN1, HIGH);
 digitalWrite(RED1, LOW);
 digitalWrite(RED2, LOW);
 // Espera de tiempo declarado en la constante DELAYTIME
 delay(DELAYTIME);
 // Encendido del LED rojo y apagado de los LED verde
 digitalWrite(GREEN1, LOW);
 digitalWrite(GREEN1, LOW);
 digitalWrite(RED1, HIGH);
 digitalWrite(RED2, HIGH);
 // Espera de tiempo declarado en la constante DELAYTIME
 delay(DELAYTIME);
}

2.3. Ejecución

 

3. El monitor serie

El objetivo de este proyecto es interactuar a travéz del monitor serie y que mediante unas opciones presentadas en el monitor porder encender todos los LEDs, encender un solo LED o apagar todos los LED.

  

3.1. Componentes electrónicos

  • Placa Arduino UNO R3.
  • Protoboard.
  • Cables de conexión macho-macho.
  • Cinco resistencia de 330 (Naranja, Naranja, Marrón).
  • Cinco LED de colores (rojo, amarillo, blanco, verde y azul).

3.2. Programación

//  Declaración de constantes
#define BLUE 2
#define GREEN 7
#define WHITE 8
#define YELLOW 12
#define RED 13
#define SERIALSPEED 9600 // Velocidad de transmisión del monitor serie

// Configuración de pines e inicialización del monitor serie
void setup()
{
  pinMode(BLUE, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(WHITE, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(RED, OUTPUT);
  AllToLow();
  Serial.begin(SERIALSPEED);
}

// Muestra el mensaje y lee la opción elegida
void loop()
{
  int selected=ShowMessage();
  switch(selected)
  {
   case 48://Opción 0 seleccionada
   Serial.println("¡LED apagados!");
   AllToLow();
   break;
   case 49://Opción 1 seleccionada
   Serial.println("¡LED azul encendido!");
   AllToLow();
   digitalWrite(BLUE, HIGH);
   break;
   case 50://Opción 2 seleccionada
   Serial.println("¡LED verde encendido!");
   AllToLow();
   digitalWrite(GREEN, HIGH);
   break;
   case 51://Opción 3 seleccionada
   Serial.println("¡LED blanco encendido!");
   AllToLow();
   digitalWrite(WHITE, HIGH);
   break;
   case 52://Opción 4 seleccionada
   Serial.println("¡LED amarillo encendido!");
   AllToLow();
   digitalWrite(YELLOW, HIGH);
   break;
   case 53://Opción 5 seleccionada
   Serial.println("¡LED rojo encendido !");
   AllToLow();
   digitalWrite(RED, HIGH);
   break;
   case 57://Opción 6 seleccionada
   Serial.println("¡LEDs encendidos !");
   digitalWrite(BLUE, HIGH);
   digitalWrite(GREEN, HIGH);
   digitalWrite(WHITE, HIGH);
   digitalWrite(YELLOW, HIGH);
   digitalWrite(RED, HIGH);
   break;
  }
}

// Función que realiza el apagado de los LED
void AllToLow()
{
  digitalWrite(BLUE, LOW);
  digitalWrite(GREEN, LOW);
  digitalWrite(WHITE, LOW);
  digitalWrite(YELLOW, LOW);
  digitalWrite(RED, LOW);
}

// Función que presenta el menú
int ShowMessage()
{
  Serial.println("Apagar todos los LEDs: 0");
  Serial.println("Encender LED Azul: 1");
  Serial.println("Encender LED Verde: 2");
  Serial.println("Encender LED Blanco: 3");
  Serial.println("Encender LED Amarillo: 4");
  Serial.println("Encender LED Rojo: 5");
  Serial.println("Encender todos los LEDs: 9");
  Serial.print("Eliga una opción: ");
  while(Serial.available()==0);
  int input=Serial.read();
  return input;
}

No hay comentarios:

Publicar un comentario