Aprender a utilizar la sentencia switch en C para controlar diferentes acciones en un proyecto de Arduino.
Esquema:
Conecte el LED al pin 13 de la placa Arduino a través de la resistencia de 220Ω.
Código:
// Definimos los pines
const int ledRojo = 2;
const int ledVerde = 3;
const int ledAmarillo = 4;
const int buzzerPin = 5;
const int triggerPin = 6;
const int echoPin = 7;
const int fotoresistorPin = A0;
// Variables
int distancia;
int valorFotoresistor;
void setup() {
// Configuramos los pines
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(fotoresistorPin, INPUT);
// Inicializamos el sensor ultrasónico
digitalWrite(triggerPin, LOW);
delay(5);
}
void loop() {
// Medimos la distancia con el sensor ultrasónico
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
distancia = pulseIn(echoPin, HIGH) / 58 / 2;
// Leemos el valor del fotoresistor
valorFotoresistor = analogRead(fotoresistorPin);
// Controlamos el brillo del LED amarillo si la distancia está en el rango deseado
if (distancia >= 11 && distancia <= 20) {
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, HIGH);
noTone(buzzerPin);
} else {
// Apagamos el LED amarillo si la distancia no está en el rango deseado
digitalWrite(ledAmarillo, LOW);
// Seleccionamos la acción según la distancia
switch (distancia) {
case 0 ... 10:
// Si la distancia es menor o igual a 10 cm, encendemos el LED rojo y activamos el buzzer.
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
tone(buzzerPin, 1000);
break;
default:
// Si la distancia es mayor a 20 cm, encendemos el LED verde.
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
noTone(buzzerPin);
}
}
delay(100);
}
El código define primero los pines que se utilizarán para los LEDs, el buzzer, el sensor ultrasónico y la fotoresistencia.
En la función setup(), se configuran los pines como entradas o salidas y se inicializa el sensor ultrasónico.
En la función loop(), se realizan las siguientes acciones:
switch para seleccionar la acción que se debe realizar según la distancia medida.Prueba 1: Acércate al sensor ultrasónico y observa cómo cambia el color del LED y se activa el buzzer.
Prueba 2: Tapa la fotoresistencia con la mano y observa cómo cambia el brillo del LED verde.