/* Sensor de Ultrasonidos *------------------------ * * Lee valores (00014-01199) de un sensor de ultrasonidos (hasta 3 metros) * y escribe los valores en el puerto serie. * * * copyleft 2005 Mackie for XLAB | DojoDave for DojoCorp * */
int ultraSoundSignal = 7; // PIN de se[ch65533]al de ultrasonidos int val = 0; // Variable auxiliar int ultrasoundValue = 0; // Valor del senros de ultrasonidos int timecount = 0; // Contador del eco int ledPin = 13; // LED conectado al PIN 13
void setup() {
beginSerial(9600); // Configura la velocidad al puerto seria 9600 baudios
pinMode(ledPin, OUTPUT); // Configura el PIN del LED como salida digital. }
void loop() { timecount = 0; val = 0; pinMode(ultraSoundSignal, OUTPUT); // Conmuta el PIN de la se[ch65533]al a salida digital
/* Env[ch65533]a un pulso bajo-alto-bajo para lanzar el pulso de activaci[ch65533]n del sensor * ---------------------------------------------------------------------------- */
digitalWrite(ultraSoundSignal, LOW); // Env[ch65533]a un pulso bajo delayMicroseconds(2); // Espera dos microsegundos digitalWrite(ultraSoundSignal, HIGH);// Env[ch65533]a un pulso alto delayMicroseconds(5); // Espera 5 segundos digitalWrite(ultraSoundSignal, LOW); // Se queda en espera
/* En espera, escuchando el pulso de eco * -------------------------------------- */
pinMode(ultraSoundSignal, INPUT); // Conmuta el PIN de la se[ch65533]al a entrada digital val = digitalRead(ultraSoundSignal); // Recoge el valor del PIN de se[ch65533]al while(val == LOW) { // Espera a que el PIN de se[ch65533]al sea alto val = digitalRead(ultraSoundSignal); }
while(val == HIGH) { // Espera a que el PIN de se[ch65533]al sea bajo val = digitalRead(ultraSoundSignal); timecount = timecount +1; // Cuenta el tiempo que dura el pulso alto (amplitud) }
/* Escribe los valores resuktantes en el puerto serie * --------------------------------------------------- */
ultrasoundValue = timecount; // El contador es el valor obtenido por el sensor
serialWrite('A'); // Escribe en el puerto serie el valor obtenido printInteger(ultrasoundValue); serialWrite(10); serialWrite(13);
/* Enciende el LED si se ha recibido un pulso de eco * -------------------------------------------------- */
if(timecount > 0){ digitalWrite(ledPin, HIGH); }
/* Delay del programa * ------------------- */
delay(100); }
Please, someone help me, it's not working, the software tell me about a error but i don't know how fix it.