viernes, 9 de marzo de 2018

Problemas en la realización del Reto


Problemas y soluciones:

1.        1. En  primer  lugar  tuve  complicaciones  para integrar  la  programación  de la  fotocelda , ya  concluido el programa  cuando  corría  aparentemente  bien  seguía  sin funcionar   porque  había  un  enunciado  incorrecto /analog –digital/.

        2.El  segundo problema  surgió  a  nivel  concreto  en el momento de  coordinar  entre el  movimiento  del  brazo  , la  distancia  de la  representación de la puerta  y el  hilo  que  los  conectaba  a  ambos.

       
      3.En tercer  lugar  tuve  varios  tropiezos  a  la  hora  de  programar la  fotocelda, por  ejemplo  a  veces  olvidaba  enunciar  alguna  entrada, falta  de  punto  y coma  o  ausencia  del método  para   la  misma. No  obstante  el  proceso de  depurado  del proyecto permite  corregir  y logar  la  meta propuesta.


Programa del Proyecto Final


Procedimiento   para  puerta  con fotocelda  y servoMotor
#include <Servo.h>
Servo servo1;
 int puertoservo =3;    //  variable para mandar datos servo
 int trig = 13;
 int echo =12; 
 int piezo =2;    // variable  para  el piezo
 int ledPin_1 = 7; //  declaraciòn del  led en pin  7
 int ldrPin = A0;
 int tonos [] = {298, 396, 496, 380, 496, 0, 597, 492};
 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 ldrValor = 0;      // senunciado de fotocelda
 int calcularDistancia();
 float disCalculada;
void setup() {
   servo1.attach (puertoservo,pulsominimo , pulsomaximo);
    //--------------------//
   pinMode (trig, OUTPUT);
   pinMode (echo, INPUT);
   pinMode (piezo,OUTPUT);     // se  define  la  salida en el piezo
 //--------------------//
   pinMode(ledPin_1, OUTPUT);    // salida  para  el  led
   pinMode (ldrPin, INPUT);    // entrada para  la  fotocelda
   Serial.begin (9600);
}

void loop() {
 fotocelda();      // se  enuncia  la  fotocelda  que  actuarà  como  sensor
 disCalculada = calcularDistancia ();
 grados = servo1.read();
 Serial.print("Grados :");
 Serial.println(grados);
 Serial.print("Fotocelda :");
 Serial.println (ldrValor);
 delay (200);
 Serial.println("--------");
 Serial.print("cm :");
 Serial.println (disCalculada);
  delay (200);
  if (disCalculada < 20)     // condicional  Si
{
  tmp=100;   // variable temporal con  valor  asignado
  for (int x = 0; x < 8 ; x++)
  {
    tone (piezo,tonos [x]);
    delay (100);// debe activar  el  piezo  si cumple  la  funcion
}
}
else
{
  noTone (piezo);
  tmp=0-10;
  }
  delay (10);       // espera 10  milisegundos
  servo1.write (tmp);
}

   int calcularDistancia(){      // procedimiento para  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;
}

int fotocelda(){
ldrValor = analogRead (ldrPin);  
  if (ldrValor < 20) {
     digitalWrite (ledPin_1, HIGH);   // enciende  el led si el umbral de oscuridad baja
  }else{
     digitalWrite (ledPin_1, LOW);   // apaga el  led  si hay  luz
       }
   delay (200);
   return ldrValor;
  }


Plantilla  de  implementación del Proyecto  Final



lunes, 5 de marzo de 2018

Programa del reto


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

Video del Reto2



viernes, 2 de marzo de 2018

Descripción de la práctica


    Esta  práctica fue diseñada  para  ir  construyendo  de  forma  guiada  un prototipo  o modelo  de  puerta con sensor de  sonido  y movimiento. La  actividad  fue propuesta  en 4  pasos  que  se  integraron  hasta  obtener  el  producto propuesto.
Las  partes  o  fases  fueron las  siguientes:
1. Estructura y programación de un sensor  ultrasónico.
2. Integración del  piezo.
3. Integración y programación del servo-motor para  mover puerta.
4. Puerta automática LCD para  registrar  los  reportes  de movimiento.

Problemas en la realización del Reto

Problemas y soluciones: 1.         1.  En   primer   lugar   tuve   complicaciones   para integrar   la   programación   de la   fotoc...