Importancia /
Línea o Bloque Descripción Detallada
Rango de valores
Se declaran dos variables
enteras: sw y adc,
inicializadas en 0. sw Importante para el
almacenará el estado del control: sw solo
int sw = 0, adc = 0;
interruptor (1 o 0), y adc el puede ser 0 o 1. adc:
valor leído del conversor 0-1023.
analógico a digital (ADC), de
0 a 1023.
Variable de tipo flotante
Almacena el voltaje
(decimal) para almacenar el
float voltaje = 0; en voltios (0–5 V
voltaje convertido del ADC.
típicamente).
Inicialmente es 0.
Variable para el pin de salida Ayuda a no poner
int buzzerPin = 9; digital conectado al números fijos en el
zumbador (pin 9). código.
Función de inicialización de
Arduino, se ejecuta una sola Configura pines y la
void setup() { ... }
vez al encender la placa o comunicación serial.
reiniciar.
Configura el pin digital 7 Necesario para leer el
pinMode(7, INPUT); como entrada (para el estado del switch
switch). (botón/palanca).
Permite controlar el
Configura el pin digital 6
pinMode(6, OUTPUT); encendido/apagado
como salida (para el LED).
del LED.
Necesario para
pinMode(buzzerPin, Configura el pin digital 9
activar/desactivar el
OUTPUT); (buzzerPin) como salida.
buzzer.
Permite enviar datos
Inicia la comunicación serial
Serial.begin(9600); al monitor serial, útil
a 9600 baudios por segundo.
para depuración.
Función principal que se
Donde ocurre la
void loop() { ... } ejecuta en bucle mientras el
lógica repetitiva.
Arduino esté encendido.
sw = digitalRead(7); Lee el valor del pin 7 y lo sw toma valores 0
Importancia /
Línea o Bloque Descripción Detallada
Rango de valores
guarda en sw. (LOW) o 1 (HIGH).
adc es un entero de 0
adc = Lee el pin analógico A0 y
a 1023, según la
analogRead(A0); guarda el valor en adc.
señal analógica.
Convierte el valor ADC (0–
1023) a voltaje (0–5 V) voltaje queda entre 0
voltaje = (adc * 5.0) /
usando la fórmula de y5V
1023.0;
conversión. Multiplica por 5 V aproximadamente.
y divide entre 1023.
Envía el valor del voltaje al
Ayuda a monitorear
Serial.println(voltaje); monitor serial para
en tiempo real.
visualización.
Condición: si el switch está
Prioridad para
if (sw == 1 && activado y el voltaje es
condiciones de mayor
voltaje > 2.5) { ... } mayor a 2.5 V, ejecuta este
voltaje.
bloque.
Enciende el LED conectado al
digitalWrite(6, HIGH); HIGH = 1 (enciende).
pin 6.
Espera 300 ms (0.3 Da tiempo antes de
delay(300);
segundos). activar el buzzer.
Activa el buzzer con una El tono del buzzer
tone(buzzerPin,
frecuencia de 1000 Hz (1 depende de la
1000);
kHz). frecuencia.
Espera 2.7 segundos. Junto Controla la duración
delay(2700); con los 0.3 anteriores, suman total del sonido del
3 s totales. buzzer.
Para detener el
noTone(buzzerPin); Apaga el buzzer.
sonido.
digitalWrite(6, LOW); Apaga el LED. LOW = 0 (apaga).
Pausa de 1 s tras apagar el Estética de la
delay(1000);
LED. secuencia.
else if (voltaje > 1.5 Condición para voltajes entre Control de rango
&& voltaje < 2.5 &&
Importancia /
Línea o Bloque Descripción Detallada
Rango de valores
sw == 1) { ... } 1.5 y 2.5 V y switch activado. medio de voltaje.
Espera 2 s (LED y buzzer ON
delay(2000); Control de duración.
juntos).
else if (voltaje < 1 && Condición: voltaje menor a 1
Rango bajo.
sw == 1) { ... } V y switch activado.
for (int i = 0; i < 5; i+ Bucle para parpadeo y tono Crea parpadeo rápido
+) { ... } breve, repite 5 veces. del LED y buzzer.
tone(buzzerPin, Diferencia el caso del
Tono más agudo (2000 Hz).
2000); rango bajo.
delay(200); Pausa 200 ms (rápido). Parpadeo ágil.
else if (voltaje > 4 && Condición para voltaje mayor Rango alto, prioridad
sw == 1) { ... } a 4 V y switch activo. alta.
Diferencia del rango
tone(buzzerPin, 800); Tono más grave (800 Hz).
medio.
Control del tiempo de
delay(1000); Pausa de 1 s para buzzer.
sonido.
LED sigue encendido hasta
delay(3000); Efecto largo del LED.
totalizar 5 s.
else if (voltaje > 3 &&
Condición para voltaje entre Rango específico
voltaje < 3.5 && sw
3 y 3.5 V y switch activo. medio-alto.
== 1) { ... }
for (int i = 0; i < 3; i+ Parpadeo con tono medio, 3
Estética diferente.
+) { ... } veces.
tone(buzzerPin,
Tono a 1200 Hz. Medio tono.
1200);
Si ninguna condición se
else { ... } Estado por defecto.
cumple, apaga LED y buzzer.
Mejora la estabilidad
Pausa corta antes de la
delay(100); y evita lecturas
siguiente iteración.
demasiado rápidas.
Variable /
Rango de valores / uso
Función
adc 0 a 1023 (lectura analógica de 10 bits).
0 a 5 V aproximadamente (depende de la referencia de
voltaje
voltaje de Arduino).
sw 0 o 1 (0 = LOW, 1 = HIGH).
Frecuencia de tono en Hz. Diferentes casos usan: 800 Hz,
tone()
1000 Hz, 1200 Hz, 2000 Hz.
Tiempo en milisegundos. Puede ser: 100, 200, 300, 1000,
delay()
2000, 2700, 3000, 5000 ms según la secuencia.