//sensor de ultrasonido
long u_tiempo(int trigger_pin, int echo_pin) {
digitalWrite(trigger_pin, LOW);
delayMicroseconds(2);
digitalWrite(trigger_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trigger_pin, LOW);
long microseconds = pulseIn(echo_pin, HIGH);
return microseconds;
}
long u_distancia(int trigger_pin, int echo_pin) {
long microseconds = u_tiempo(trigger_pin, echo_pin);
long u_distancia;
u_distancia = microseconds / 29 / 2;
if (u_distancia == 0) {
u_distancia = 999;
}
return u_distancia;
}
//
//
#define PINUSTRIG 2
#define PINUSECHO 3
#define PINBUZZER 7
#define PINLEDA 9
#define PINLEDB 10
#define PINLEDC 11
#define PINLEDD 12
#define DISTANCIAARO 20
int distancia = 0;
int estadoled = 0;
int invertir = 0;
int recorridoled = PINLEDA;
int anotacion = 0;
void setup() {
pinMode(PINUSTRIG, OUTPUT);
pinMode(PINUSECHO, INPUT);
pinMode(PINLEDA, OUTPUT);
pinMode(PINLEDB, OUTPUT);
pinMode(PINLEDC, OUTPUT);
pinMode(PINLEDD, OUTPUT);
pinMode(PINBUZZER, OUTPUT);
}
void loop() {
distancia = u_distancia(PINUSTRIG, PINUSECHO);
delay (100);
while (distancia > DISTANCIAARO) {
distancia = u_distancia(PINUSTRIG, PINUSECHO);
if (invertir == 0) {
digitalWrite(recorridoled, !invertir);
digitalWrite((recorridoled - 1), invertir);
recorridoled++;
}
else {
digitalWrite(recorridoled, invertir);
digitalWrite((recorridoled + 1), !invertir);
recorridoled--;
}
if (recorridoled > PINLEDD) {
invertir = 1;
recorridoled = PINLEDD;
}
if (recorridoled < PINLEDA) {
invertir = 0;
recorridoled = PINLEDA;
}
delay (200);
}
for (anotacion = 0; anotacion <= 4; anotacion++) {
if (anotacion == 0) {
digitalWrite(PINBUZZER, HIGH);
}
else {
digitalWrite(PINBUZZER, LOW);
}
estadoled = !estadoled;
digitalWrite(PINLEDA, !estadoled);
digitalWrite(PINLEDB, estadoled);
digitalWrite(PINLEDC, !estadoled);
digitalWrite(PINLEDD, estadoled);
delay (500);
}
digitalWrite(PINLEDA, LOW);
digitalWrite(PINLEDB, LOW);
digitalWrite(PINLEDC, LOW);
digitalWrite(PINLEDD, LOW);
}