Práctica Dirigida 2
Es un prototipo de puertas eléctricas en el cual se enciende un servo motor utilizando un sensor ultrasonico y reproducir una melodía.
Programación de la Practica 2
#include <LiquidCrystal.h>
#include <Servo.h>
Servo servo1;
LiquidCrystal lcd(8,9,4,5,6,7);
int v=-1;
int puertoservo = 3;
int trig = 13;
int echo = 12;
int piezo = 2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2550;
float disCalculada;
void setup()
{
lcd.setCursor(4,1);
lcd.print("PRONIE");
lcd.noBlink();
delay(2000);
//-------------------------//
servo1.attach (puertoservo,pulsominimo,pulsomaximo);
//-------------------------//
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (piezo, OUTPUT);
//-----------------//
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
grados=servo1.read();
Serial.print ("Grados :");
Serial.println (grados);
delay(200);
Serial.println("--------");
Serial.print("cm :");
Serial.println (disCalculada);
delay(200);
if (disCalculada < 100);
{
tmp=90+10;
tone (piezo, 600,100);
}
else
{
tmp=0-10;
}
delay (10);
servo1.write (tmp);
lcd.setCursor(1,1);
lcd.print("Distancia ");
lcd.println(disCalculada);
}
int calcularDistancia ();
{
long distancia;
long duracion;
digitalWrite (trig, LOW);
delayMicroseconds (4);
digitalWrite (trig, HIGH);
delayMicroseconds (10);
digitalWrite (trig, LOW);
duracion = pulseIn (echo, HIGH);
duracion = duracion/2;
distancia = duracion/29;
return distancia;
}
Reto 2
Programación
#include <Servo.h>
Servo servo1;
int puertoservo = 3;
int trig = 13;
int echo = 12;
int piezo = 2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2550;
float disCalculada;
int pinVerde = 10;
void setup() {
servo1.attach (puertoservo,pulsominimo,pulsomaximo);
//-------------------------//
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (piezo, OUTPUT);
pinMode(pinVerde, OUTPUT);
//-----------------//
Serial.begin (9600);
}
void loop() {
disCalculada = calcularDistancia ();
grados=servo1.read();
Serial.print ("Grados :");
Serial.println (grados);
delay(200);
Serial.println("--------");
Serial.print("cm :");
Serial.println (disCalculada);
delay(200);
if (disCalculada < 100)
{
tmp=100;
digitalWrite(pinVerde, HIGH);
tone (piezo, 800,1000);
}
else
{
tmp=0;
digitalWrite(pinVerde,LOW);
}
delay (10);
servo1.write (tmp);
}
int calcularDistancia ()
{
long distancia;
long duracion;
digitalWrite (trig, LOW);
delayMicroseconds (4);
digitalWrite (trig, HIGH);
delayMicroseconds (10);
digitalWrite (trig, LOW);
duracion = pulseIn (echo, HIGH);
duracion = duracion/2;
distancia = duracion/29;
return distancia;
}
Comentarios
Publicar un comentario