COMBINATION OF TEMPERATURE ,PIR AND ULTRASONIC SENSORS
int sensorPin = A0;
//int sensor = 2; // the pin that the sensor is atteched to
int val = 0;
#define echoPin 8 // attach pin D2 Arduino to pin Echo of HC-SR04
#define trigPin 3 //attach pin D3 Arduino to pin Trig of HC-SR04
// defines variables
long duration; // variable for the duration of sound wave travel
int distance;
void setup(){
pinMode(sensorPin,INPUT);//temp
pinMode (2,INPUT);//pir
pinMode(trigPin, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(echoPin, INPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
Serial.begin(9600);
}
void loop() {
int adcData = analogRead(sensorPin);
float voltage = (adcData)*(5.0/1024)*1000;
float temperatureC = (voltage - 500)/10 ; //converting from 10 mv per degree with 500 mV offset
//to degrees ((voltage - 500mV)/10)
Serial.print("adcData=");
Serial.println(adcData);
Serial.print(temperatureC);
Serial.println(" degrees C");
// now convert to Fahrenheit
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.println(" degrees F");
val = digitalRead(2); // read sensor value
Serial.print("motion =");
Serial.println(val);
// Clears the trigPin condition
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = (duration * 0.0343) / 2; // Speed of sound wave divided by 2 (go and back)
// Displays the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if(val==1){
if( temperatureC>=10&& temperatureC<=30){
if(distance>=10&&distance<=100){
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
}
}
else if( temperatureC>30&& temperatureC<=60){
if(distance>100&&distance<=200){
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
}
}
else if( temperatureC>60&& temperatureC<=80){
if(distance>200&&distance<=250){
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
}
}
}delay(500);}
Comments
Post a Comment