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?
________________________________
|