Вы находитесь на странице: 1из 8

/*** Global variables ***/

int Boton1=0;
int Boton2=0;
int Reset=0;
int Boton3=0;
int Boton4=0;
/*** Function declaration ***/
void setup()
{
pinMode(2,INPUT);
pinMode(3,OUTPUT);
pinMode(4,INPUT);
pinMode(5,OUTPUT);
pinMode(7,INPUT);
pinMode(6,OUTPUT);
pinMode(9,INPUT);
pinMode(8,OUTPUT);
pinMode(10,INPUT);
}
void loop()
{
if (digitalRead(2) == HIGH) {
if (Boton1 == 0 == Boton2 == 0 == Boton3 == 0 == Boton4 == 0) {
digitalWrite(3,HIGH);
delay(500);
Boton1=1;
Reset=0;
Boton3=0;
Boton4=0;
Boton2=0;
}
}
if (digitalRead(4) == HIGH) {
if (Boton2 == 0 == Boton1 == 0 == Boton3 == 0 == Boton4 == 0) {
digitalWrite(5,HIGH);
delay(500);
Boton2=1;
Reset=0;
Boton3=0;
Boton4=0;
Boton1=0;
}
}
if (digitalRead(7) == HIGH) {
if (Boton3 == 0 == Boton1 == 0 == Boton2 == 0 == Boton4 == 0) {
digitalWrite(6,HIGH);
delay(500);
Boton3=1;
Reset=0;
Boton4=0;
Boton1=0;
Boton2=0;
}
}
if (digitalRead(9) == HIGH) {
if (Boton4 == 0 == Boton1 == 0 == Boton2 == 0 == Boton3 == 0) {
digitalWrite(8,HIGH);
delay(500);
Boton4=1;
Boton3=0;
Boton2=0;
Boton1=0;
Reset=0;
}
}
if (digitalRead(10) == HIGH) {
if (Reset == 0) {
digitalWrite(3,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(8,LOW);
delay(500);
Reset=1;
Boton1=0;
Boton2=0;
Boton3=0;
Boton4=0;
}
}
}
/*** Function definition ***/
Circuito LED:
1. Colocamos el LED en la zona central de la breadboard.
2. Conectamos el LED a la resistencia. Para ello, insertamos una de las patas de
la resistencia a la misma columna en la que está a pata más larga del LED. La
otra pata de la resistencia la podemos colocar en cualquier otra columna
cercana.
3. Conectamos el LED al pin 8. Insertamos un cable (amarillo) desde la última pata
de la resistencia que hemos pinchado en la breadboard (la que no está en la
columna del LED) al pin 8 de Arduino.
4. Conectamos el LED a GND. Colocamos un cable (azul) desde la pata más corta
del LED a la fila azul de la breadboard.
Circuito botón:
1. Colocamos el botón en el centro de la breadboard.
2. Conectamos el botón a la resistencia. Insertamos una pata de la resistencia en
una de las columnas del botón, la otra la llevamos hasta la fila azul de la
breadboard.
3. Conectamos el botón a GND. Colocamos un cable (rosa) desde la otra columna
del botón hasta la fila roja.
4. Conectamos el botón al pin 2. Insertamos un cable (naranja) desde la columna
en la que NO está la resistencia hasta el pin 2 de Arduino.
5. Conectamos Arduino a la breadboard. Pinchamos un cable (negro) desde la fila
azul de la breadboard a GND en Arduino, y un cable (rojo) desde la fila roja de
la breadboard a 5V en Arduino.

Programando un botón en Arduino IDE


¡Abre Arduino IDE!
El programa que queremos crear consiste en encender y apagar un LED cuando
presionamos y soltamos un botón.
Lo primero que hacemos es inicializar tanto el LED como el botón en la
función void setup(). Esto es, tenemos que decirle a Arduino que el pin al que
hemos conectado el LED lo queremos usar como salida (OUTPUT) y que el pin al
que hemos conectado el botón lo queremos usar como entrada (INPUT).
void setup() {
pinMode(8, OUTPUT); // Inicializa el LED como salida
pinMode(2, INPUT); // Inicializa el botón como entrada
}
En la función void loop() ordenamos a Arduino que primero lea el estado del
botón y, si está presionado, encienda el LED. Si, por el contrario, el botón está
relajado, debe apagar el LED.
void loop() {
if(digitalRead(2) == HIGH) { // Si el botón está pulsado
digitalWrite(8, HIGH); // Enciende el LED
} else { // De lo contrario
digitalWrite(8, LOW); // Apaga el LED
}
}
Finalmente, nuestro código ha quedado así:
void setup() {
pinMode(8, OUTPUT); // Inicializa el LED como salida
pinMode(2, INPUT); // Inicializa el botón como entrada
}

void loop() {
if(digitalRead(2) == HIGH) { // Si el botón está pulsado
digitalWrite(8, HIGH); // Enciende el LED
} else { // De lo contrario
digitalWrite(8, LOW); // Apaga el LED
}
}

Conectando dos botones a Arduino (pull-up)


Hasta ahora hemos usado un único botón para encender y apagar el LED. En este
caso, vamos a usar dos botones, A y B, cada uno de ellos tiene una función, el
botón A para encender el LED y el botón B para apagarlo.
Conectamos los componentes de forma similar al esquema siguiente:
Circuito LED:
1. Colocamos el LED en la zona central de la breadboard.
2. Conectamos el LED a la resistencia. Para ello, insertamos una de las patas de
la resistencia a la misma columna en la que está la pata más larga del LED. La
otra pata de la resistencia la podemos colocar en cualquier otra columna
cercana.
3. Conectamos el LED al pin 8. Insertamos un cable (naranja) desde la última pata
de la resistencia que hemos pinchado en la breadboard (la que no están en la
columna del LED) al pin 8 de Arduino.
4. Conectamos el LED a GND. Colocamos un cable (azul) desde la pata más corta
del LED a la fila azul de la breadboard.
Circuito botón A:
1. Colocamos un botón en el centro de la breadboard.
2. Conectamos el botón a la resistencia. Insertamos una pata de la resistencia en
una de las columnas del botón, la otra la llevamos hasta la fila roja de la
breadboard (pull-up).
3. Conectamos el botón a GND. Colocamos un cable (morado) desde la otra
columnas del botón hasta la fila azul.
4. Conectamos el botón al pin 2. Insertamos un cable (amarillo) desde la columna
en la que están la resistencia y el botón hasta el pin 2 de Arduino.
Circuito botón B:
1. Colocamos el otro botón en el centro de la breadboard.
2. Conectamos el botón a la resistencia. Insertamos una pata de la resistencia en
una de las columnas del botón, la otra la llevamos hasta la fila roja de la
breadboard(pul-up).
3. Conectamos el botón a GND. Colocamos un cable (verde) desde la otra
columnas del botón hasta la fila azul.
4. Conectamos el botón al pin 4. Insertamos un cable (rosa) desde la columna en
la que están la resistencia y el botón hasta el pin 4 de Arduino.

Programando dos botones en Arduino IDE


En la función void setup(), tenemos que indicar que los botones A y B son una
entrada y el LED una salida.
void setup() {
pinMode(8, OUTPUT); // Inicializa el LED como salida
pinMode(2, INPUT); // Inicializa el botón A como entrada
pinMode(4, INPUT); // Inicializa el botón B como entrada
}
En la función void loop(),ordenamos a nuestro Arduino que, si el botón A está
presionado encienda el LED, y si presionamos el botón B apague el LED.
void loop() {
if (digitalRead(2) == LOW) { // Si el botón A está presionado
digitalWrite(8, HIGH); // Enciende el LED
}

if (digitalRead(4) == LOW) { // Si el botón B está presionado


digitalWrite(8, LOW); // Apaga el LED
}
}
Finalmente, el código nos ha quedado así:
void setup() {
pinMode(8, OUTPUT); // Inicializa el LED como salida
pinMode(2, INPUT); // Inicializa el botón A como entrada
pinMode(4, INPUT); // Inicializa el botón B como entrada
}

void loop() {
if (digitalRead(2) == LOW) { // Si el botón A está presionado
digitalWrite(8, HIGH); // Enciende el LED
}

if (digitalRead(4) == LOW) { // Si el botón B está presionado


digitalWrite(8, LOW); // Apaga el LED
}
}
¿Compila? Una vez que la subida se haya completado con éxito, el LED se
enciende cuando pulsamos el botón A y se apaga cuando pulsamos el botón B.

Sigue explorando
Dos LEDs, un botón para cada uno
Realiza un circuito usando 2 botones y 2 LEDs. El botón A tiene la función de
encender y apagar el LED A, el botón B tiene la función de encender y apagar el
LED B. Además, muestra en el monitor serie el estado (on/off) del LED A.

Varía el parpadeo de un LED con dos botones


Haz parpadear un LED. En este caso, el tiempo que el LED permanece encendido
y apagado es variable, y puede incrementarse o decrementarse pulsando dos
botones. Como consejo, incrementa/decrementa el tiempo de parpadeo en saltos
grandes (~200ms). Explora variando este parámetro.

Se proponen tres ejercicios diferentes,


1.- Este es el más sencillo, al accionar el pulsador enciendo un diodo LED, al soltar
se apaga:
int buttonPin = 2;
int ledPin = 13;

int estado = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop(){
estado = digitalRead(buttonPin);

if (estado == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
2. Ahora con dos pulsadores, al accionar el pulsador 1, enciende el Diodo, al
accionar el pulsador 2, apaga el diodo.
int ledPin = 13;
int inputPin1 = 2; // pulsador 1
int inputPin2 = 3; // pulsador 2
int p1;
int p2;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(inputPin1, INPUT);
pinMode(inputPin2, INPUT);
}

void loop(){
p1=digitalRead(inputPin1);
p2=digitalRead(inputPin2);
if (p1 == HIGH) {
digitalWrite(ledPin, HIGH);
} else if (p2 == HIGH) {
digitalWrite(ledPin, LOW);
}
}

3. Ahora usamos los pulsadores para iluminar más o atenuar la luz del led, para
ello debemos cambiar la conexión del Led al pin 9, que usa la salida PWM,
modulación por ancho de pulso, como si de una salida analógica se tratara.
int ledPin = 9;
int inputPin1 = 2; // pulsador 1
int inputPin2 = 3; // pulsador 2
int p1;
7
int p2;
8
int value = 0;
9
10
void setup() {
11
pinMode(ledPin, OUTPUT);
12
pinMode(inputPin1, INPUT);
13
pinMode(inputPin2, INPUT);
14
}
15
void loop(){
16
17
p1=digitalRead(inputPin1);
18
p2=digitalRead(inputPin2);
19
if (p1 == HIGH) { value--; }
20
else if (p2 == HIGH) { value++; }
21
value = constrain(value, 0, 255);
22
analogWrite(ledPin, value);
delay(10);
}

Вам также может понравиться