|     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

____________________________

10.- Contador arriba, abajo (up down).

Disponemos de dos pulsadores y 5 LED.

Al pulsar un pulsador se incrementa el contador.
Al pulsar el otro pulsador se decrementa el contador.

Según el valor de contador se encenderá uno o varios LED.

Para que encienda o apagen se necesita pulsar tres veces.

Es importante configurar el delay para el retardo de pulsación del botón.

- Consulta el Monitor Serial.

En el dibujo de Protoboard, recuerda que la fila horizontal de abajo tiene todos sus terminales unidos, ahí van los cables amarillos de los LED.

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

/* Al pulsar el pulsador8 se incrementa el contador.
   Al pulsar el pulsador9 se decrementa el contador. 
   En la subrutina luces, consulta el contador...
   según su valor se encenderá uno o varios LED.
   El contador tiene limitada su cuenta entre 0 y 15.
*/

#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 contador8, contador9; // Variables enteras.
int contador=0;     // Variable contador igual a cero
int cambio=3;

// 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 luces();
  Serial.begin(9600);        // Para ver información en el Serial Monitor.
}


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

// Subrutina luces()
void luces(){
   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(300); // Retardo entre pulsaciones.
}

_________________

- Propuestas.

- Utiliza 10 LED.

- ¿Qué es el rebote cuando se pulsa un botón o se deja de pulsar? ¿Qué es bounce?

________________________________

 

- 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