Professional Documents
Culture Documents
FUNCIONAMIENTO
El sensor ultrasnico, mide y detecta la distancia de un objeto, para que el micro, por medio
de un cdigo, pueda interpretar las mediciones registradas. El rango de medicin del sensor
est entre los 2cm y los 500cm; con un margen de error de 0.3cm. la duracin del pulso,
entre entrada y salida, es de 10 microsegundos.
La frmula para medir las distancias del sensor, es la siguiente: Distancia = (Duracin / 2)
/29
Se coloca entre 29, debido a que la velocidad del sonido en centmetros (ya que el sensor
trabaja en centmetros) es de: 1/29 cm/uS.
Cuando el objeto se aleja, a una cierta distancia (entre 8 y doce centmetros), por medio del
circuito L29D, se invierte el giro del motor, para cerrar la puerta.
#define Pecho 6
#define Ptrig 7
#define enable 10
long duracion, distancia;
const int motorA = 8;
const int motorB = 9;
void setup() {
Serial.begin (9600);
pinMode(Pecho, INPUT);
pinMode(Ptrig, OUTPUT);
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
pinMode (enable, OUTPUT);
}
void loop() {
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
digitalWrite(motorA, LOW);
digitalWrite(motorB, LOW);
if (distancia >12 || distancia <= 1){ // si la distancia es mayor a 500cm o menor a 0cm
digitalWrite(enable, LOW);
}
if (distancia <= 12 && distancia >= 8){
digitalWrite(enable, HIGH);
digitalWrite(motorA, HIGH); //izquierda
digitalWrite(motorB, LOW);
delay(500);
}
if (distancia <=6 && distancia >= 3){
digitalWrite(enable, HIGH);
digitalWrite(motorA, LOW);
digitalWrite(motorB, HIGH); //derecha
delay(500);
}
}
#define Pecho 6
#define Ptrig 7
#define enable 10
long duracion, distancia;
const int motorA = 8;
const int motorB = 9;
void setup() {
Serial.begin (9600);
pinMode(Pecho, INPUT);
pinMode(Ptrig, OUTPUT);
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
pinMode (enable, OUTPUT);
}
void loop() {
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
digitalWrite(motorA, LOW);
digitalWrite(motorB, LOW);