Hi, I have 2 HC-05 modules and decided to have one in a controller with 2 joysticks and the other one in a circuit with 4 DC-Motors. Once they are connected and I try to move the joysticks, nothing happends. This is my code:
Controller:
#include <SoftwareSerial.h>
SoftwareSerial MANDO (10, 11);
int yPin = A0;
int yVal;
int yPin2 = A2;
int yVal2;
int xPin = A1;
int xVal;
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
Serial.println ("Listo");
MANDO.begin (38400);
pinMode(yPin, INPUT);
pinMode(yPin2, INPUT);
pinMode(xPin, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
yVal = analogRead(yPin);
//Serial.println(yVal);
yVal2 = analogRead(yPin2);
//Serial.println(yVal2);
xVal = analogRead(xPin);
//Serial.println(xVal);
if (MANDO.available())
{
//Serial.write(MANDO.read());
Serial.write(yVal);
Serial.write(yVal2);
Serial.write(xVal);
}
}
The cicuit with the 4 DC Motors:
#include <SoftwareSerial.h>
SoftwareSerial SUBMARINO (2, 3);
int speedPin = 9;
int dirPin1 = 8;
int dirPin2 = 7;
int speedMotor;
int yVal;
//motor izquierdo
int speedPin2 = 6;
int dirPin4 = 5;
int dirPin3 = 4;
int speedMotor2;
int yVal2;
int xVal;
//motor derecho
int speedPin3 = 10;
int dirPin5 = 11;
int dirPin6 = 12;
int speedMotor3;
int state = 20;
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
Serial.println ("Listo");
SUBMARINO.begin (38400);
pinMode(speedPin, OUTPUT);
pinMode(dirPin1, OUTPUT);
pinMode(dirPin2, OUTPUT);
pinMode(speedPin2, OUTPUT);
pinMode(speedPin2, OUTPUT);
pinMode(dirPin3, OUTPUT);
pinMode(dirPin4, OUTPUT);
pinMode(speedPin3, OUTPUT);
pinMode(dirPin5, OUTPUT);
pinMode(dirPin6, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(dirPin1, 0);
digitalWrite(dirPin2, 0);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 0);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 0);
if (SUBMARINO.available())
{
//Serial.write(SUBMARINO.read());
yVal = Serial.read();
Serial.write(yVal);
yVal2 = Serial.read();
Serial.write(yVal2);
xVal = Serial.read();
Serial.write(xVal);
if (yVal > 600) {
speedMotor = map(yVal,600,1023,0,255);
digitalWrite(dirPin1, 0);
digitalWrite(dirPin2, 1);
analogWrite(speedPin, speedMotor);
}
if (yVal <= 400) {
speedMotor = map(yVal,400,0,0,255);
digitalWrite(dirPin1, 1);
digitalWrite(dirPin2, 0);
analogWrite(speedPin, speedMotor);
}
if (yVal > 400 && yVal < 600) {
speedMotor = map(yVal,400,0,0,255);
digitalWrite(dirPin1, 0);
digitalWrite(dirPin2, 0);
analogWrite(speedPin, speedMotor);
}
if (yVal2 > 400 && yVal2 < 600)
{
speedMotor2 = map(yVal,400,0,0,255);
speedMotor3 = map(yVal,400,0,0,255);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 0);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 0);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
if (yVal2 > 600) {
speedMotor2 = map(yVal2,600,1023,0,255);
speedMotor3 = map(yVal2,600,1023,0,255);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 1);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 1);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
if (yVal2 < 400) {
speedMotor2 = map(yVal2,400,0,0,255);
speedMotor3 = map(yVal2,400,0,0,255);
digitalWrite(dirPin3, 1);
digitalWrite(dirPin4, 0);
digitalWrite(dirPin5, 1);
digitalWrite(dirPin6, 0);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
if (xVal > 400 && xVal < 600)
{
speedMotor2 = map(xVal,400,0,0,255);
speedMotor3 = map(xVal,400,0,0,255);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 0);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 0);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
if (xVal > 600) {
speedMotor2 = map(xVal,600,1023,0,255);
speedMotor3 = map(xVal,600,1023,0,255);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 1);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 0);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
if (xVal < 400) {
speedMotor2 = map(xVal,400,0,0,255);
speedMotor3 = map(xVal,400,0,0,255);
digitalWrite(dirPin3, 0);
digitalWrite(dirPin4, 0);
digitalWrite(dirPin5, 0);
digitalWrite(dirPin6, 1);
analogWrite(speedPin2, speedMotor2);
analogWrite(speedPin3, speedMotor3);
}
}
}
Does anyone know were the problem is?
Thanks.