Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
___________________________
3.- Pulsador.
En este caso es un pulsador duplicado, en la parte de arriba y en la parte de abajo.
El pulsador se situa como indico en esta figura.
________________________________________________________________
- Cuando pulsamos el pulsador parpadea y cuando dejamos de pulsar, el LED13 queda estático.
- Vamos a poner un pulsador en el montaje del circuito anterior, es decir el Blink, de manera que cuando pulsemos el pulsador el LED13 externo parpadeará y cuando dejemos de pulsar el LED13 externo no parpadee, podrá quedar apagado o encendido, pero sin parpadear.
- Realizamos el siguiente montaje, ponemos el pulsador en serie con el LED y la resistencia como se ve en la imagen.
- El programa es el mismo del Blink.
Código |
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
} |
________________________________________________________________________________
- Al pulsar el pulsador se enciende el LED, al dejar de pulsar, se apaga.
- Ahora vamos a poner el pulsador en uno de los terminales, será un terminal de entrada INPUT, tomaremos el terminal 2.
- Al pulsar el pulsador se enciende el LED, al dejar de pulsar, se apaga.
|
|
Código |
/*
Juan A. Villalpando
kio4.com
*/
// Entrada y Salida.
// Al pulsar el pulsador se enciende el LED, al dejar de pulsarlo, se apaga.
#define pin2 2 // Al terminal 2 lo llamamos pin2. Aquí irá el pulsador.
#define pin13 13 // Al terminal 13 lo llamamos pin13. Aquí irá el LED.
int valor2; // Esto es una variable entera
// En el setup establecemos los parámetros iniciales.
void setup() {
pinMode(pin2, INPUT); // El pin2 será entrada. Pulsador.
pinMode(pin13, OUTPUT); // El pin13 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(pin13, HIGH); // Si valor2 es ALTO, pone el pin13 en ALTO
Serial.println("Pulsado");
}
if (valor2 == LOW) {
digitalWrite(pin13, LOW); // Si valor2 es BAJO, pone el pin13 en BAJO
Serial.println("No Pulsado");
}
} |
IMPORTANTE: digitalWrite(pin13, HIGH); para escribir en el terminal 13. Importante que lo recuerdes.
IMPORTANTE: digitalRead(pin2); para leer el terminal 2. Importante que lo recuerdes.
- digitalRead(pin2); Lee el valor del pin2, que puede ser alto o bajo. 1 o 0.
- Estos terminales, del 0 al 13, pueden dar en su salida 0 Voltios o 5 Voltios. Solo trabajan en forma digital.
- Cuando leen, obtienen un 1 o un 0, en este caso o 5 Voltios o 0 Voltios, trabajan tanto en entrada como en salida en forma digital.
- No es apropiado introducir en estos terminales 2,3 Voltios ni leer 1,9 Voltios, por ejemplo.
- 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.
________________________________________________________________
- Cuando pulsamos el pulsador parpadea y cuando dejamos de pulsar el LED13 queda estático, el pulsador debe estar en el terminal 2.
- Este programa debe realizar algo parecido a lo que hemos visto el principio de esta página, es decir, cuando pulsemos el pulsador, el LED13 parpadeará y cuando no pulsemos el LED13 dejará de parpadear (en este caso dejará de parpadear el LED13 externo y el LED13 que se encuentra en la placa del Arduino).
- El circuito es el mismo que el anterior.
- Puedes utilizar el código del encendido y apagado que acabamos de ver y además introducir en la parte del
if (valor2 == HIGH) {
la parte correspondiente al parpadeo visto en el código que está al principo de esta página.
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
_____________________________________________________________
- Aquí tenemos dos pulsadores, uno incrementa y el otro decrementa.
Código |
const int boton2 = 2;
const int boton3 = 3;
int valor2 = 0;
int valor3 = 0;
int estadoanteriorboton2 = 0;
int estadoanteriorboton3 = 0;
int contador = 0;
void setup() {
Serial.begin(9600);
pinMode(boton2,INPUT);
pinMode(boton3,INPUT);
digitalWrite(boton2,HIGH);
digitalWrite(boton3,HIGH);
}
void loop() {
valor2 = digitalRead(boton2);
if(valor2 != estadoanteriorboton2){
if(valor2 == 1){
contador++;
Serial.println(contador);
delay(200);
}
}
valor3 = digitalRead(boton3);
if(valor3 != estadoanteriorboton3){
if(valor3 == 1){
contador--;
Serial.println(contador);
delay(200);
}
}
estadoanteriorboton2 = valor2;
estadoanteriorboton3 = valor3;
}
|
________________________________
|