En el siguiente montaje se verá como utilizando un botón para conectar un led, será la primera vez que interactuemos directamente con el Arduino de forma física dándole una orden.
Los botones están en todas partes, con este montaje podréis ser “el dedo que apriete el botón”, espero que no sea para lanzar misiles nucleares a países enemigos.
Materiales empleados:
- 1x Arduino UNO R3 + Cable USB + Software en el PC
- 1x Botón pulsador
- 1x Resistencia 10kOhms
- 4x Cables macho-macho de distintos colores
Montaje:
En este caso se conecta en un mismo punto el pin 2, un términal del botón y la resistencia que viene de GND. Ese punto estará por tanto a 0V.
El otro extremo del botón se conecta a +5V con el cable rojo, en el momento que se presiona el botón el pin2 pasa a estar a +5V y la resistencia de 10kOhms evita el cortocircuito con GND.
A esta configuración se le llama resistencia en Pull-down, porque establece un nivel de tensión de 0 por defecto en la entrada digital del pin 2. Se puede hacer otro montaje en el que la resistencia se coloque entre el pin digital y el de +5V y entonces el nivel de tensión por defecto es 1 y se le llama configuración con resistencia en Pull-up (se verá en el próximo montaje). Con la práctica se elige entre configuraciones pull-down o pull-up en función de las necesidades.
En principio es preferible la configuración Pull-down, dado que los componentes no quedan en tensión por defecto (más segura).
Código:
// Montaje 4: Encender un led con un pulsador (Button)
// Código revisado para Arduinopasoapaso
// Open Source (Código abierto)
// Estructura del programa:
// 1.- Bibliotecas (libraries)
// 2.- Definición de variables
const int pulsador = 2; // Tipo const int cuando no cambia su valor
const int led = 13; // Tipo const int cuando no cambia su valor
boolean estadopulsador; // Tipo boolean cuando sólo puede
// valer 0 (LOW, 0V) o 1 (HIGH, +5V)
// 3.- Bucle inicial (setup)
void setup() {
pinMode(pulsador, INPUT); // Se declara el pin 2 como entrada
pinMode(led, OUTPUT); // Se declara el pin 13 como salida
Serial.begin(9600); // Se inicia el monitor serial
}
// 4.- Núcleo del programa
void loop() {
estadopulsador = digitalRead(pulsador);
if(estadopulsador == HIGH ){
digitalWrite(led, HIGH); // Led encendido
Serial.println("Pulsado"); // Se registra la pulsación
delay(200); // Reduce la velocidad de registro
}
else{
digitalWrite(led, LOW); // Led apagado
Serial.println("No pulsado "); // Se registra ausencia de pulsación
delay(500); // Reduce la velocidad de registro
}
}
/* Fín del código */
-
Arduino ATmega 2560 R3¡Oferta!
$20.50$19.00 -
Arduino Uno Wifi¡Oferta!
$15.00$13.00 -
Arduino Mini USB Nano V3.0 CH340 Chip Board 5V 16M + Cable¡Oferta!
$9.00$8.50