Created
October 15, 2018 10:13
-
-
Save e-Gizmo/1167c2b73c86996304f5ed900c1a9e5e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Includes the Servo library | |
#include <Servo.h> | |
#include <NewPing.h> | |
int pos = 15; | |
// Defines Tirg and Echo pins of the Ultrasonic Sensor | |
const int trigPin = 10; | |
const int echoPin = 11; | |
// Variables for the duration and the distance | |
long duration; | |
int distance; | |
NewPing sonar(trigPin, echoPin, 400); // NewPing setup of pins and maximum distance. | |
Servo myServo; // Creates a servo object for controlling the servo motor | |
void setup() { | |
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output | |
pinMode(echoPin, INPUT); // Sets the echoPin as an Input | |
Serial.begin(9600); | |
myServo.attach(12); // Defines on which pin is the servo motor attached | |
} | |
void loop() | |
{ | |
for ( pos = 15; pos <= 165; pos += 1) | |
{ // goes from 0 degrees to 180 degrees | |
// in steps of 1 degree | |
myServo.write(pos); // tell servo to go to position in variable 'pos' | |
delay(30); // waits 15ms for the servo to reach the position | |
distance = sonar.ping_cm();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree | |
Serial.print(pos); // Sends the current degree into the Serial Port | |
Serial.print(","); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing | |
Serial.print(distance); // Sends the distance value into the Serial Port | |
Serial.print("."); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing | |
} | |
for ( pos = 165; pos >= 15; pos -= 1) | |
{ // goes from 180 degrees to 0 degrees | |
myServo.write(pos); // tell servo to go to position in variable 'pos' | |
delay(30); // waits 15ms for the servo to reach the position | |
distance = sonar.ping_cm();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree | |
Serial.print(pos); // Sends the current degree into the Serial Port | |
Serial.print(","); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing | |
Serial.print(distance); // Sends the distance value into the Serial Port | |
Serial.print("."); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing | |
} | |
delay(1000); | |
} | |
// Function for calculating the distance measured by the Ultrasonic sensor | |
int calculateDistance(){ | |
digitalWrite(trigPin, LOW); | |
delayMicroseconds(2); | |
// Sets the trigPin on HIGH state for 10 micro seconds | |
digitalWrite(trigPin, HIGH); | |
delayMicroseconds(10); | |
digitalWrite(trigPin, LOW); | |
duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds | |
distance= duration*0.034/2; | |
return distance; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment