SlideShare a Scribd company logo
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();
}
}
}
Ad

More Related Content

What's hot (20)

Pipeline stalling in vhdl
Pipeline stalling in vhdlPipeline stalling in vhdl
Pipeline stalling in vhdl
Sai Malleswar
 
Class9
Class9Class9
Class9
Sai Santosh Praveen
 
FINISHED_CODE
FINISHED_CODEFINISHED_CODE
FINISHED_CODE
Jeremy Forczyk
 
Uart
UartUart
Uart
cs1090211
 
REPORT
REPORTREPORT
REPORT
Taimoor Tahir
 
W10: Interrupts
W10: InterruptsW10: Interrupts
W10: Interrupts
Daniel Roggen
 
Lathe Spindle Sensor
Lathe Spindle SensorLathe Spindle Sensor
Lathe Spindle Sensor
JoeCritt
 
Using Timers in PIC18F Microcontrollers
Using Timers in PIC18F MicrocontrollersUsing Timers in PIC18F Microcontrollers
Using Timers in PIC18F Microcontrollers
Corrado Santoro
 
Dsd lab Practical File
Dsd lab Practical FileDsd lab Practical File
Dsd lab Practical File
Soumya Behera
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
jokersclown57
 
Jp
Jp Jp
Jp
vijaydeepakg
 
CET4811_FINAL_LAB
CET4811_FINAL_LABCET4811_FINAL_LAB
CET4811_FINAL_LAB
Clara Irizarry
 
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
sumedh23
 
Lab5
Lab5Lab5
Lab5
Nathan Wendt
 
FPGA Tutorial - LCD Interface
FPGA Tutorial - LCD InterfaceFPGA Tutorial - LCD Interface
FPGA Tutorial - LCD Interface
Politeknik Elektronika Negeri Surabaya
 
AT89C52 Data sheet
AT89C52 Data sheetAT89C52 Data sheet
AT89C52 Data sheet
Microtech Solutions
 
Direct analog
Direct analogDirect analog
Direct analog
srikanthsailu
 
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
Ramesh Naik Bhukya
 
Solution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidiSolution manual 8051 microcontroller by mazidi
Solution manual 8051 microcontroller by mazidi
Muhammad Abdullah
 
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
Bharat Biyani
 

Viewers also liked (14)

Birthday
BirthdayBirthday
Birthday
LyricalRose
 
Ebadullah- CV
Ebadullah- CVEbadullah- CV
Ebadullah- CV
daywalker064
 
Επιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμεναΕπιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμενα
Basilis Anastasiou
 
Post Ideas
Post IdeasPost Ideas
Post Ideas
Kim S. Hawkins
 
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
Heidi Learner
 
sip
sipsip
sip
Sandeep Satija
 
Mudr library kannada presentation
Mudr library kannada presentationMudr library kannada presentation
Mudr library kannada presentation
badamikk
 
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
seemeen gul
 
Ma0038 &amp; banking operations
Ma0038 &amp; banking operationsMa0038 &amp; banking operations
Ma0038 &amp; banking operations
Study Stuff
 
CV2015_Abdulloh Azzam
CV2015_Abdulloh AzzamCV2015_Abdulloh Azzam
CV2015_Abdulloh Azzam
Abdullah Azzam
 
Explore the Indian Heritage in Chennai
Explore the Indian Heritage in ChennaiExplore the Indian Heritage in Chennai
Explore the Indian Heritage in Chennai
Pushpitha Wijesinghe
 
University of the Istmus
University of the IstmusUniversity of the Istmus
University of the Istmus
Lilichung69
 
Smarter Content for Bigger Results
Smarter Content for Bigger ResultsSmarter Content for Bigger Results
Smarter Content for Bigger Results
Stephen Dupont, APR
 
Eurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisseEurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisse
Société Tripalio
 
Επιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμεναΕπιχειρηματολογικά κείμενα
Επιχειρηματολογικά κείμενα
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 report
Heidi Learner
 
Mudr library kannada presentation
Mudr library kannada presentationMudr library kannada presentation
Mudr library kannada presentation
badamikk
 
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
seemeen gul
 
Ma0038 &amp; banking operations
Ma0038 &amp; banking operationsMa0038 &amp; banking operations
Ma0038 &amp; banking operations
Study Stuff
 
Explore the Indian Heritage in Chennai
Explore the Indian Heritage in ChennaiExplore the Indian Heritage in Chennai
Explore the Indian Heritage in Chennai
Pushpitha Wijesinghe
 
University of the Istmus
University of the IstmusUniversity of the Istmus
University of the Istmus
Lilichung69
 
Smarter Content for Bigger Results
Smarter Content for Bigger ResultsSmarter Content for Bigger Results
Smarter Content for Bigger Results
Stephen Dupont, APR
 
Eurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisseEurostat secteur de la construction-baisse
Eurostat secteur de la construction-baisse
Société Tripalio
 
Ad

Similar to CODING IN ARDUINO (20)

Computer networks unit III CHAPTER of frameworks
Computer networks unit III CHAPTER of frameworksComputer networks unit III CHAPTER of frameworks
Computer networks unit III CHAPTER of frameworks
manforlover7
 
Home automation system
Home automation system Home automation system
Home automation system
Hira Shaukat
 
Arduinomotorcontrolusingservoultrasonic
ArduinomotorcontrolusingservoultrasonicArduinomotorcontrolusingservoultrasonic
Arduinomotorcontrolusingservoultrasonic
NaveenBasireddy
 
PPT Missile Radar System introduction.pptx
PPT Missile Radar System introduction.pptxPPT Missile Radar System introduction.pptx
PPT Missile Radar System introduction.pptx
dudddy736
 
Open bot
Open bot Open bot
Open bot
Anshuman Dhar
 
Arduino Programming
Arduino ProgrammingArduino Programming
Arduino Programming
Dr Karthikeyan Periasamy
 
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◄ 9
Irfan Qadoos
 
OpenBot-Code
OpenBot-CodeOpenBot-Code
OpenBot-Code
Anshuman Dhar
 
Arduino
ArduinoArduino
Arduino
Things Lab
 
Arduino
ArduinoArduino
Arduino
Jonadri Bundo
 
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
alertshoeshingkimand
 
Obstacle avoiding Robot
Obstacle avoiding RobotObstacle avoiding Robot
Obstacle avoiding Robot
Rasheed Khan
 
Arduino uno basic Experiments for beginner
Arduino uno basic Experiments for beginnerArduino uno basic Experiments for beginner
Arduino uno basic Experiments for beginner
YogeshJatav7
 
Session3
Session3Session3
Session3
Krutarth Patel
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPG
FrankDin1
 
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
satish 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 Uno
Aswin KP
 
Arduino and Robotics
Arduino and RoboticsArduino and Robotics
Arduino and Robotics
Mebin P M
 
codings related to avr micro controller
codings related to avr micro controllercodings related to avr micro controller
codings related to avr micro controller
Syed Ghufran Hassan
 
Computer networks unit III CHAPTER of frameworks
Computer networks unit III CHAPTER of frameworksComputer networks unit III CHAPTER of frameworks
Computer networks unit III CHAPTER of frameworks
manforlover7
 
Home automation system
Home automation system Home automation system
Home automation system
Hira Shaukat
 
Arduinomotorcontrolusingservoultrasonic
ArduinomotorcontrolusingservoultrasonicArduinomotorcontrolusingservoultrasonic
Arduinomotorcontrolusingservoultrasonic
NaveenBasireddy
 
PPT Missile Radar System introduction.pptx
PPT Missile Radar System introduction.pptxPPT Missile Radar System introduction.pptx
PPT Missile Radar System introduction.pptx
dudddy736
 
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◄ 9
Irfan 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.pdf
alertshoeshingkimand
 
Obstacle avoiding Robot
Obstacle avoiding RobotObstacle avoiding Robot
Obstacle avoiding Robot
Rasheed Khan
 
Arduino uno basic Experiments for beginner
Arduino uno basic Experiments for beginnerArduino uno basic Experiments for beginner
Arduino uno basic Experiments for beginner
YogeshJatav7
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPG
FrankDin1
 
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
satish 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 Uno
Aswin KP
 
Arduino and Robotics
Arduino and RoboticsArduino and Robotics
Arduino and Robotics
Mebin P M
 
codings related to avr micro controller
codings related to avr micro controllercodings related to avr micro controller
codings related to avr micro controller
Syed Ghufran Hassan
 
Ad

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(); } } }
  翻译: