UNIDAD 3
Ejercicio1 programando el sensor ultrasonico
https://youtu.be/wQlUnXhH26E
Ejercicio1 programando el sensor ultrasonico
Incorporando el piezo al prototipo
Programación de sensor ultrasonico y el piezo
int trig=13;
int echo=12; ///VARIABLE
int piezo=2;
float discalculada;
void setup()
{
pinMode(trig, OUTPUT); //ENTRADA O SALIDA DE PINES.
pinMode(echo, INPUT);
pinMode(piezo, OUTPUT);
Serial.begin(9600);
}
void loop()
{
discalculada= calcularDistancia(); //VARIABLE Y FUNCION
Serial.println("---------");
Serial.print("cm :");
Serial.println(discalculada);
delay(200);
if (discalculada <100)
{
tone (piezo, 600, 100);
}
else
{
}
}
int calcularDistancia() //En esta función se hace el calculo de la distancia de acuerdo a los valores que
{ //indica el S.Ultrasónico.
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;
}
PROGRAMANDO EL SERVOMOTOR
#include <Servo.h>
Servo servo1;
int puertoservo =3;
int trig=13;
int echo=12; ///VARIABLE
int piezo=2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2550;
float discalculada;
void setup()
{
servo1.attach (puertoservo,pulsominimo, pulsomaximo);
pinMode(trig, OUTPUT); //ENTRADA O SALIDA DE PINES.
pinMode(echo, INPUT);
pinMode(piezo, OUTPUT);
Serial.begin(9600);
}
void loop()
{
discalculada= calcularDistancia(); //VARIABLE Y FUNCION
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;
tone (piezo, 600, 100);
}
else
{
tmp=0;
}
delay (10);
servo1.write (tmp);
}
int calcularDistancia() //En esta función se hace el calculo de la distancia de acuerdo a los valores que
{ //indica el S.Ultrasónico.
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>
Servo servo1;
int puertoservo =3;
int trig=13;
int echo=12; ///VARIABLE
int piezo=2;
int grados;
int tmp=0;
int pulsominimo=650;
int pulsomaximo=2550;
float discalculada;
void setup()
{
servo1.attach (puertoservo,pulsominimo, pulsomaximo);
pinMode(trig, OUTPUT); //ENTRADA O SALIDA DE PINES.
pinMode(echo, INPUT);
pinMode(piezo, OUTPUT);
Serial.begin(9600);
}
void loop()
{
discalculada= calcularDistancia(); //VARIABLE Y FUNCION
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;
tone (piezo, 600, 100);
}
else
{
tmp=0;
}
delay (10);
servo1.write (tmp);
}
int calcularDistancia() //En esta función se hace el calculo de la distancia de acuerdo a los valores que
{ //indica el S.Ultrasónico.
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;
}
PROGRAMANDO LA PANTALLA LCD
CODIGOS
#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=100;
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;
}
RETO2 MELODIA
CODIGOS DE PROGRAMACION
#include <pitches.h>
#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;
int PinAzul = 10;
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);
pinMode (PinAzul, 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;
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,659.26,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,659.26,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,880,2000);
delay (200);
tone (piezo,783.99,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
tone (piezo,698.46,2000);
delay (200);
digitalWrite(PinAzul, HIGH); // poner el Pin en HIGH
delay(100);
}
else
{
tmp=0-10;
digitalWrite(PinAzul, LOW); // poner el Pin en LOW
delay(100);
}
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;
}
ENLACE
https://youtu.be/wQlUnXhH26E
Problemas Técnicos
Ha sido todo un desafío, dentro de las limitaciones es que es muy corto tiempo para ejecutar todas las actividades ejemplo esta unidad contaba con 4 practicas y el reto, dentro de los inconvenientes, baja velocidad de internet, en dos ocasiones algunos cables estaban aparentemente quemados porque luego de un cambio funcionó.
Comentarios
Publicar un comentario