|     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

____________________________

4.- Pulsador contador.

Al pulsar el pulsador se enciende el LED13, al dejar de pulsar, se apaga.

Cuando pulsamos 4 veces se enciende el LED12, cuando pulsamos 8, se apaga.

 

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

// Entrada y Salida.
// Al pulsar el pulsador se enciende el LED13.
// Cuando se pulsan 4 veces se enciende el LED12, cuando se pulsa 8, se apaga.

#define pin2 2   // Al terminal  2 lo llamamos pin2. Aquí irá el pulsador.
#define LED12 12 // Al terminal 12 lo llamamos LED12. Aquí irá el LED.
#define LED13 13 // Al terminal 13 lo llamamos LED13. Aquí irá otro LED.
int valor2; // Esto es una variable entera
int contador=0; // Variable contador igual a cero

// En el setup establecemos los parámetros iniciales.
void setup() {
  pinMode(pin2, INPUT);     // El pin2 será entrada. Pulsador.
  pinMode(LED12, OUTPUT);   // El LED12 será salida. LED. 
  pinMode(LED13, OUTPUT);   // El LED13 será salida. LED.
  Serial.begin(9600);        // Para ver información en el Seria Monitor.
}


void loop() {
  valor2 = digitalRead(pin2); // Lee el valor del pin2 y se lo asigna a valor2. (Puede ser 0 o 1)
if (valor2 == HIGH) { 
    digitalWrite(LED13, HIGH); // Si valor2 es ALTO, pone el LED13 en ALTO
    Serial.println("Pulsado");
    contador = contador + 1;
    
                if (contador == 4){
                   digitalWrite(LED12, HIGH);
                                   } 
                if (contador == 8){
                   digitalWrite(LED12, LOW);
                                   } 
    delay(600);
                                 
} 

if (valor2 == LOW) { 
    digitalWrite(LED13, LOW); // Si valor2 es BAJO, pone el pin13 en BAJO
    Serial.println("No Pulsado");
} 
}

- He cambiado en nombre de los terminales, LED12 y LED13.

- Cada vez que se pulsa el contador cuenta uno más.

- Otra manera de poner el incremento: contador =++contador;

contador = contador + 1;

if (contador == 4) {

digitalWrite(LED12, HIGH);

}

if (contador == 8){

digitalWrite(LED12, LOW);

}

- El bloque if comienza por { y termina por }

- Cuando un if está dentro de otro, se dice que está anidado.

- Se ha puesto el delay (retardo) para evitar el rebote, esto es que cuando dejamos pulsado sigue contando. En este caso bloque la cuenta durante 600 milisegundos.

- Recuerda que las líneas de código terminan en punto y coma; (Salvo algunas de ellas.)

- Recuerda que debes guardar cada archivo de proyecto en una carpeta única para él.

_________________

Propuestas.

- Poner otro pulsador conectado al terminal 3, de manera que cuando lo pulsemos el contador vuelva a cero.

if (valor3 == HIGH) {
contador = 0;
}

________________________________

- 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