about my code
hello everyone,
i new programming , trying control direction of 2 motors light. code not working. guys please see problem be?
// motor one
int ena = 9;
int in1 = 8;
int in2 = 7;
// motor two
int enb = 3;
int in3 = 5;
int in4 = 4;
int sensorpinright = 2; // right sensor pin
int sensorpinleft = 3; // left sensor pin
int sensorpinforward = 0; // front sensor pin
int sensorpinbackward = 1; // sensor pin
int lightreadingright;
int lighttoleranceright = 500; // sensor reading needed trigger right turn
int lightreadingleft;
int lighttoleranceleft = 500; // sensor reading needed trigger left turn
int lightreadingforward;
int lighttoleranceforward = 500; // sensor reading needed trigger front turn
int lightreadingbackward;
int lighttolerancebackward = 500; // sensor reading needed trigger turn
int readingdelay = 100; // delay between readings
void setup()
{
pinmode(ena, output);
pinmode(enb, output);
pinmode(in1, output);
pinmode(in2, output);
pinmode(in3, output);
pinmode(in4, output);
//uncomment serial feed calibration purposes
serial.begin(9600);
}
void loop()
{
// uncomment serial print lines calibration purposes
// take reading right sensor
lightreadingright = analogread(sensorpinright);
serial.print("right sensor reading :");
serial.println(lightreadingright);
// take reading left sensor
lightreadingleft = analogread(sensorpinleft);
serial.print("left sensor reading :");
serial.println(lightreadingleft);
// take reading front sensor
lightreadingforward = analogread(sensorpinforward);
serial.print("front sensor reading :");
serial.println(lightreadingforward);
//take reading sensor
lightreadingbackward = analogread(sensorpinbackward);
serial.print("back sensor reading :");
serial.println(lightreadingbackward);
// move forward if enought light detected front sensor
if (lightreadingforward > lighttoleranceforward)
{
// motor a
digitalwrite(in1,high);
digitalwrite(in2,low);
analogwrite(ena,200);
// motor b
digitalwrite(in3,high);
digitalwrite(in4,low);
analogwrite(enb,200);
delay(readingdelay);
// turn off motors
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
// turn right if enough light detected right sensor
if (lightreadingright > lighttoleranceright)
{
digitalwrite(in1,low);
digitalwrite(in2, high);
digitalwrite(in3, low);
digitalwrite(in4, high);
delay(readingdelay);
// turn off motors
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
// turn left if enough light detected left sensor
if (lightreadingleft > lighttoleranceleft)
{
digitalwrite(in1,high);
digitalwrite(in2, low);
digitalwrite(in3,high);
digitalwrite(in4, low);
delay(readingdelay);
// stop
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
//turn if enough light detected backward direction
digitalwrite(in1,low);
digitalwrite(in2,high);
digitalwrite(in3,low);
digitalwrite(in4,high);
delay(readingdelay);
// stop
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
i new programming , trying control direction of 2 motors light. code not working. guys please see problem be?
// motor one
int ena = 9;
int in1 = 8;
int in2 = 7;
// motor two
int enb = 3;
int in3 = 5;
int in4 = 4;
int sensorpinright = 2; // right sensor pin
int sensorpinleft = 3; // left sensor pin
int sensorpinforward = 0; // front sensor pin
int sensorpinbackward = 1; // sensor pin
int lightreadingright;
int lighttoleranceright = 500; // sensor reading needed trigger right turn
int lightreadingleft;
int lighttoleranceleft = 500; // sensor reading needed trigger left turn
int lightreadingforward;
int lighttoleranceforward = 500; // sensor reading needed trigger front turn
int lightreadingbackward;
int lighttolerancebackward = 500; // sensor reading needed trigger turn
int readingdelay = 100; // delay between readings
void setup()
{
pinmode(ena, output);
pinmode(enb, output);
pinmode(in1, output);
pinmode(in2, output);
pinmode(in3, output);
pinmode(in4, output);
//uncomment serial feed calibration purposes
serial.begin(9600);
}
void loop()
{
// uncomment serial print lines calibration purposes
// take reading right sensor
lightreadingright = analogread(sensorpinright);
serial.print("right sensor reading :");
serial.println(lightreadingright);
// take reading left sensor
lightreadingleft = analogread(sensorpinleft);
serial.print("left sensor reading :");
serial.println(lightreadingleft);
// take reading front sensor
lightreadingforward = analogread(sensorpinforward);
serial.print("front sensor reading :");
serial.println(lightreadingforward);
//take reading sensor
lightreadingbackward = analogread(sensorpinbackward);
serial.print("back sensor reading :");
serial.println(lightreadingbackward);
// move forward if enought light detected front sensor
if (lightreadingforward > lighttoleranceforward)
{
// motor a
digitalwrite(in1,high);
digitalwrite(in2,low);
analogwrite(ena,200);
// motor b
digitalwrite(in3,high);
digitalwrite(in4,low);
analogwrite(enb,200);
delay(readingdelay);
// turn off motors
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
// turn right if enough light detected right sensor
if (lightreadingright > lighttoleranceright)
{
digitalwrite(in1,low);
digitalwrite(in2, high);
digitalwrite(in3, low);
digitalwrite(in4, high);
delay(readingdelay);
// turn off motors
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
// turn left if enough light detected left sensor
if (lightreadingleft > lighttoleranceleft)
{
digitalwrite(in1,high);
digitalwrite(in2, low);
digitalwrite(in3,high);
digitalwrite(in4, low);
delay(readingdelay);
// stop
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
//turn if enough light detected backward direction
digitalwrite(in1,low);
digitalwrite(in2,high);
digitalwrite(in3,low);
digitalwrite(in4,high);
delay(readingdelay);
// stop
digitalwrite(in1, low);
digitalwrite(in2, low);
digitalwrite(in3, low);
digitalwrite(in4, low);
}
your code working; possibly not intended that's else. please explain expect , doing.
your aware last part of loop (after // turn ...) executed?
and please edit post , add code tags around code
type [code] before code
type [/code] after code
your aware last part of loop (after // turn ...) executed?
and please edit post , add code tags around code
type [code] before code
type [/code] after code
Arduino Forum > Using Arduino > Programming Questions > about my code
arduino
Comments
Post a Comment