Hola, soy nuevo en este maravillos mundo de Arduino, quiero armar un mini sumobot pero no encontre tutoriales en español, Los elementos del mini sumobot:
Tarjeta arduino uno
1 sensor ultrasónico
3 sensores Cny70
1 puente HL293
2 moto reductores
un conocido me envió el siguiente código:
/*
Sensor de proximidad y al ser inferior a 10cm
envia un pulso de alarma por el pin 13
HC-SR04 conexiones:
VCC al arduino 5v
GND al arduino GND
Echo al Arduino pin 6
Trig al Arduino pin 7
*/
#define botinicio 2
#define SL0 3
#define SL1 4
#define SL2 5
#define Pecho 6
#define Ptrig 7
#define mot1adelante 10
#define mot1atras 11
#define mot2adelante 12
#define mot2atras 13
long duracion, distancia;
int val = 0;
void setup() {
Serial.begin (9600); // inicializa el puerto seria a 9600 baudios
// define el pin 7 como salida (triger)
pinMode(botinicio, INPUT);
pinMode(SL0, INPUT);
pinMode(SL1, INPUT);
pinMode(SL2, INPUT);
pinMode(Pecho, INPUT);
pinMode(Ptrig, OUTPUT);
pinMode(mot1adelante, 1); // Define el pin 13 como salida
pinMode(mot1atras, 1);
pinMode(mot2adelante, 1);
pinMode(mot2atras, 1);
delay(5000);
}
void loop() {
minisumo();
}
void minisumo() {
val = digitalRead(SL0);
digitalWrite(mot1adelante, 1);
digitalWrite(mot1atras, 0);
digitalWrite(mot2adelante, 0);
digitalWrite(mot2atras, 1);
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2) / 29; // calcula la distancia en centimetros
if (distancia >= 500 || distancia <= 0){ // si la distancia es mayor a 500cm o menor a 0cm
minisumo(); // no mide nada
}
if (val == HIGH) {
reversa();
}
else{
if (distancia <= 10 && distancia >= 1){
ataque(); // envia la palabra Alarma por el puerto serial
}
}
// espera 400ms para que se logre ver la distancia en la consola
}
void ataque(){
val = digitalRead(SL0);
digitalWrite(mot1adelante, 1); // en bajo el pin 13
digitalWrite(mot1atras, 0);
digitalWrite(mot2adelante, 1);
digitalWrite(mot2atras, 0);
if (val == HIGH){
reversa();
}
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2) / 29;
if (distancia <= 10 && distancia >= 1){
ataque();
}
else{
if (distancia >= 10 || distancia <= 0){ // si la distancia es mayor a 500cm o menor a 0cm
minisumo(); // no mide nada
}
}
}
void reversa() {
digitalWrite(mot1adelante, 0); // en bajo el pin 13
digitalWrite(mot1atras, 1);
digitalWrite(mot2adelante,0);
digitalWrite(mot2atras, 1);
val = digitalRead(SL0);
if (val == HIGH) {
reversa();
}
else{
minisumo();
}
}
sin embargo no recuerda las conexiones (no me dio el esquema ni nada), quisiera saber especificamente donde debo conectar para elemento del sumobot
