Introduction: Ultrasonic Sensor Controlled Servo in NodeMCU

Picture of Ultrasonic Sensor Controlled Servo in NodeMCU

Hi, I'm Sridhar Janardhan today I am teaching about how to interface ultrasonic sensor and control the servo motor based on the values thrown by the ultrasonic sensor.This ibles are for the node MCU beginners and I expect the peeps to stay patient to see the intermediate stage later weeks as soon I as finish the basic ibles of node MCU Arduino and photon.

Step 1:

Picture of

Components required to do this projects are:

  • NodeMCU
  • Breadboard
  • Jumper wire
  • Ultrasonic sensor
  • Servo motor

Let's now start with the connection

Step 2: Ultrasonic Sensor Connection

Picture of  Ultrasonic Sensor Connection

Ultrasonic sensor are connected by the following instruction

  • Trig pin: This is connected to the digital pin 13
  • ECHO pin: This is connected to the digital pin 12
  • VCC pin: this is connected to the Positive railing of the breadboard
  • GND pin: this is connected to the negative railing of the breadboard

Step 3: Servo Connection

Picture of Servo Connection

The servo motors are specially designed motor used to control the acceleration and angular rotation of the shaft.

The connection of the servo motor are as follows:

  • The red wire or positive supply is given to positive supply of the breadboard
  • The black wire or negative supply is given to the GND pin of the breadboard
  • The orange wire or signal wire is connected to the pin no 3 of node MCU

Step 4: Coding

Picture of Coding
#include<Servo.h>
const int trigPin = 15;
const int echoPin = 13;
long duration;
int distance;
int safetyDistance;
Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach(0);Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
safetyDistance = distance;
if (safetyDistance <= 5){
// goes from 0 degrees to 180 degrees // in steps of 1 degree
myservo.write(90); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else{ // goes from 180 degrees to 0 degrees
myservo.write(0); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position }
Serial.print("Distance: ");
Serial.println(distance);
}

Step 5: Output

Comments

About This Instructable

107views

7favorites

License:

Bio: I am an electronic hobbyist on Arduino, Photon, Raspberry Pi and common electronics.A passionate cook.Any assistance in electronics and web development feel free ... More »
More by callmeappytechie:PIR Controlled Buzzer Using ArduinoDIY LampshadeTasty Egg Bonda
Add instructable to: