Hola. Tengo el programa de todos los movimientos. Funciona perfectamente por si solo, pero cuando conecto bluetooth o sensor de distancia, me bala la tensión y no se mueve.
int IN1 = 2;
int IN2 = 3;
int ENA = 5;
int IN3 = 7;
int IN4 = 8;
int ENB = 9;
int VELOCITAT;
void setup() {
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENB, OUTPUT);
}
void loop() {
VELOCITAT=200;
endavant(VELOCITAT);
delay(3000);
aturada();
delay(3000);
enrere(VELOCITAT);
delay(5000);
dretaEndavant(VELOCITAT);
delay(3000);
aturada();
delay(5000);
esquerraEndavant(VELOCITAT);
delay(3000);
}
void endavant(int veloc){
analogWrite(ENA, veloc);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, veloc);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void enrere(int veloc){
analogWrite(ENA, veloc);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENB, veloc);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void dretaEndavant(int veloc){
analogWrite(ENA, veloc);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, veloc);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void esquerraEndavant(int veloc){
analogWrite(ENA, veloc);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENB, veloc);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void aturada(){
analogWrite(ENA, 0);
analogWrite(ENB, 0);
}
Esto es con el Bluetooth
#include <SoftwareSerial.h>
SoftwareSerial ElMeuBT(10, 11); // pin 10 como RX, pin 11 como TX
int DATO = 0;
int IN1 = 2;
int IN2 = 3;
int ENA = 5;
int IN3 = 7;
int IN4 = 8;
int ENB = 9;
int VELOCITAT = 80;
void setup() {
ElMeuBT.begin(38400);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
while(ElMeuBT.available() > 0) {
DATO = ElMeuBT.read();
if (DATO == '2') {
analogWrite(ENA, VELOCITAT);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, VELOCITAT);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}else
if (DATO == '8') {
analogWrite(ENA, VELOCITAT);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENB, VELOCITAT);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}else
if (DATO == '4') {
analogWrite(ENA, VELOCITAT);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, 0);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}else
if (DATO == '6') {
analogWrite(ENA, 0);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENB, VELOCITAT);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}else
if (DATO == '5') {
analogWrite(ENA, 0);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(ENB, 0);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
}
