Está en la página 1de 3

taller numero 9

#include <LiquidCrystal.h>
#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
#define FrecuenciaTono 1000
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int Zumbador = 10;
const int led =13;
const int sensor = 9;
int pausa= 0;
String Cerca ="Cerca";
String Medio ="GO!";
String Lejos ="LEJOS";
int distancia1 =0;
int distancia2 =20;
int distancia3 =21;
int distancia4 =60;
String NombreUsuario = "MOVIMIENTO";

void setup()
{
pinMode(Zumbador, OUTPUT);
pinMode(led, OUTPUT);
pinMode(sensor, INPUT);
lcd.begin(COLS, ROWS);
Serial.begin(9600);
}

void loop()
{
int distanciacm = 0;
distanciacm = convertirCM();
pausa = distanciacm * 10;
String Estado = Lejos;

if(distanciacm >= distancia1 && distanciacm <= distancia2)


{
Estado = Cerca;

} else if(distanciacm >= distancia3 && distanciacm <= distancia4)


{
Estado = Medio;
}
imprimirled(pausa,distanciacm,Estado);
noTone(Zumbador);
digitalWrite(led,LOW);
delay(pausa);
}

int convertirCM()
{
int cm =0;
cm = 0.01723 * ObtenerDatos(sensor);
Serial.print(cm);
Serial.println(" cm");
delay(100);
return cm;
}

long ObtenerDatos(int pin)


{
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
delayMicroseconds(2);
digitalWrite(pin, HIGH);
delayMicroseconds(10);
digitalWrite(pin, LOW);
pinMode(pin, INPUT);
return pulseIn(pin, HIGH);
}

void imprimirled(int pausa,int cm, String resultado)


{
LimpiarVariables();
lcd.setCursor(2, 0);
lcd.print(NombreUsuario);
lcd.setCursor(0, 1);
lcd.print("d= ");
lcd.print(cm);
lcd.print("cm");
lcd.print(" ");
lcd.print(resultado);
tone(Zumbador, FrecuenciaTono);
digitalWrite(led,HIGH);
delay(pausa);
}
void LimpiarVariables()
{

lcd.clear();
}

También podría gustarte