Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Sin utilizar resistencia
Nuestro diodo tiene una tensión máxima recomendada de 1.8V. La placa arduino es alimentada con 5V y esa es la tensión que pasará por la bombilla. No se va a fundir, usar una tensión por encima de la recomendada es desaconsejable ya que acorta la vida útil del diodo.
En cualquier caso, por hacer un circuito más sencillo, esto es precisamente lo que haremos en este primer caso; utilizar una tensión superior a la mínima recomendable:
Tierra o neutro
Para que fluyan los electrones, necesitamos un circuito cerrado. Para tener un circuito cerrado, necesitamos:
- Una línea positiva.
- Una línea negativa (o neutra).
Por seguridad, en una instalación eléctrica necesitaríamos además una toma a tierra, que en caso de cortocircuito, evita explosiones.
En el caso de Arduino, la línea neutra o negativa es sustituida por la toma a tierra, que es necesaria para permitir el flujo de electrones.
Utilizando una resistencia
Cáculo de la resistencia aplicando las leyes de Kirchoff:
Vcc = Vres + Vdiodo
Vres = Vcc - Vdiodo = 5 -1.8 = 3.2V
Vres = I * R
R = Vres / I = 3.2 / 0.01 = 320 Ω
Por estandar emplearemos una resistencia de 330 Ω o 470Ω , por lo tanto si rehacemos los cálculos la intensidad será de:
I = Vres / R = 3.2 / 330 = 0.0096A = 9.6mA
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
Variación en el código: con luz intermitente:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Variación en el diseño: con pulsador
Mantendremos el código del primer ejemplo.
Variación en el diseño: con pulsador II (leyendo del pin 2)
En este ejercicio tenemos dos circuitos cerrados; el circuito del pin 2 y el de la bombilla (pin 13).
La electricidad entra por el pin digital (pin 2). En este pin, además, leeremos la señal. Cerraremos el circuito llendo a tierra (la toma a tierra será necesaria para cerrar el circuito y permitir el flujo de electrones).
int estado = 0; // Variable para almacenar el estado del LED
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
pinMode(2, INPUT_PULLUP);
}
void loop() {
int lecturaBoton = digitalRead(2);
if (lecturaBoton == LOW) {
delay(50); // Pequeña espera para eliminar los rebotes del pulsador
lecturaBoton = digitalRead(2); // Vuelve a leer el estado del pulsador
if (lecturaBoton == LOW) { // Si el pulsador aún está presionado después de la espera
estado = !estado; // Cambia el estado del LED
if (estado == HIGH) {
digitalWrite(13, HIGH); // Enciende el LED
} else {
digitalWrite(13, LOW); // Apaga el LED
}
while (digitalRead(2) == LOW) {} // Espera a que se suelte el pulsador
}
}
}
Repetir el ejercicio anterior utilizando sólo 3 cables
Variación en el diseño: añadimos un buzzer
Sustituiremos el diodo por un buzzer. Ten en cuenta que al igual que el diodo, el buzzer también tiene polarización (el anodo suele mostrarse sobre la superficie del buzzer).
Monitorización (mostrar trazas)
Para trabar con esta comunicación emplearemos diferentes instrucciones, todas ellas comenzarán con el «prefijo» Serial.
- Debemos configurar e inicializar la Comunicación Serie, para ello utilizaremos la instrucción Serial.begin();. Entre paréntesis debemos definir la velocidad de la transferencia de datos que deberá ser la misma que tenga el Monitor Serie.
- En la programación de Arduino disponemos de varias instruccions para enviar información, pero nos decantaremos por Serial.println();
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hola mundo");
delay(1000);
}
Para ver las trazas iremos a Tools → Serial Monitor.