hello , me and my tutor wrote/cobbled this code together (I'm on a media course and arduino isn't really part of the syllabus to write sonar sensor values to a servo arm.
however it turns out what I need is more simply an if statement so that when the sonar reads in a particular range the servo rotates it's full 180 degrees.
#include <Servo.h> //include servo library
int configPin = 13; //Set the sonar Calibration Pin
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
void setup() { //begin of program
Serial.begin(9600); //serial baud rate 9600
pinMode(configPin,OUTPUT); //make Calibration pin output
myservo.attach(

; // attaches the servo on pin 8 to the servo object
}
void loop(){ //looping of program
digitalWrite(configPin,HIGH); //raise the reset pin high
delay(120); //start of calibration ring
float sensorvalue = analogRead(0); //get analog sensor value from pin 0
float inchvalue = (254.0/1024.0) *2.0* sensorvalue; //convert to inches
pos = map(sensorvalue, 0, 1023, 0, 179);
Serial.println(pos);
myservo.write(pos); // sets the servo position according to the scaled value
delay(15);
Serial.print("Sensed a-d value:"); //print a-d text
Serial.println(sensorvalue); //print a-d value
Serial.print("Inch value="); //print inch text
Serial.println(inchvalue); //print inch value
delay(1000); //optional delay 1 second
digitalWrite(configPin,LOW); //turn off Calibration ring and sensor
delay(1000); //delay 1 second
}
I'm relatively sure I cut the mapping portion but I'm not clear where or how to write the if statement. sorry if this is too basic a question if so just direct me a page where I can work it out myself. cheers