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;
}


Código
#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;
 }






Código
#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

Entradas populares de este blog