Programa para puerta con el reto de incluir luz led y melodía: lo nuevo aparece en grande.
#include
<LiquidCrystal.h>
#include
<Servo.h>
Servo servo1;
LiquidCrystal
lcd(8,9,4,5,6,7); //
int v=-1;
int puertoservo =3;
// variable para mandar datos
servo
int trig = 13;
int echo =12;
int piezo =2; // variable
para el piezo
int ledPin = 10; // declaraciòn del led en pin
10
int tonos [] = {252, 176, 176, 120, 296, 0,
347, 262};
int grados; // variable que captura datos de los grados
int tmp=0; //variable
temporal usada en la condicional
int pulsominimo=650;
int
pulsomaximo=2550;
int
calcularDistancia();
float disCalculada;
void setup()
{
lcd.setCursor(4,1); //define la posiciiòn 4 en la fila uno de la
pantalla
lcd.print
("BIENVENIDO ESCUELA ABRAHAM lINCOLN"); //se muestra
la palabra BIENVENIDo en la posiciòn indicada
lcd.noBlink(); //indicación
a la lcd para que no parpadee
delay (3000); // espera 2 segundos
servo1.attach
(puertoservo,pulsominimo , pulsomaximo);
//--------------------//
pinMode
(trig, OUTPUT);
pinMode
(echo, INPUT);
pinMode (piezo,OUTPUT);
// se define la
salida en el piezo
//--------------------//
pinMode(ledPin, 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
< 20) // condicional Si
{
tmp=90 + 10; // variable temporal con valor
asignado
for (int x = 0; x
< 8 ; x++)
{
digitalWrite (ledPin,HIGH); //enciende
el pin
tone
(piezo,tonos [x]); // debe
activar el piezo y
tocar tonos
}
}
else
{
digitalWrite (ledPin,LOW); // apaga
el led
noTone (piezo); // el piezo
no toca ninguna pieza
tmp=0-10;
}
delay (10); // espera 10 milisegundos
servo1.write (tmp);
lcd.setCursor(1,1); //posiciòn en el cursor,fila1,posición 1
lcd.print
("Distancia"); //
lcd.println(disCalculada);
//muestra el valor de la variable
}
int calcularDistancia(){
long distancia;
long duracion;
digitalWrite (trig, LOW);