Squirrels have fuzzy tails.
0 Members and 1 Guest are viewing this topic.
#include <Servo.h> Servo myservo; // create servo object to control a servo int motor_left[] = {2, 3};int motor_right[] = {7, 6};int IRpin=0 ; void setup() { myservo.attach(9);// attaches the servo on pin 9 to the servo object // Setup motors int i; for(i = 0; i < 2; i++) { pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); }} void loop() { myservo.write(90); delay(250); int sharpir=getsharpdata(); drive_forward(); if(sharpir<20) { servo_scan(); } }// --------------------------------------------------------------------------- Drivevoid motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(250);}void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW);}void drive_backward(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH);}void turn_left(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW);}void turn_right(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH);}float getsharpdata(){ float val = analogRead(IRpin); float distance = (2914 / (val + 5)) - 1; delay(50); return distance; } void servo_scan(){ motor_stop(); myservo.write(0); delay(1000); int left=getsharpdata(); myservo.write(180); delay(1000); int right=getsharpdata(); if(left>right) { turn_left(); delay(500); }else { turn_right(); delay(500); } }
float distance = 5 * 2769 / 2 * value * pow(value, -.9988);
#include <Servo.h> Servo myservo; // create servo object to control a servo int motor_left[] = {2, 3};int motor_right[] = {7, 6};int IRpin=0 ;int avgdistance=0;int val[5]; void setup() { myservo.attach(9);// attaches the servo on pin 9 to the servo object pinMode(0, INPUT); // Setup motors int i; for(i = 0; i < 2; i++) { pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); }} void loop() { myservo.write(90); delay(250); int sharpir=getsharpdata(); drive_forward(); if(sharpir>330) { servo_scan(); } }// --------------------------------------------------------------------------- Drivevoid motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(250);}void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW);}void drive_backward(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH);}void turn_left(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW);}void turn_right(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH);}float getsharpdata(){ for(int i=0;i<5;i++) { val[i] = analogRead(IRpin); // Calculate linear slope of reading (thanks, Acroname!): avgdistance+=val[i]; delay(10); } avgdistance=avgdistance/5; return avgdistance;} void servo_scan(){ motor_stop(); myservo.write(0); delay(1000); int left=getsharpdata(); myservo.write(180); delay(1000); int right=getsharpdata(); if(left>right) { turn_left(); delay(500); }else { turn_right(); delay(500); } }