int motA0=8; int motA1=9; int motB0=10; int motB1=11; int sen0=4; int sen1=5; int echo=6; int triger=7; int vel=150; void setup() { pinMode(sen0,INPUT); pinMode(sen1,INPUT); pinMode(motA0,OUTPUT); pinMode(motA1,OUTPUT); pinMode(motB0,OUTPUT); pinMode(motB1,OUTPUT); pinMode(echo,INPUT); pinMode(triger,OUTPUT); digitalWrite(triger,LOW); digitalWrite(motA0,LOW); digitalWrite(motA1,LOW); digitalWrite(motB0,LOW); digitalWrite(motB1,LOW); } void loop() { if(distancia()<=20) { if(digitalRead(sen0)==LOW || digitalRead(sen1)==LOW)//Cambiar los "LOW" por "HIGH" para fondo blanco { stopP(); delay(100); atras(); delay(400); stopP(); delay(500); derecha(); delay(300); stopP(); delay(500); adelante(); } else { adelante(); } } else { if(digitalRead(sen0)==LOW || digitalRead(sen1)==LOW)//Cambiar los "HIGH" por "LOW" para fondo negro { stopP(); delay(100); atras(); delay(400); stopP(); delay(500); derecha(); delay(300); stopP(); delay(500); adelante(); } else { adelanteLento(); } } } long distancia() { long t; long d; digitalWrite(triger, HIGH); delayMicroseconds(10); digitalWrite(triger, LOW); t = pulseIn(echo, HIGH); d = t/59; if (d<=3 || d>=25) { d=1000; } delay(10); return d; } void stopP() { digitalWrite(motA0,HIGH); digitalWrite(motA1,HIGH); digitalWrite(motB0,HIGH); digitalWrite(motB1,HIGH); } void atras() { digitalWrite(motA0,HIGH); digitalWrite(motA1,LOW); digitalWrite(motB0,HIGH); digitalWrite(motB1,LOW); } void adelanteLento() { digitalWrite(motA0,LOW); analogWrite(motA1,vel); digitalWrite(motB0,LOW); analogWrite(motB1,vel); } void adelante() { digitalWrite(motA0,LOW); digitalWrite(motA1,HIGH); digitalWrite(motB0,LOW); digitalWrite(motB1,HIGH); } void derecha() { digitalWrite(motA0,LOW); digitalWrite(motA1,HIGH); digitalWrite(motB0,HIGH); digitalWrite(motB1,LOW); } void izquierda() { digitalWrite(motA0,HIGH); digitalWrite(motA1,LOW); digitalWrite(motB0,LOW); digitalWrite(motB1,HIGH); }