Antes de continuar, recomiendo ver este video en que se muestran algunas nociones mínimas sobre Arduino, sus modelos, sus elementos, etc.
Hoy conecté un botón para utilizar un ejemplo del sitio de Arduino en el que muestran cómo leer el valor del botón (es decir, cómo enterarme mediante código si el botón está presionado o no).
Tengo el botón conectado en mi conector 12, es decir que voy a usar digitalRead(12) para saber cuál es su valor, asignándolo a la variable sensorValue. Después, le indico que el sensorValue lo muestre en la ventana Serial monitor, que debo abrir usando el menú Tools. Una vez compilado el código (botón “verify”, el primero) y subido a la placa (botón “upload”. el que tiene una flecha hacia la derecha), pulso el botón y veo en el Serial monitor una secuencia de ceros, que cuando pulso el botón se transforman en unos.
El siguiente código de ejemplo de la misma página es de lectura analógica. Esto implica que se leerá un valor que tendrá un rango. En el caso de un botón, no tiene demasiado sentido, ya que el valor que devuelve es fijo: 1023 cuando está presionado, y 0 cuando no lo está:
Si conectamos un potenciómetro estos valores se incrementan o decrementan de acuerdo a lo que hagamos con él.
Combinando todo lo aprendido ayer más lo aprendido hoy, podemos conectar un led y crear un nuevo código donde indiquemos que el led se encienda cuando el botón se presiona:
/*
Aqui usamos el boton para encender el LED.
*/void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
}void loop() {
int sensorValue = digitalRead(A2);
Serial.println(sensorValue);
if (sensorValue == 1) {
digitalWrite(12, HIGH); // si el valor del sensor es 1, enciende el LED
delay(100); // espera un ratito
digitalWrite(12, LOW); // apaga el LED
}}
Este otro código enciende el led de acuerdo al valor del potenciómetro:
/*
Aqui usamos el potenciometro para encender el LED.
*/
void setup() {
Serial.begin(9600);
pinMode(A3, OUTPUT);
}
void loop() {
int sensorValue = analogRead(A2);
analogWrite(A3, sensorValue/4); // escribimos en el conector A3 el valor del sensor (del potenciómetro) dividido cuatro.
Serial.println(sensorValue);
}
Felicitaciones, interesante el artículo. Espero que publiques mas proyectos con hardware libre.
saludos
un ejemplo muy practico, muchas gracias.