// Sensores de Linea int sensor0=5; int sensor1=4; // Pines para control de motores int motA0= 8; int motA1= 9; int motB0= 10; int motB1= 11; // Funciones void adelante(); void atras(); void derecha(); void izquierda(); void stopP(); // Velocidad maxima 255. //Si el robot oscila mucho o pierde la linea puedes bajar un poco este valor, no menos de 100. int vel=150; void setup() { pinMode(sensor0,INPUT); // Configuracion de pines pinMode(sensor1,INPUT); pinMode(motA0,OUTPUT); pinMode(motA1,OUTPUT); pinMode(motB0,OUTPUT); pinMode(motB1,OUTPUT); } //Seguidor de linea negra void loop() // Ciclo Infinito { // Comparamos el valor de los sensores if(digitalRead(sensor0)==1 && digitalRead(sensor1)==1) { adelante(); } else if(digitalRead(sensor0)==1 && digitalRead(sensor1)==0) { derecha(); } else if(digitalRead(sensor0)==0 && digitalRead(sensor1)==1) { izquierda(); } } void stopP() { digitalWrite(motA0,HIGH); // Paro Total digitalWrite(motA1,HIGH); digitalWrite(motB0,HIGH); digitalWrite(motB1,HIGH); } void adelante() { digitalWrite(motA0,LOW); // Avanza adelante analogWrite(motA1,vel); digitalWrite(motB0,LOW); analogWrite(motB1,vel); } void derecha() { digitalWrite(motA0,LOW); // Gira Derecha analogWrite(motA1,vel); digitalWrite(motB0,HIGH); digitalWrite(motB1,HIGH); } void izquierda() { digitalWrite(motA0,HIGH); // Gira Izquierda digitalWrite(motA1,HIGH); digitalWrite(motB0,LOW); analogWrite(motB1,vel); }