total rookie here. Ive been trying to find a way to have 3 different speeds for my bot project that can be changed while operating. Can I use setSpeed and will this code work? What am I missing?
int motorSpeedMax = 250;
int motorSpeedMed = 150;
int motorSpeedMin = 100;
int LRPWM=5
int LLPWM=6
int RPWM=10
int LPWM=11
// timer 0
int LREN=7
int LLEN=8
int REN=12
int LEN=13
char incomingByte; // variable to receive data from the serial port
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
turn on motor
LLPWM.setSpeed(motorSpeedMed);
LRPWM.setSpeed(motorSpeedMed);
LPWM.setSpeed(motorSpeedMed);
RPWM.setSpeed(motorSpeedMed);
pinMode(LRPWM,OUTPUT);
pinMode(LLPWM,OUTPUT);
pinMode(LLEN,OUTPUT);
pinMode(LREN,OUTPUT);
digitalWrite(LREN,HIGH);
digitalWrite(LLEN,HIGH);
pinMode(RPWM,OUTPUT);
pinMode(LPWM,OUTPUT);
pinMode(LEN,OUTPUT);
pinMode(REN,OUTPUT);
digitalWrite(REN,HIGH);
digitalWrite(LEN,HIGH);
}
void loop() {
if( Serial.available() > 0 ) // if data is available to read
{
incomingByte = Serial.read(); // read it and store it in 'incomingBye"'
}
if( incomingByte == 'i' )
LRPWM.setSpeed(motorSpeedMax);
LLPWM.setSpeed(motorSpeedMax);
LPWM.setSpeed(motorSpeedMax);
RPWM.setSpeed(motorSpeedMax);
}
if( incomingByte == 'o' )
{
LRPWM.setSpeed(motorSpeedMed);
LLPWM.setSpeed(motorSpeedMed);
LPWM.setSpeed(motorSpeedMed);
RPWM.setSpeed(motorSpeedMed);
}
if( incomingByte == 'p' )
{
LRPWM.setSpeed(motorSpeedMin);
LLPWM.setSpeed(motorSpeedMin);
RPWM.setSpeed(motorSpeedMin);
LPWM.setSpeed(motorSpeedMin);
}
if( incomingByte == '1' )
{
analogWrite(LRPWM,Speed);
analogWrite(LLPWM,0);
analogWrite(RPWM,0);
analogWrite(LPWM,Speed);
}