|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

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

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

____________________________

11A.- Juego de luces (II).

- El siguiente código utiliza 4 LED situados en los pines 2, 3, 4 y 5

- Y 3 Pulsadores situados en 10, 11 y 12.

- El dibujo siguiente no corresponde a este código, debemos poner otro Pulsador y cambiar de sitio los dos que ya están puestos.

 

__________________________________________
- Código 2.

- Este tipo de código tiene el inconveniente que debe realizar una pasada de la función void, antes de comprobar si se ha vuelto a pulsar otro Pulsador.

- En caso de pulsar varios Pulsadores, se tomará la función correspondiente al último número.

Código
/*
  Juan A. Villalpando
  kio4.com
  agosto 2018
 */
int LED2 = 2;
int LED3 = 3;
int LED4 = 4;
int LED5 = 5;

int Pulsa10 = 10;
int Pulsa11 = 11;
int Pulsa12 = 12;

int valor10;
int valor11;
int valor12;

int juego = 0;

void setup(){
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(Pulsa10, INPUT);  
pinMode(Pulsa11, INPUT);  
pinMode(Pulsa12, INPUT);
}

void loop() {
 valor10 = digitalRead(Pulsa10);
 valor11 = digitalRead(Pulsa11);
 valor12 = digitalRead(Pulsa12);
 
 if(valor10 == HIGH) {juego = 1;}
 if(valor11 == HIGH) {juego = 2;}
 if(valor12 == HIGH) {juego = 3;}

 if (juego == 1) {juego1();}
 if (juego == 2) {juego2();}
 if (juego == 3) {juego3();}
}

void juego1() {
 digitalWrite(LED2, HIGH);
 delay(500);
 digitalWrite(LED3, HIGH);
 delay(500);
 digitalWrite(LED4, HIGH);
 delay(500);
 digitalWrite(LED5, HIGH);
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, LOW);
}

void juego2() {
 digitalWrite(LED2, HIGH);
 digitalWrite(LED3, HIGH);
 digitalWrite(LED4, HIGH);
 digitalWrite(LED5, HIGH);
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, LOW);
 delay(500);
}

void juego3() {
 digitalWrite(LED2, HIGH);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, HIGH);
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, HIGH);
 digitalWrite(LED4, HIGH);
 digitalWrite(LED5, LOW);
 delay(500);
}     
 

__________________________________________
- Código 2.

- En este otro código antes de cada delay se comprueba si se ha pulsado algún Pulsador.

- No es una buena técnica, pero podemos probarla.

- La técnica más eficiente sería utilizar lo que se denomina INTERRUPCIONES, Arduino UNO, tiene dos terminales de interrupciones, el terminal 2 y el 3.

Código
/*
  Juan A. Villalpando
  kio4.com
  agosto 2018
 */
 
int LED2 = 2;
int LED3 = 3;
int LED4 = 4;
int LED5 = 5;

int Pulsa10 = 10;
int Pulsa11 = 11;
int Pulsa12 = 12;

int valor10;
int valor11;
int valor12;

int juego = 0;

void setup(){
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(Pulsa10, INPUT);  
pinMode(Pulsa11, INPUT);  
pinMode(Pulsa12, INPUT);
}

void loop() {
 comprobar();
}

void comprobar (){
 valor10 = digitalRead(Pulsa10);
 valor11 = digitalRead(Pulsa11);
 valor12 = digitalRead(Pulsa12);
 
 if(valor10 == HIGH) {juego = 1;}
 if(valor11 == HIGH) {juego = 2;}
 if(valor12 == HIGH) {juego = 3;}

 if (juego == 1) {juego1();}
 if (juego == 2) {juego2();}
 if (juego == 3) {juego3();}
}

void juego1() {
 digitalWrite(LED2, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED3, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED4, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED5, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, LOW);
}

void juego2() {
 digitalWrite(LED2, HIGH);
 digitalWrite(LED3, HIGH);
 digitalWrite(LED4, HIGH);
 digitalWrite(LED5, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, LOW);
 comprobar();
 delay(500);
}

void juego3() {
 digitalWrite(LED2, HIGH);
 digitalWrite(LED3, LOW);
 digitalWrite(LED4, LOW);
 digitalWrite(LED5, HIGH);
 comprobar();
 delay(500);
 digitalWrite(LED2, LOW);
 digitalWrite(LED3, HIGH);
 digitalWrite(LED4, HIGH);
 digitalWrite(LED5, LOW);
 comprobar();
 delay(500);
}

_________________

- 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