not executing entire sketch
hello,
i new programming , adapting else's code. trouble having not parts of sketch executed. here code using (it's not complete yet):
the problem lies lookingright = true. way understand have written when lookingright true, n reading of current servo position decrease 1. value written servo until n reaches 0 lookingright set false. problem when n reaches 0 nothing happens, stays @ 0. also, scan part of sketch not executed past serial.println(n) line.
any appreciated.
i new programming , adapting else's code. trouble having not parts of sketch executed. here code using (it's not complete yet):
code: [select]
/*
*autonomous robot
*/
#include <servo.h>
//wheel servo
#define rstop 90
#define lstop 90
#define rforward 0
#define rreverse 180
#define lforward 180
#define lreverse 0
//head servo
#define center 90
#define right 0
#define left 180
#define rcenter 45
#define lcenter 125
//convinience
#define err 50
#define leftturn 0
#define debug 0
servo leftwheel;
servo rightwheel;
servo head;
int leftspeeed = lforward;
int rightspeed = rforward;
int headposition = center;
int leftdist = 0;
int rightdist = 0;
int frontdist = 0;
int eyes = 5;
int curdist = 0;
int objdist = 0;
int objdir = 0;
boolean lookingright = true;
boolean turnnow = false;
void setup(){
leftwheel.attach (9);
rightwheel.attach(10);
head.attach(11);
rightwheel.write(rstop);
leftwheel.write(lstop);
head.write(headposition);
serial.begin(9600);
}
/* go - full speed ahead
* stop - dead stop
* turn - turn in place duration miliseconds
*/
void go(){
rightwheel.write(rforward);
leftwheel.write(lforward);
}
void stop(){
rightwheel.write(rstop);
leftwheel.write(lstop);
}
void turn(int dir){
// store current speeds
rightspeed = rightwheel.read();
leftspeed = leftwheel.read();
if(dir == leftturn){
rightwheel.write(rreverse);
leftwheel.write(lforward);
}
else {
rightwheel.write(rforward);
leftwheel.write(lreverse);
}
delay(800);
//restore original speeds
rightwheel.write(rightspeed);
leftwheel.write(leftspeed);
}
/* scan - turns head 1o , records distance , heading.
* saves closest object info.
* objdist , objdir hold closest object data
*/
void scan(){
int n = head.read();
if(lookingright = true){
head.write(n - 1);
}
if(n == 0) {
lookingright = false;
frontdist = 0;
objdist = 0;
turnnow = true;
}
if(lookingright = false){
head.write(n + 1);
}
if(n == 180){
lookingright = true;
frontdist = 0;
objdist = 0;
turnnow = true;
}
serial.println(n);
curdist = analogread(eyes);
if(curdist > objdist){
objdist = curdist;
objdir = head.read();
if(debug){
serial.print("new close object @ distane: ");
serial.print(objdist);
serial.print(" heading: ");
serial.println(objdir);
}
}
delay(10);
}
void loop(){
scan();
}
the problem lies lookingright = true. way understand have written when lookingright true, n reading of current servo position decrease 1. value written servo until n reaches 0 lookingright set false. problem when n reaches 0 nothing happens, stays @ 0. also, scan part of sketch not executed past serial.println(n) line.
any appreciated.
code: [select]
if(lookingright = true){
head.write(n - 1);
}
use == instead of = here comparison, or you'll set lookingright true every time. (same when comparing false)
Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > not executing entire sketch
arduino
Comments
Post a Comment