Práctica Dirigida 2
Vídeo
Lectura del sensor
Vídeo
Vídeo
Vídeo
Código de programa
#include <LiquidCrystal.h>
#include <Servo.h>
Servo servo1;
LiquidCrystal led(8,9,4,5,6,7); //Se definen los pines en la tarjeta Arduino
int puertoservo = 3;
int trig =13;
int echo =12;
int grados;
int tmp=0;
int pulsominimo =650;
int pulsomaximo =2550;
const int ledPin =10;
int disCalculada;
const int pinBuzzer = 2; // variable del piezo
const int tonos []={264, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494};
const int counrTonos = 12;
void setup()
{
led.setCursor(4,1); //permite ubicar en la posicion 4 de la fila 1 de la pantalla
led.print("PRONIE"); //MUESTRA LA PALABRA
led.noBlink(); //indica que no parpadee
delay(2000);
servo1.attach (puertoservo, pulsominimo, pulsomaximo);
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
//pinMode (piezo, OUTPUT); // establece la salida del piezo
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
}
grados =servo1.read();
Serial.print ("Grados :");
delay (200);
Serial.println ("---------------");
Serial.print("cm :");
Serial.println (disCalculada);
delay(200);
int valor=analogRead(A0);
int frecuencia =map(valor,1,2000,10,4000);
long duracion;
delay (600);
if (disCalculada <100) // esta es la condicional
{
tmp=360;
melodia ();
}
digitalWrite (ledPin, HIGH); //activa el sonido si se cumple la condición
//digitalWrite (piezo,HIGH);
delay (10);
//digitalWrite (piezo,LOW);
}
else
{
tmp=0;
digitalWrite (ledPin, LOW); //activa el sonido si se cumple la condición
digitalWrite (piezo,LOW);
}
delay(10); // espera 10 milisegundos
servo1.write (tmp);
led.setCursor(1,1);//posiciona el cursor en la posicion fila1, posicion 1
led.print("Distancia "); // muestra distancia
led.println (disCalculada);
}
int calcularDistancia ()
int melodia ()
{
for (int iTono < countTonos; iTono++)
{
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