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);

}


 

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


Arduino Forum > Using Arduino > Programming Questions > about my code


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts