SlideShare una empresa de Scribd logo
1 de 19
CODING IN ARDUINO:
The open-source Arduino Programming (IDE) makes it simple to compose code and transfer it
to the board. It keeps running on Windows, Macintosh OS X, and Linux. Nature is composed in
Java and in light of Handling and other open-source programming.
For auto mode:
void AutoMode()
{
if(ResetCheck == 0)
{
if(PIRValue == 1)
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
while(1)
{
PIRSensor();
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 9){direc = 6;}
}
if(direc == 6)
{
ResetCheck = 1;
direc = 0;
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
break;
}
if(PIRValue == 0){break;}
}
}
if(PIRValue == 0)
{
//Serial.println("YES");
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
if(FrontSensor > 50 ){ MotorsForward(); }
if(FrontSensor < 50)
{
MotorsStop();
delay(1000);
if(((RightSensor > 30) && (LeftSensor > 30)) && (TurnCheck == 0))
{
MotorsLeft();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
if((RightSensor < 30) && (LeftSensor < 30))
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
StopCheck = 1;
}
if(StopCheck == 0)
{
if((RightSensor < 30) && (TurnCheck == 0))
{
MotorsLeft();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
if((LeftSensor < 30) && (TurnCheck == 0))
{
MotorsRight();
delay(3500);
MotorsStop();
delay(1000);
//MotorsForward();
TurnCheck = 1;
}
}
StopCheck = 0;
TurnCheck = 0;
}
}
For Manual Mode:-
void ManualMode()
{
if(direc == 1){MotorsForward();}
if(direc == 2){MotorsBackward();}
if(direc == 3){MotorsLeft();}
if(direc == 4){MotorsRight();}
if(direc == 5){MotorsStop();}
if(PIRValue == 1)
{
radio.stopListening();
unsigned long time = 1;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
MotorsStop();
while(1)
{
PIRSensor();
if(PIRValue == 0){break;}
}
}
if(PIRValue == 0)
{
//Serial.println("YES");
radio.stopListening();
unsigned long time = 0;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
Human Detection Using PIR And Sonar:-
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
#define trigPin1 4
#define echoPin1 6
#define trigPin2 7
#define echoPin2 8
#define trigPin3 A4
#define echoPin3 A5
#define pirPin 2
#define motorR1 A0
#define motorR2 A1
#define motorL1 A3
#define motorL2 A2
#define PwmLeft 3
#define PwmRight 5
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;
long duration, distance, RightSensor,FrontSensor,LeftSensor;
int TurnCheck = 0;
int mode = 0;
int direc = 0;
int StopCheck = 0;
int ResetCheck = 0;
void setup()
{
Serial.begin(57600);
radio.begin();
radio.setRetries(15,15);
radio.openReadingPipe(1,pipes[1]);
radio.startListening();
radio.printDetails();
radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(pirPin, INPUT);
digitalWrite(pirPin, LOW);
pinMode(motorR1, OUTPUT);
pinMode(motorR2, OUTPUT);
pinMode(motorL1, OUTPUT);
pinMode(motorL2, OUTPUT);
pinMode(PwmLeft, OUTPUT);
pinMode(PwmRight, OUTPUT);
analogWrite(PwmLeft, 0);
analogWrite(PwmRight, 0);
delay(1000);
}
void loop() {
SonarSensor(trigPin1, echoPin1);
LeftSensor = distance;
SonarSensor(trigPin2, echoPin2);
FrontSensor = distance;
SonarSensor(trigPin3, echoPin3);
RightSensor = distance;
PIRSensor();
if(PIRValue == 0){ResetCheck = 0;}
//radio.startListening();
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 2){mode = 1;}
if(data == 3){mode = 2;}
if(data == 4){direc = 1;}
if(data == 5){direc = 2;}
if(data == 6){direc = 3;}
if(data == 7){direc = 4;}
if(data == 8){direc = 5;}
// radio.stopListening();
}
if(mode == 1)
{
AutoMode();
}
if(mode == 2)
{
ManualMode();
}
}
PIR Sensor:-
void PIRSensor()
{
if(digitalRead(pirPin) == HIGH)
{
if(lockLow)
{
PIRValue = 1;
lockLow = false;
Serial.println("Motion detected.");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW)
{
if(takeLowTime){lowIn = millis();takeLowTime = false;}
if(!lockLow && millis() - lowIn > pause)
{
PIRValue = 0;
lockLow = true;
Serial.println("Motion ended.");
delay(50);
}
}
}
Sonar Sensor:-
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
delay(100);
}
Motors Routine:-
void MotorsBackward()
{
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, LOW);
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, LOW);
}
void MotorsForward()
{
digitalWrite(motorL1, LOW);
digitalWrite(motorL2, HIGH);
digitalWrite(motorR1, LOW);
digitalWrite(motorR2, HIGH);
}
void MotorsStop()
{
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, HIGH);
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, HIGH);
}
void MotorsRight()
{
digitalWrite(motorR1, HIGH);
digitalWrite(motorR2, HIGH);
digitalWrite(motorL1, LOW);
digitalWrite(motorL2, HIGH);
}
void MotorsLeft()
{
digitalWrite(motorR1, LOW);
digitalWrite(motorR2, HIGH);
digitalWrite(motorL1, HIGH);
digitalWrite(motorL2, HIGH);
}
Human Detection Using Sonar and PIR :-
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int buzzer = 8;
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
typedef enum { role_ping_out = 1, role_pong_back } role_e;
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};
role_e role = role_pong_back;
void setup(void)
{
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
digitalWrite(buzzer,HIGH);
radio.begin();
radio.setRetries(15,15);
radio.openReadingPipe(1,pipes[1]);
radio.startListening();
radio.printDetails();
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
}
void loop(void)
{
if ( radio.available() )
{
unsigned long data = 0;
radio.read( &data, sizeof(unsigned long) );
Serial.println(data);
if(data == 1)
{digitalWrite(buzzer,LOW);
}
if(data == 0)
{digitalWrite(buzzer,HIGH);
}
}
if(Serial.available())
{
char sdata = Serial.read();
if(sdata == 'a')
{
radio.stopListening();
unsigned long time = 2;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'm')
{
radio.stopListening();
unsigned long time = 3;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'f')
{
radio.stopListening();
unsigned long time = 4;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'b')
{
radio.stopListening();
unsigned long time = 5;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'l')
{
radio.stopListening();
unsigned long time = 6;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'r')
{
radio.stopListening();
unsigned long time = 7;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 's')
{
radio.stopListening();
unsigned long time = 8;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
if(sdata == 'R')
{
radio.stopListening();
unsigned long time = 9;
radio.write( &time, sizeof(unsigned long) );
radio.startListening();
}
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Pipeline stalling in vhdl
Pipeline stalling in vhdlPipeline stalling in vhdl
Pipeline stalling in vhdl
 
Class9
Class9Class9
Class9
 
FINISHED_CODE
FINISHED_CODEFINISHED_CODE
FINISHED_CODE
 
Uart
UartUart
Uart
 
REPORT
REPORTREPORT
REPORT
 
W10: Interrupts
W10: InterruptsW10: Interrupts
W10: Interrupts
 
Lathe Spindle Sensor
Lathe Spindle SensorLathe Spindle Sensor
Lathe Spindle Sensor
 
Using Timers in PIC18F Microcontrollers
Using Timers in PIC18F MicrocontrollersUsing Timers in PIC18F Microcontrollers
Using Timers in PIC18F Microcontrollers
 
Dsd lab Practical File
Dsd lab Practical FileDsd lab Practical File
Dsd lab Practical File
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Jp
Jp Jp
Jp
 
CET4811_FINAL_LAB
CET4811_FINAL_LABCET4811_FINAL_LAB
CET4811_FINAL_LAB
 
Lcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogLcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilog
 
Lab5
Lab5Lab5
Lab5
 
FPGA Tutorial - LCD Interface
FPGA Tutorial - LCD InterfaceFPGA Tutorial - LCD Interface
FPGA Tutorial - LCD Interface
 
AT89C52 Data sheet
AT89C52 Data sheetAT89C52 Data sheet
AT89C52 Data sheet
 
Direct analog
Direct analogDirect analog
Direct analog
 
Digital System Design Lab Report - VHDL ECE
Digital System Design Lab Report - VHDL ECEDigital System Design Lab Report - VHDL ECE
Digital System Design Lab Report - VHDL ECE
 
Solution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidiSolution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidi
 
32 bit ALU Chip Design using IBM 130nm process technology
32 bit ALU Chip Design using IBM 130nm process technology32 bit ALU Chip Design using IBM 130nm process technology
32 bit ALU Chip Design using IBM 130nm process technology
 

Destacado

Επιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμεναΕπιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμεναBasilis Anastasiou
 
Q2 2015 Washington, DC office sector report
Q2 2015 Washington, DC office sector reportQ2 2015 Washington, DC office sector report
Q2 2015 Washington, DC office sector reportHeidi Learner
 
Mudr library kannada presentation
Mudr library kannada presentationMudr library kannada presentation
Mudr library kannada presentationbadamikk
 
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOP
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOPREPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOP
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOPseemeen gul
 
Ma0038 &amp; banking operations
Ma0038 &amp; banking operationsMa0038 &amp; banking operations
Ma0038 &amp; banking operationsStudy Stuff
 
Explore the Indian Heritage in Chennai
Explore the Indian Heritage in ChennaiExplore the Indian Heritage in Chennai
Explore the Indian Heritage in ChennaiPushpitha Wijesinghe
 
University of the Istmus
University of the IstmusUniversity of the Istmus
University of the IstmusLilichung69
 
Smarter Content for Bigger Results
Smarter Content for Bigger ResultsSmarter Content for Bigger Results
Smarter Content for Bigger ResultsStephen Dupont, APR
 
Eurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisseEurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisseSociété Tripalio
 

Destacado (14)

Birthday
BirthdayBirthday
Birthday
 
Ebadullah- CV
Ebadullah- CVEbadullah- CV
Ebadullah- CV
 
Επιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμεναΕπιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμενα
 
Post Ideas
Post IdeasPost Ideas
Post Ideas
 
Q2 2015 Washington, DC office sector report
Q2 2015 Washington, DC office sector reportQ2 2015 Washington, DC office sector report
Q2 2015 Washington, DC office sector report
 
sip
sipsip
sip
 
Mudr library kannada presentation
Mudr library kannada presentationMudr library kannada presentation
Mudr library kannada presentation
 
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOP
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOPREPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOP
REPORT ON THREE DAYS CONSECUTIVE CAPACITY BUILDING TRAINING WORKSHOP
 
Ma0038 &amp; banking operations
Ma0038 &amp; banking operationsMa0038 &amp; banking operations
Ma0038 &amp; banking operations
 
CV2015_Abdulloh Azzam
CV2015_Abdulloh AzzamCV2015_Abdulloh Azzam
CV2015_Abdulloh Azzam
 
Explore the Indian Heritage in Chennai
Explore the Indian Heritage in ChennaiExplore the Indian Heritage in Chennai
Explore the Indian Heritage in Chennai
 
University of the Istmus
University of the IstmusUniversity of the Istmus
University of the Istmus
 
Smarter Content for Bigger Results
Smarter Content for Bigger ResultsSmarter Content for Bigger Results
Smarter Content for Bigger Results
 
Eurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisseEurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisse
 

Similar a CODING IN ARDUINO

Home automation system
Home automation system Home automation system
Home automation system Hira Shaukat
 
Arduinomotorcontrolusingservoultrasonic
ArduinomotorcontrolusingservoultrasonicArduinomotorcontrolusingservoultrasonic
ArduinomotorcontrolusingservoultrasonicNaveenBasireddy
 
coding and wiring dht11 and ultrasonic hcsr04 arduino
coding and wiring dht11 and ultrasonic hcsr04 arduino coding and wiring dht11 and ultrasonic hcsr04 arduino
coding and wiring dht11 and ultrasonic hcsr04 arduino Nanda Fauzi P
 
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9Irfan Qadoos
 
SENDER It is a helmet that contains a sensor for gases, vital s.pdf
SENDER  It is a helmet that contains a sensor for gases, vital s.pdfSENDER  It is a helmet that contains a sensor for gases, vital s.pdf
SENDER It is a helmet that contains a sensor for gases, vital s.pdfalertshoeshingkimand
 
Obstacle avoiding Robot
Obstacle avoiding RobotObstacle avoiding Robot
Obstacle avoiding RobotRasheed Khan
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPGFrankDin1
 
Vechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor pptVechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor pptsatish 486
 
Distance measurement using Ultrasonic sensor on Arduino Uno
Distance measurement using Ultrasonic sensor on Arduino UnoDistance measurement using Ultrasonic sensor on Arduino Uno
Distance measurement using Ultrasonic sensor on Arduino UnoAswin KP
 
Arduino and Robotics
Arduino and RoboticsArduino and Robotics
Arduino and RoboticsMebin P M
 
codings related to avr micro controller
codings related to avr micro controllercodings related to avr micro controller
codings related to avr micro controllerSyed Ghufran Hassan
 
Magnetic door lock using arduino
Magnetic door lock using arduinoMagnetic door lock using arduino
Magnetic door lock using arduinoSravanthi Sinha
 

Similar a CODING IN ARDUINO (20)

Home automation system
Home automation system Home automation system
Home automation system
 
Arduinomotorcontrolusingservoultrasonic
ArduinomotorcontrolusingservoultrasonicArduinomotorcontrolusingservoultrasonic
Arduinomotorcontrolusingservoultrasonic
 
Open bot
Open bot Open bot
Open bot
 
Arduino Programming
Arduino ProgrammingArduino Programming
Arduino Programming
 
coding and wiring dht11 and ultrasonic hcsr04 arduino
coding and wiring dht11 and ultrasonic hcsr04 arduino coding and wiring dht11 and ultrasonic hcsr04 arduino
coding and wiring dht11 and ultrasonic hcsr04 arduino
 
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
 
OpenBot-Code
OpenBot-CodeOpenBot-Code
OpenBot-Code
 
Arduino
ArduinoArduino
Arduino
 
Arduino
ArduinoArduino
Arduino
 
SENDER It is a helmet that contains a sensor for gases, vital s.pdf
SENDER  It is a helmet that contains a sensor for gases, vital s.pdfSENDER  It is a helmet that contains a sensor for gases, vital s.pdf
SENDER It is a helmet that contains a sensor for gases, vital s.pdf
 
Obstacle avoiding Robot
Obstacle avoiding RobotObstacle avoiding Robot
Obstacle avoiding Robot
 
Session3
Session3Session3
Session3
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPG
 
Vechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor pptVechicle accident prevention using eye bilnk sensor ppt
Vechicle accident prevention using eye bilnk sensor ppt
 
Distance measurement using Ultrasonic sensor on Arduino Uno
Distance measurement using Ultrasonic sensor on Arduino UnoDistance measurement using Ultrasonic sensor on Arduino Uno
Distance measurement using Ultrasonic sensor on Arduino Uno
 
Arduino and Robotics
Arduino and RoboticsArduino and Robotics
Arduino and Robotics
 
codings related to avr micro controller
codings related to avr micro controllercodings related to avr micro controller
codings related to avr micro controller
 
Metal detecting robot sketch
Metal detecting robot sketchMetal detecting robot sketch
Metal detecting robot sketch
 
Arduino radar system
Arduino radar systemArduino radar system
Arduino radar system
 
Magnetic door lock using arduino
Magnetic door lock using arduinoMagnetic door lock using arduino
Magnetic door lock using arduino
 

CODING IN ARDUINO

  • 1. CODING IN ARDUINO: The open-source Arduino Programming (IDE) makes it simple to compose code and transfer it to the board. It keeps running on Windows, Macintosh OS X, and Linux. Nature is composed in Java and in light of Handling and other open-source programming. For auto mode: void AutoMode() { if(ResetCheck == 0) { if(PIRValue == 1) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); MotorsStop(); while(1) { PIRSensor(); if ( radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data);
  • 2. if(data == 9){direc = 6;} } if(direc == 6) { ResetCheck = 1; direc = 0; radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); break; } if(PIRValue == 0){break;} } } if(PIRValue == 0) { //Serial.println("YES"); radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening();
  • 3. } } if(FrontSensor > 50 ){ MotorsForward(); } if(FrontSensor < 50) { MotorsStop(); delay(1000); if(((RightSensor > 30) && (LeftSensor > 30)) && (TurnCheck == 0)) { MotorsLeft(); delay(3500); MotorsStop(); delay(1000); //MotorsForward(); TurnCheck = 1; } if((RightSensor < 30) && (LeftSensor < 30)) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) );
  • 4. radio.startListening(); MotorsStop(); StopCheck = 1; } if(StopCheck == 0) { if((RightSensor < 30) && (TurnCheck == 0)) { MotorsLeft(); delay(3500); MotorsStop(); delay(1000); //MotorsForward(); TurnCheck = 1; } if((LeftSensor < 30) && (TurnCheck == 0)) { MotorsRight(); delay(3500); MotorsStop(); delay(1000); //MotorsForward();
  • 5. TurnCheck = 1; } } StopCheck = 0; TurnCheck = 0; } } For Manual Mode:- void ManualMode() { if(direc == 1){MotorsForward();} if(direc == 2){MotorsBackward();} if(direc == 3){MotorsLeft();} if(direc == 4){MotorsRight();} if(direc == 5){MotorsStop();} if(PIRValue == 1) { radio.stopListening(); unsigned long time = 1; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); MotorsStop();
  • 6. while(1) { PIRSensor(); if(PIRValue == 0){break;} } } if(PIRValue == 0) { //Serial.println("YES"); radio.stopListening(); unsigned long time = 0; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } } Human Detection Using PIR And Sonar:- #include <SPI.h> #include "nRF24L01.h" #include "RF24.h"
  • 7. RF24 radio(9,10); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; #define trigPin1 4 #define echoPin1 6 #define trigPin2 7 #define echoPin2 8 #define trigPin3 A4 #define echoPin3 A5 #define pirPin 2 #define motorR1 A0 #define motorR2 A1 #define motorL1 A3 #define motorL2 A2 #define PwmLeft 3 #define PwmRight 5 int calibrationTime = 30;
  • 8. long unsigned int lowIn; long unsigned int pause = 5000; boolean lockLow = true; boolean takeLowTime; int PIRValue = 0; long duration, distance, RightSensor,FrontSensor,LeftSensor; int TurnCheck = 0; int mode = 0; int direc = 0; int StopCheck = 0; int ResetCheck = 0; void setup() { Serial.begin(57600); radio.begin(); radio.setRetries(15,15); radio.openReadingPipe(1,pipes[1]); radio.startListening(); radio.printDetails(); radio.openWritingPipe(pipes[0]); radio.openReadingPipe(1,pipes[1]);
  • 9. pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); pinMode(trigPin3, OUTPUT); pinMode(echoPin3, INPUT); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); pinMode(motorR1, OUTPUT); pinMode(motorR2, OUTPUT); pinMode(motorL1, OUTPUT); pinMode(motorL2, OUTPUT); pinMode(PwmLeft, OUTPUT); pinMode(PwmRight, OUTPUT); analogWrite(PwmLeft, 0); analogWrite(PwmRight, 0); delay(1000); } void loop() {
  • 10. SonarSensor(trigPin1, echoPin1); LeftSensor = distance; SonarSensor(trigPin2, echoPin2); FrontSensor = distance; SonarSensor(trigPin3, echoPin3); RightSensor = distance; PIRSensor(); if(PIRValue == 0){ResetCheck = 0;} //radio.startListening(); if ( radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data); if(data == 2){mode = 1;} if(data == 3){mode = 2;} if(data == 4){direc = 1;} if(data == 5){direc = 2;} if(data == 6){direc = 3;} if(data == 7){direc = 4;}
  • 11. if(data == 8){direc = 5;} // radio.stopListening(); } if(mode == 1) { AutoMode(); } if(mode == 2) { ManualMode(); } } PIR Sensor:- void PIRSensor() { if(digitalRead(pirPin) == HIGH) { if(lockLow) { PIRValue = 1; lockLow = false; Serial.println("Motion detected."); delay(50);
  • 12. } takeLowTime = true; } if(digitalRead(pirPin) == LOW) { if(takeLowTime){lowIn = millis();takeLowTime = false;} if(!lockLow && millis() - lowIn > pause) { PIRValue = 0; lockLow = true; Serial.println("Motion ended."); delay(50); } } } Sonar Sensor:- void SonarSensor(int trigPin,int echoPin) { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  • 13. digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; delay(100); } Motors Routine:- void MotorsBackward() { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } void MotorsForward() { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); }
  • 14. void MotorsStop() { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, HIGH); } void MotorsRight() { digitalWrite(motorR1, HIGH); digitalWrite(motorR2, HIGH); digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); } void MotorsLeft() { digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); digitalWrite(motorL1, HIGH); digitalWrite(motorL2, HIGH); }
  • 15. Human Detection Using Sonar and PIR :- #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int buzzer = 8; RF24 radio(9,10); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; typedef enum { role_ping_out = 1, role_pong_back } role_e; const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"}; role_e role = role_pong_back; void setup(void) { Serial.begin(9600); pinMode(buzzer,OUTPUT); digitalWrite(buzzer,HIGH); radio.begin(); radio.setRetries(15,15); radio.openReadingPipe(1,pipes[1]); radio.startListening(); radio.printDetails(); radio.openWritingPipe(pipes[1]);
  • 16. radio.openReadingPipe(1,pipes[0]); } void loop(void) { if ( radio.available() ) { unsigned long data = 0; radio.read( &data, sizeof(unsigned long) ); Serial.println(data); if(data == 1) {digitalWrite(buzzer,LOW); } if(data == 0) {digitalWrite(buzzer,HIGH); } } if(Serial.available()) { char sdata = Serial.read(); if(sdata == 'a')
  • 17. { radio.stopListening(); unsigned long time = 2; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'm') { radio.stopListening(); unsigned long time = 3; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'f') { radio.stopListening(); unsigned long time = 4; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'b')
  • 18. { radio.stopListening(); unsigned long time = 5; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'l') { radio.stopListening(); unsigned long time = 6; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'r') { radio.stopListening(); unsigned long time = 7; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 's')
  • 19. { radio.stopListening(); unsigned long time = 8; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } if(sdata == 'R') { radio.stopListening(); unsigned long time = 9; radio.write( &time, sizeof(unsigned long) ); radio.startListening(); } } }