Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mini Sumo Con Sharp
Mini Sumo Con Sharp
int pwma = 3;
int pwmb = 5;
int ai1 = 2;
int ai2 = 4;
int bi1 = 6;
int bi2 = 7;
// Variables
int lectura_linea_derecha = 0;
int lectura_linea_izquierda = 0;
int lectura_distancia_derecha = 0;
int lectura_distancia_izquierda = 0;
// Inicialización
void setup() {
pinMode(pwma,OUTPUT);
pinMode(pwmb,OUTPUT);
pinMode(ai1,OUTPUT);
pinMode(ai2,OUTPUT);
pinMode(bi1,OUTPUT);
pinMode(bi2,OUTPUT);
analogWrite(pwma,100);
analogWrite(pwmb,100);
// Rutina
void loop() {
//Con este código eliminamos el ruido que pueda haber en las lecturas del
sensor.
int i=0;
lectura_distancia_izquierda=0;
lectura_distancia_derecha=0;
do{
lectura_distancia_izquierda = lectura_distancia_izquierda +
analogRead(A2); // Lectura de sensor de distancia izquierdo
i=i+1;
}while(i<16);
lectura_distancia_izquierda=lectura_distancia_izquierda/i;
lectura_distancia_derecha=lectura_distancia_derecha/i;
reversa();
delay(500);
derecha();
delay(100);
adelante();
reversa();
delay(500);
izquierda();
delay(100);
adelante();
izquierda();
delay(1000);
adelante();
}
// ¡Detección de objeto por el lado derecho!
derecha();
delay(1000);
adelante();
void adelante(){
digitalWrite(ai1,HIGH);
digitalWrite(ai2,LOW);
digitalWrite(bi1,HIGH);
digitalWrite(bi2,LOW);
void derecha(){
digitalWrite(ai1,LOW);
digitalWrite(ai2,HIGH);
digitalWrite(bi1,HIGH);
digitalWrite(bi2,LOW);
void izquierda(){
digitalWrite(ai1,HIGH);
digitalWrite(ai2,LOW);
digitalWrite(bi1,LOW);
digitalWrite(bi2,HIGH);
void reversa(){
digitalWrite(ai1,LOW);
digitalWrite(ai2,HIGH);
digitalWrite(bi1,LOW);
digitalWrite(bi2,HIGH);
void detener(){
digitalWrite(ai1,LOW);
digitalWrite(ai2,LOW);
digitalWrite(bi1,LOW);
digitalWrite(bi2,LOW);