Hey. We are trying to program autonimous with IR board.
here is our code:
Code:
//**** Check the IR Sensor for a new command
sensorReading = PORTJ>>4; // Combined digital inputs 15-18
if (latch == 1)
{
if (sensorReading == 0)
{
latch = 0; // Take only the 1st reading to avoid being caught by a half & half state of the IR sensor
}
}
else if (sensorReading != 0)
{
latch = 1;
if (sensorReading == 8) IR_cmd = 1;
else if (sensorReading == 4) IR_cmd = 4;
else if (sensorReading == 2) IR_cmd = 2;
else if (sensorReading == 1) IR_cmd = 3;
printf("IR_cmd = %d\r\n", IR_cmd);
}
switch(IR_cmd)
{
case 0:
break;
case 1:
if (counter <= 50)
{
pwm01 = pwm02 = 255;
counter++;
}
else
{
counter = 0;
pwm01 = pwm02 = 127;
}
break;
case 2:
pwm01 = 200;
pwm02 = 55;
break;
case 3:
pwm01 = 55;
pwm02 = 200;
break;
case 4:
relay1_fwd = 1;
}
This one loops forever. The problem is the counter = 0;.
If we remove it, the motors never stop moving
We want to have it configured so if button one is pressed, it will move forward for x seconds, and so on for the rest.
another problem is that the relay will not fire.
Any help will be appreciated. Thank you.