Práctica Dirigida 2
Código:
int trig = 13;int echo = 12;
float disCalculada;
void setup()
{
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
Serial.begin (9600);
}
void loop() {
disCalculada = calcularDistancia ();
Serial.println ("-------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
}
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 ;
}
Código
int trig = 13;int echo = 12;
int piezo = 2;
float disCalculada;
void setup()
{
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (piezo, OUTPUT);
Serial.begin (9600);
}
void loop() {
disCalculada = calcularDistancia ();
Serial.println ("-------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
if (disCalculada > 100)
{
tone (piezo, 600,100);
}
else
{
}
delay (10);
}
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 ;
}
Código
#include <Servo.h>
Servo servol;int puertoservo =3;
int trig = 13;
int echo = 12;
int piezo = 2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2250;
float disCalculada;
void setup() {
servol.attach (puertoservo,pulsominimo, pulsomaximo);
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (trig, OUTPUT);
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
grados=servol. read ();
Serial.print ("Grados :");
Serial.println (grados);
delay (200);
Serial.println ("--------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
if (disCalculada > 100)
{
tmp=100;
tone (piezo, 600, 100);
}
else
{
tmp=0;
}
delay (10);
servol.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;
}
#include <Servo.h>
#include <LiquidCrystal.h>
int pinRojo = 11;
int pinzumbador = 10;
int frecuencia =0;
const int ledPin =10;
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 piezo =2; // variable del piezo
int grados;
int tmp=0;
int pulsominimo =650;
int pulsomaximo =2550;
float disCalculada;
void setup()
{
pinMode(pinRojo, OUTPUT);
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(5000);
servo1.attach (puertoservo, pulsominimo, pulsomaximo);
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (piezo, OUTPUT); // establece la salida del piezo
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);
if (disCalculada <100) // esta es la condicional
{
tmp=100;
tone (pinzumbador,frecuencia);// se activa el sonido si se cumple la condición
pinMode(pinRojo, OUTPUT);
delay(500);
}
else
{
tmp=0;
}
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);
digitalWrite (pinRojo, LOW);
delay(500);
}
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;
}
#include <LiquidCrystal.h>
#include <Servo.h>
Servo servo1; //Constructor de la sentecia servo motor
LiquidCrystal lcd(8,9,4,5,6,7); //definimos los piner en la targeta aduino
int puertoservo = 3; //variable para mandar los datos al servo
int trig = 13;
int echo = 12;
//RETO-----------------
int pinVerde = 10; //VARIABLE PARA ENCEDER EL LED
//------------------------
int piezo = 2; //variable piezo sonido
int grados; // guarda los grados de ángulo del servo
int tmp=0; //varible temporal para usar el condicional.
int pulsominimo=650; // Variable que define el ángulo nemor del servo
int pulsomaximo=2550; // variable que define el ángulo de mayor del servo
float disCalculada;
void setup()
{
pinMode (pinVerde, OUTPUT); //Encender led al abrir la puerta RETO 2
//-----------------------------//
lcd.setCursor(4,1); //denifnimos que se ubique en la posición 4 de la fila 1 de la pantalla
lcd.print ("PONIE");// mostrar en la pantalla la palabra PRONIE
lcd.noBlink(); // le indicamos al LCD que no parpadee
delay (2000); // esperamos 2 segundos
servo1.attach (puertoservo,pulsominimo,pulsomaximo);
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode (piezo, OUTPUT); // PIEZO se programa como salida.
Serial.begin (9600);
}
void loop()
{
disCalculada = calcularDistancia ();
grados=servo1.read(); //guarda grados del servo motor
Serial.println ("----------");
Serial.print ("cm :");
Serial.println (disCalculada);
delay (200);
int valor=analogRead(A0);
int frecuencia =map(valor,1,2000, 10, 3000); //se define la melodia
tone (piezo, frecuencia);
delay (10);
if (disCalculada > 50) // sentencia que se debe cumplir
{
//-------------- RETO
digitalWrite (pinVerde, LOW); // Se enciende la Led cuando se abre la puerta
//----------------
tmp=100;// Variable temporal el valor 100
digitalWrite (piezo, HIGH);
delay (10);
digitalWrite (piezo, LOW);
noTone(piezo); // se detiene la frecuencia
delay (770);
}
else
{
tmp=0;//si no se cumple la condición se gruarda en temporal el valor 0
//RETO
digitalWrite (pinVerde, HIGH);
digitalWrite (piezo, LOW);
}
delay (10); // esperar 10 milesegundos
servo1.write (tmp); // el servo motor gira los grados guardados en la variable.
lcd.setCursor(1,1);
lcd.print("Distancia"); // mostrar la palabra distancia
lcd.println(disCalculada); // se muestra el valor de la variable
}
int calcularDistancia ()
{
long distancia;
long duracion;
digitalWrite (trig, LOW);
delayMicroseconds (4);
digitalWrite (trig, HIGH);
duracion = pulseIn (echo, HIGH);
duracion = duracion/2;
distancia = duracion/29;
return distancia;
}
La LCD daba pantalla pero no coloca el texto para solucionar conecte y desconecte varias veces los cables.
Al subir los programas no reconocía la tarjeta a pesar de que la placa y el puerto estaban bien.

Comentarios
Publicar un comentario