Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Material Utilizado:
* Arduino UNO
* Protoboard o placa de pruebas
* Sensor de movimiento PIR
* 1 Servomotor
* 1 Led
* 1 Resistencia de 330 ohms
* Cables de conexión
CÓDIGO
#include <Servo.h>
Servo puerta; // Nombre asignado al servo
int LED = 5;
int PIR = 4;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(PIR, INPUT);
puerta.attach(7);
void loop()
{
int valorpir = digitalRead(PIR);
if (valorpir == 1) {
digitalWrite(LED, HIGH);
puerta.write(180);
}
else
{
digitalWrite(LED, LOW);
puerta.write(0);
}
delay(300);
}
SENSOR ULTRASÓNICO
// Pines utilizados // Comprueba si hay alguna alerta visual o sonora
#define LEDVERDE 2 void alertas(float distancia)
#define LEDAMARILLO 3 {
#define LEDROJO 4 if (distancia < umbral1 && distancia >= umbral2)
#define TRIGGER 5 {
#define ECHO 6 // Encendemos el LED verde
#define BUZZER 9 digitalWrite(LEDVERDE, HIGH);
// Constantes tone(BUZZER, 2000, 200);
const float sonido = 34300.0; // Vel del sonido en cm/s }
const float umbral1 = 30.0; else if (distancia < umbral2 && distancia > umbral3)
const float umbral2 = 20.0; {
const float umbral3 = 10.0; // Encendemos el LED amarillo
digitalWrite(LEDAMARILLO, HIGH);
void setup() { tone(BUZZER, 2500, 200);
// Iniciamos el monitor serie }
Serial.begin(9600); else if (distancia <= umbral3)
// Modo entrada/salida de los pines {
pinMode(LEDVERDE, OUTPUT); // Encendemos el LED rojo
pinMode(LEDAMARILLO, OUTPUT); digitalWrite(LEDROJO, HIGH);
pinMode(LEDROJO, OUTPUT); tone(BUZZER, 3000, 200);
pinMode(ECHO, INPUT); }
pinMode(TRIGGER, OUTPUT); }
pinMode(BUZZER, OUTPUT); // Calcula la distancia a la que se encuentra un objeto.
// Apagamos todos los LEDs // Devuelve variable tipo float que contiene la distancia
apagarLEDs(); float calcularDistancia()
} {
// pulseIn obtiene el tiempo en cambiar entre estados
void loop() { unsigned long tiempo = pulseIn(ECHO, HIGH);
// Preparamos el sensor de ultrasonidos // Distancia en cm, convertir el tiempo en s está en ms
iniciarTrigger(); // por eso se multiplica por 0.000001
// Obtenemos la distancia float distancia = tiempo * 0.000001 * sonido / 2.0;
float distancia = calcularDistancia(); Serial.print(distancia);
// Apagamos todos los LEDs Serial.print("cm");
apagarLEDs(); Serial.println();
// Alerta si estamos dentro del rango de peligro delay(500);
if (distancia < umbral1) return distancia;
{ }
// Lanzamos alertas // Inicia la secuencia del Trigger para comenzar a medir
alertas(distancia); void iniciarTrigger()
} {
} // Pon el Triiger en estado bajo y esperamos 2 ms
// Apaga todos los LEDs digitalWrite(TRIGGER, LOW);
void apagarLEDs() delayMicroseconds(2);
{ // Pin Trigger a estado alto y esperamos 10 ms
// Apagamos todos los LEDs digitalWrite(TRIGGER, HIGH);
digitalWrite(LEDVERDE, LOW); delayMicroseconds(10);
digitalWrite(LEDAMARILLO, LOW); // Comenzamos poniendo el pin Trigger en estado bajo
digitalWrite(LEDROJO, LOW); digitalWrite(TRIGGER, LOW);
} }
MONTAJE ULTRASONICO
SEMÁFORO
CODIGO SEMÁFORO
void setup(){
for(int i=2;i<14;i=i+1){ digitalWrite(10,HIGH); // tercer semaforo verde
pinMode(i,OUTPUT); digitalWrite(8,LOW); // OFF el rojo 3
} delay(2000); // espero
} digitalWrite(9,HIGH); // ON el 3erdo amarillo
void loop(){ delay(500); // espero
/*2 verde2 - 3 amarillo2 - 4 rojo2 digitalWrite(9,LOW); // apago ambos
digitalWrite(10,LOW);
5 verde1 - 6 amarillo1 - 7 rojo1 digitalWrite(8,HIGH);