Código de mover el coche:
const int EN_A_5 = 5;
const int IN_1_11 = 11;
const int IN_2_10 = 10;
const int EN_B_6 = 6;
const int IN_3_12 = 12;
const int IN_4_13 = 13;
const int infrarrojo_izquierdo = 2;
const int infrarrojo_derecho = 3;
float Velocidad = 150;
float izquierda = 0;
float derecha = 0;
void Derecha() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, HIGH);
digitalWrite(IN_3_12, LOW);
digitalWrite(IN_4_13, HIGH);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void Apagado() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, LOW);
digitalWrite(IN_3_12, LOW);
digitalWrite(IN_4_13, LOW);
digitalWrite(EN_A_5, LOW);
digitalWrite(EN_B_6, LOW);
}
void avanzar() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, HIGH);
digitalWrite(IN_3_12, HIGH);
digitalWrite(IN_4_13, LOW);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void Izquierda() {
digitalWrite(IN_1_11, HIGH);
digitalWrite(IN_2_10, LOW);
digitalWrite(IN_3_12, HIGH);
digitalWrite(IN_4_13, LOW);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void setup() {
pinMode(EN_A_5, OUTPUT);
pinMode(IN_1_11, OUTPUT);
pinMode(IN_2_10, OUTPUT);
pinMode(EN_B_6, OUTPUT);
pinMode(IN_3_12, OUTPUT);
pinMode(IN_4_13, OUTPUT);
pinMode(infrarrojo_izquierdo, INPUT);
pinMode(infrarrojo_derecho, INPUT);
}
void loop() {
izquierda = digitalRead(infrarrojo_izquierdo);
derecha = digitalRead(infrarrojo_derecho);
if (((izquierda == 0) && (derecha == 0))) {
Apagado();
} else if (((izquierda == 1) && (derecha == 0))) {
Derecha();
} else if (((izquierda == 0) && (derecha == 1))) {
Izquierda();
} else if (((izquierda == 1) && (derecha == 1))) {
avanzar();
}
}
Código de curva 90 grados:
const int EN_A_5 = 5;
const int IN_1_11 = 11;
const int IN_2_10 = 10;
const int EN_B_6 = 6;
const int IN_3_12 = 12;
const int IN_4_13 = 13;
const int infrarrojo_izquierdo = 2;
const int infrarrojo_derecho = 3;
float Velocidad = 95;
float izquierda = 0;
float derecha = 0;
void Derecha() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, HIGH);
digitalWrite(IN_3_12, LOW);
digitalWrite(IN_4_13, HIGH);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void Apagado() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, LOW);
digitalWrite(IN_3_12, LOW);
digitalWrite(IN_4_13, LOW);
digitalWrite(EN_A_5, LOW);
digitalWrite(EN_B_6, LOW);
}
void avanzar() {
digitalWrite(IN_1_11, LOW);
digitalWrite(IN_2_10, HIGH);
digitalWrite(IN_3_12, HIGH);
digitalWrite(IN_4_13, LOW);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void Izquierda() {
digitalWrite(IN_1_11, HIGH);
digitalWrite(IN_2_10, LOW);
digitalWrite(IN_3_12, HIGH);
digitalWrite(IN_4_13, LOW);
analogWrite(5, Velocidad);
analogWrite(6, Velocidad);
}
void setup() {
pinMode(EN_A_5, OUTPUT);
pinMode(IN_1_11, OUTPUT);
pinMode(IN_2_10, OUTPUT);
pinMode(EN_B_6, OUTPUT);
pinMode(IN_3_12, OUTPUT);
pinMode(IN_4_13, OUTPUT);
pinMode(infrarrojo_izquierdo, INPUT);
pinMode(infrarrojo_derecho, INPUT);
}
void loop() {
izquierda = digitalRead(infrarrojo_izquierdo);
derecha = digitalRead(infrarrojo_derecho);
if (((izquierda == 0) && (derecha == 0))) {
Apagado();
} else if (((izquierda == 1) && (derecha == 0))) {
Derecha();
} else if (((izquierda == 0) && (derecha == 1))) {
Izquierda();
} else if (((izquierda == 1) && (derecha == 1))) {
avanzar();
}
}
código para que busque la linea si se sale de ella:
const int EN_A_5 = 5;
const int IN_1_11 = 11;
const int IN_2_10 = 10;
const int EN_B_6 = 6;
const int IN_3_12 = 12;
const int IN_4_13 = 13;
const int infrarrojo_izquierdo = 2;
const int infrarrojo_derecho = 3;
float Velocidad = 150;
float izquierda = 0;
float derecha = 0;
void se_ha_salido() {
se_ha_salido();
} else if (((izquierda == 1) && (derecha == 0))) {
Derecha();
} else if (((izquierda == 0) && (derecha == 1))) {
Izquierda();
} else if (((izquierda == 1) && (derecha == 1))) {
avanzar();
}
}
No hay comentarios:
Publicar un comentario