Arduino – Range finder (sketch)

Qui trovate l’articolo
Il video può essere visualizzato anche su youtube
Supportami su Patreon!
Seguimi anche sulla pagina di facebook! e sul canale di youtube

di seguito lo sketch (il software che fa funzionare il tutto):


#include ;

Servo myServo;
const int triggerPin = 2;
const int echoPin = 3;
const int servoPin = 9;
long duration = 0;
int distance[12];
int servoPosition[] = {0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180};

void setup()
{
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
myServo.attach(servoPin);
Serial.begin(9600);
}

void loop()
{
for(int i = 0; i < 12; i ++) { delay(100); myServo.write(servoPosition[i]); delay(100); digitalWrite(triggerPin, LOW); delayMicroseconds(2); digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); duration = pulseIn(echoPin, HIGH); distance[i] = duration / 59; Serial.print("Angolo: "); Serial.print(servoPosition[i]); Serial.print(" gradi"); Serial.print(" distanza: "); Serial.println(distance[i]); } for(int i = 11; i > 0; i--)
{
delay(100);
myServo.write(servoPosition[i]);
delay(100);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance[i] = duration / 59;
Serial.print("Angolo: ");
Serial.print(servoPosition[i]);
Serial.print(" gradi");
Serial.print(" distanza: ");
Serial.println(distance[i]);
}
}

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>