Squirrels have fuzzy tails.
0 Members and 1 Guest are viewing this topic.
servo1.write(0);delay(1000);servo1.write(180);delay(1000);Servo::refresh();
for (int IRpos=0; IRpos <= 20; IRpos++){ scanner.write(IRpos); delay(10); Servo::refresh();}
servo.detach()
break;
plz answer me fast, cuz i cant wait to get the robot done
#include <Servo.h>Servo left; Servo right; Servo scanner;int object = 0;int val = 0;int IR = 5;int IRpos = 0;int scan = 0;int scanlist = 0;int summa = 0;int tehe1 = 0;int tehe2 = 0;int summa2 = 0;int movemode = 0;int object2 = 0;int summa3 = 0;int tehe3 = 0;void setup() { right.attach(6); right.setMinimumPulse(500); right.setMaximumPulse(2500); right.write(90); left.attach(7); left.setMinimumPulse(500); left.setMaximumPulse(2500); left.write(90); scanner.attach(5); scanner.setMinimumPulse(500); scanner.setMaximumPulse(2500); scanner.write(90); Serial.begin(9600); Serial.println("valmis töötama"); delay(1000);}void loop() { scan = 1; if(summa < 525) { right.write(180); left.write(0); Servo::refresh(); } if(summa > 525){ for (int IRpos=102; IRpos >= 0; IRpos--){ scanner.write(IRpos); delay(10); Servo::refresh(); val = analogRead(5); } for (int IRpos=0; IRpos <= 20; IRpos++){ scanner.write(IRpos); delay(10); Servo::refresh(); val = analogRead(5); tehe2 = tehe2 + val; } summa2 = tehe2 / 21; tehe2 = 0; left.write(90); right.write(90); if (summa2 > 525) { for (int IRpos=20; IRpos <= 180; IRpos++){ scanner.write(IRpos); delay(10); Servo::refresh(); val = analogRead(5); } for (int IRpos=180; IRpos >= 160; IRpos--){ scanner.write(IRpos); delay(10); Servo::refresh(); val = analogRead(5); tehe3 = tehe3 + val; } summa3 = tehe3 / 21; tehe3 = 0; left.write(90); right.write(90); } if(summa3 < 525) { right.write(180); left.write(180); Servo::refresh(); } if(summa3 > 525) { left.write(0); right.write(0); } delay(1000); } if(scan = 1){ for (int IRpos=82; IRpos <= 102; IRpos++){ scanner.write(IRpos); delay(10); Servo::refresh(); val = analogRead(5); tehe1 = tehe1 + val; } summa = tehe1 / 21; tehe1 = 0; left.write(90); right.write(90); }}
#include <Servo.h>Servo left; Servo right; Servo scanner;int object = 0;int val = 0;int IR = 5;int IRpos = 0;int scan = 0;int scanlist = 0;int summa = 0;int tehe1 = 0;int tehe2 = 0;int summa2 = 0;int movemode = 0;int object2 = 0;int summa3 = 0;int tehe3 = 0;void setup() { right.attach(6); right.setMinimumPulse(500); right.setMaximumPulse(2500); right.write(89); left.attach(7); left.setMinimumPulse(500); left.setMaximumPulse(2500); left.write(89); scanner.attach(5); scanner.setMinimumPulse(500); scanner.setMaximumPulse(2500); scanner.write(90); Serial.begin(9600); Serial.println("valmis töötama"); delay(1000);}void loop() { summa = 0; summa2 = 0; summa3 = 0; for(int IRpos=72; IRpos <= 112; IRpos++){ scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(10); if(val > summa){ summa = val; } } if(summa < 600){ right.write(180); left.write(0); } if(summa >= 600){ right.write(89); left.write(89); for(int IRpos=112; IRpos >= 0; IRpos--){ scanner.write(IRpos); Servo::refresh(); delay(10); } for(int IRpos=0; IRpos <= 30; IRpos++){ scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(10); if(val > summa2){ summa2 = val; } } if(summa2 < 600){ right.write(180); left.write(180); Servo::refresh(); } if(summa2 >= 600) { right.write(89); left.write(89); Servo::refresh();for(int IRpos=30; IRpos <= 180; IRpos++){ scanner.write(IRpos); Servo::refresh(); delay(10); }for(int IRpos=180; IRpos >= 150; IRpos--){ scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(10); if(val > summa3){ summa3 = val; } } Serial.println(summa3); if(summa3 < 690){right.write(0);left.write(0); Servo::refresh(); } if(summa3 >= 690){ right.write(0); left.write(180); } }}}
Do this routine 50 timesServo GoForwardpause 20 mS
why isn't anybody helping me here... i want to know how you ppl would make it scan..
i mean how would you like it ti scan? like mine scans only from robots front and then if an object comes then it scans from the sides... but some ppl like to scan from left to right and then move.
for(int IRpos=0; IRpos <= 20; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(5); if(val > summa) { summa = val; } } for(int IRpos=20; IRpos <= 70; IRpos++) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=70; IRpos <= 110; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa2) { summa2 = val; } } for(int IRpos=110; IRpos <= 160; IRpos++) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=160; IRpos <= 180; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa3) { summa3 = val; } }
#include <Servo.h>Servo left; Servo right; Servo scanner;int object = 0;int val = 0;int IR = 5;int IRpos = 0;int scan = 0;int scanlist = 0;int summa = 0;int tehe1 = 0;int tehe2 = 0;int summa2 = 0;int movemode = 0;int object2 = 0;int summa3 = 0;int tehe3 = 0;int var = 0;int arv = 0;int del = 4;int summa4 = 0;int summa5 = 0;int summa6 = 0;void setup() { right.attach(6); right.setMinimumPulse(500); right.setMaximumPulse(2500); right.write(89); left.attach(7); left.setMinimumPulse(500); left.setMaximumPulse(2500); left.write(90); scanner.attach(5); scanner.setMinimumPulse(500); scanner.setMaximumPulse(2500); while(arv < 5000){ scanner.write(0); Servo::refresh(); arv++; } Serial.begin(9600); Serial.println("valmis töötama"); delay(1000);}void loop() { summa = 0; summa2 = 0; summa3 = 0; summa4 = 0; summa5 = 0; summa6 = 0; for(int IRpos=0; IRpos <= 20; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(5); if(val > summa) { summa = val; } } for(int IRpos=20; IRpos <= 70; IRpos++) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=70; IRpos <= 110; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa2) { summa2 = val; } } for(int IRpos=110; IRpos <= 160; IRpos++) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=160; IRpos <= 180; IRpos++) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa3) { summa3 = val; } } if(summa2 > 480){ if(summa > 590){ if(summa3 > 435){ Serial.println("pööran ümber"); } else {Serial.println("Pööran paremale"); } } else {Serial.println("Pööran vasakule"); } } else {Serial.println("Sõidan otse"); } for(int IRpos=180; IRpos >= 160; IRpos--) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa4) { summa4 = val; } } Serial.print("summa4 "); Serial.println(summa4); for(int IRpos=160; IRpos >= 110; IRpos--) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=110; IRpos >= 70; IRpos--) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa5) { summa5 = val; } } Serial.print("summa5 "); Serial.println(summa5); for(int IRpos=70; IRpos >= 20; IRpos--) { scanner.write(IRpos); Servo::refresh(); delay(del); } for(int IRpos=20; IRpos >= 0; IRpos--) { scanner.write(IRpos); Servo::refresh(); val = analogRead(5); delay(del); if(val > summa6) { summa6 = val; } } Serial.print("summa6 "); Serial.println(summa6); if(summa5 > 535){ if(summa4 > 500){ if(summa6 > 290){ Serial.println("pööran ümber"); } else {Serial.println("Pööran paremale"); } } else {Serial.println("Pööran vasakule"); } } else {Serial.println("Sõidan otse"); }}
Are you saying that despite distance being the same, the Sharp IR reads a different value?
I noticed the output values are above 255, which is the max for an 8 bit ADC. Are you using 10 bit?