I am sending complete codes of my project. I someone could please check and donate much needed info, it would be highly appreciated.
code/code
const int westPin = 2; //digital input directions
const int northPin = 6; //
const int eastPin = 4; //
const int southPin = 5; //
const int modePin = 3; // edge detect
const int ledPinOne=7; // digital output
const int ledPinTwo=8; //
const int ledPinThree=14; //
const int ledPinFour = 15; //
const int rmotorPin = 9; // analog output
const int dmotorPin = 11; //
const int rdirPin = 10; //digital output
const int ddirPin = 12; //
int westPinState =0 ; // all variables
int lastWestPinState =0; //
int northPinState =0; //
int lastNorthPinState = 0; //
int eastPinState = 0; //
int lastEastPinState = 0; //
int southPinState = 0; //
int lastSouthPinState = 0; //
int mode = 0; //
int val = 0; //
int buttonState = 0; //
int modeState = 0; // all variables
void setup () {
pinMode(westPin,INPUT); // setup input and outputs and turn on internal pullups
pinMode(northPin,INPUT); //
pinMode(eastPin,INPUT);
pinMode(southPin,INPUT);
pinMode(modePin);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP):
pinMode(4,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(ledPinOne,OUTPUT);
pinMode(ledPinTwo,OUTPUT);
pinMode(ledPinThree,OUTPUT);
pinMode(ledPinFour,OUTPUT);
pinMode(rmotor,OUTPUT); //next four pins pertain to the L298 motor driver
pinMode(dmotor,OUTPUT);
pinMode(rdirPin,OUTPUT);
pinMode(ddirPin,OUTPUT);
}
void loop()
val = digitalRead(modePin); {
if(val != buttonState && val==LOW) {
mode++;
}
buttonState = val;
if(modeState != mode) {
//if(mode != 0) {
}
switch (mode) {
case 2:
digitalWrite(ledPinOne,LOW);
digitalWrite(ledPinTwo,HIGH);
digitalWrite(ledPinthree,LOW);
digitalWrite(ledPinFour,LOW);
analogWrite(rmotorPin,150);
analogWrite(dmotorPin,100);
break;
case 3:
digitalWrite(ledPinOne,LOW);
digitalWrite(ledPinTwo,LOW);
digitalWrite(ledPinThree,HIGH);
digitalWrite(ledPinFour,LOW);
analogWrite(rmotorPin,200);
analogWrite(dmotorPin,125);
break;
case 4:
digitalWrite(ledPinOne,LOW);
digitalWrite(ledPinTwo,LOW);
digitalWrite(ledPinThree,LOW);
digitalWrite(ledPinFour,HIGH);
analogWrite(rmotor,250);
analogWrite(dmotor,150);
break;
default:
mode = 1;
digitalWrite(ledPinOne,HIGH);
digitalWrite(ledPinTwo,LOW);
digitalWrite(ledPinThree,LOW);
digitalWrite(ledPinFour,LOW);
analogWrite(rmotor,100);
analogWrite(dmotor,65);
break;
}
westPinState = digitalRead(westPin);
northPinState = digitalRead(northPin);
eastPinState = digitalRead(eastPin);
southPinState = digitalRead(southPin);
// compare the buttonstate with the previous state
if(westPinState != lastWestPinState) {
if( westPinState==LOW) {
analogWrite(rmotorPin,mode);
digitalWrite(rdirPin,LOW);
} else
{
analogWrite(rmotorPin,0);
digitalWrite(rdirPin,LOW);
}
}
if (northPinStdate != lastNorthPinState) {
if(northPinState==LOW) {
analogWrite(dmotorPin,mode);
digitalWrite(ddirPin,LOW);
}
else {
analogWrite(dmotorPin,0);
digitalWrite(ddirPij,LOW);
}
}
if (eastPinState != lastEastPinState) {
if(eastPinState ==LOW) {
analogWrite(rmotorPin,mode);
digitalWrite(rdirPin,High);
}
else {
analogWrite(rmotorPin,0);
digitalWrite(rdirPin,LOW);
}
}
if(southPinState != lastSouthPinState) {
if(southPinState==LOW) {
analogWrite(dmotorPin,mode);
digitalWrite(ddirPin,HIGH);
}
else {
analogWrite(dmotorPin,0);
digitalWrite(ddirPin,LOW);
}
}
delay(50)
lastWestPinState = westPinState;
lastNorthPinState = northPinState;
lastEastPinState = eastPinState;
lastSouthPinState = southPinState;
}