|   FOROS      |         |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 WAMP - PHP - MySQL
   Elastix - VoIP Cosas de Windows Webs interesantes Arduino
  Estación meteorológica Visual Basic Script (VBS) Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

____________________________

11.- Juego de luces.

- Aprovechamos el circuito anterior 10.- Cuenta arriba abajo, para realizar un juego de luces.

- Cuando pulsamos el Botón del pin8 se presenta un juego de luces.
  Cuando pulsamos el Botón del pin9 se presenta otro juego de luces.

- Los botones deben mantenerse pulsados (uno u otro, los dos no) para que se realice los juegos de luces.

- Un juego de luces es ir enciéndolas una a una y luego ir apagándolas, también una a una.
- El otro juego de luces en un parpadeo de todas encendidad y luego todas apagadas.

- Los diodos están conectados en cátodo común, es decir todos los cátodos están conectados entre sí. La resistencia limitadora es común.
- Observa cómo cambia la luminosidad según la cantidad que haya encendido. Para evitar esto, pondríamos una resistencia en cada diodo.

- Se ha realizado mediante Subrutinas:

void juego1();
void juego2();

 

Código
/*
  Juan A. Villalpando
  kio4.com
  agosto 2015
 */

/* Al pulsar el pulsador del pin8 se ejecuta un juego de luces.
   Al pulsar el pulsador del pin9 se ejecuta otro juego de luces.
   juego1(), las luces se encienden y apagan secuencialmente.
   juego2(), las luces se encienden todas y luego se apagan todas a la vez.

*/

#define pin8 8   // Al terminal  8 lo llamamos pin8. Aquí irá un pulsador.
#define pin9 9   // Al terminal  9 lo llamamos pin9. Aquí irá otro pulsador.

#define LED2 2
#define LED3 3
#define LED4 4
#define LED5 5
#define LED6 6

int luces1, luces2;   // Variables enteras.
int contador=0;       // Variable contador igual a cero
int cambio=3;
int s=1;

// En el setup establecemos los parámetros iniciales.
void setup() {
  pinMode(pin8, INPUT);     // El pin8 será entrada. Pulsador.
  pinMode(pin9, INPUT);     // El pin9 será entrada. Pulsador.
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  void juego1();
  void juego2();
  Serial.begin(9600);        // Para ver información en el Seria Monitor.
}


void loop() {
  luces1 = digitalRead(pin8); // Lee el contador del pin8 y se lo asigna a luces1. (Puede ser 0 o 1)
  luces2 = digitalRead(pin9); // Lee el contador del pin9 y se lo asigna a luces2. (Puede ser 0 o 1)
if (luces1 == HIGH) { 
  contador = contador + s;  
  if (contador > 15) { contador=15; s = -1; }
  if (contador < 0)  { contador=0;  s=1;    }
  juego1();    
} 
if (luces2 == HIGH) { 
  juego2();                                
} 
}

////////////////////////////////////////////////
// Subrutina juego1()
void juego1(){
   Serial.print(contador);

  if (contador >= cambio*1){ // 3
   digitalWrite(LED2, HIGH); 
   }
      else
  {
   digitalWrite(LED2, LOW); 
  }
      if (contador >= cambio*2){ // 6
   digitalWrite(LED3, HIGH); 
   }
      else
  {
   digitalWrite(LED3, LOW); 
  }   
      if (contador >= cambio*3){ // 9
   digitalWrite(LED4, HIGH); 
   }
      else
  {
   digitalWrite(LED4, LOW); 
  }   
      if (contador >= cambio*4){ // 12
   digitalWrite(LED5, HIGH); 
   }
      else
  {
   digitalWrite(LED5, LOW); 
  }
      if (contador >= cambio*5){ // 15
   digitalWrite(LED6, HIGH); 
   }
      else
  {
   digitalWrite(LED6, LOW); 
  }   
   delay(100); // Retardo entre pulsaciones.
}

////////////////////////////////////////////////
// Subrutina juego2()
void juego2(){

   digitalWrite(LED2, HIGH); 
   digitalWrite(LED3, HIGH); 
   digitalWrite(LED4, HIGH); 
   digitalWrite(LED5, HIGH); 
   digitalWrite(LED6, HIGH); 
   delay(500);
   digitalWrite(LED2, LOW); 
   digitalWrite(LED3, LOW); 
   digitalWrite(LED4, LOW); 
   digitalWrite(LED5, LOW);
   digitalWrite(LED6, LOW); 
   delay(500);       
  }   

- Fíjate que he puesto varios comandos en la misma línea del if. Separados por punto y coma.

if (contador > 15) { contador=15; s = -1; }

_________________

- Propuestas.

- Diseña otros juego de luces. Utiliza más pulsadores.

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información