Modulo 6
Arduino + LEDs + Servo + pulsador
#include <Servo.h>
Servo miServo;
const int ledRojo = 7;
const int ledAmarillo = 6;
const int ledVerde = 5;
void setup() {
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
miServo.attach(9);
miServo.write(0); // Barrera cerrada
}
void loop() {
// ROJO
digitalWrite(ledRojo, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, LOW);
miServo.write(0);
delay(3000);
// AMARILLO
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
delay(1000);
// VERDE
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
miServo.write(90); // Abre la barrera
delay(3000);
// Cierra la barrera
miServo.write(0);
digitalWrite(ledVerde, LOW);
delay(500);
}
#include <Servo.h>
Servo miServo;
const int boton = 2;
const int ledRojo = 7;
const int ledAmarillo = 6;
const int ledVerde = 5;
void setup() {
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(boton, INPUT_PULLUP);
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, LOW);
miServo.attach(9); // Servo en el pin 9
miServo.write(0); // Posición inicial
delay(500);
}
void loop() {
// Espera hasta que se presione el botón
if (digitalRead(boton) == LOW) {
// Espera a que se suelte el botón
while (digitalRead(boton) == LOW);
delay(50);
// Secuencia de LEDs
digitalWrite(ledRojo, HIGH);
delay(1000);
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
delay(1000);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
// Servo abre
miServo.write(180);
delay(3000);
// Servo cierra
miServo.write(0);
digitalWrite(ledVerde, LOW);
delay(500);
}
}
Comentarios
Publicar un comentario