int led13 = 13; //LED
int led12 = 9; // alarm
int led11 = 8; //vibration motor
const int sensorPin = A0;
const float baselineTemp = 20.0;
int counter;
#include <NewPing.h>
#include <LiquidCrystal.h>
#define TRIGGER_PIN 7 //ultrasound sensor pins
#define ECHO_PIN 6
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int DistanceCm;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(led13, OUTPUT);
pinMode(led12, OUTPUT);
pinMode(led11, OUTPUT);
lcd.begin(16, 2);
}
void loop()
{
delay(30);
DistanceCm = sonar.ping_cm();
int sensorVal = analogRead(sensorPin);
float voltage = sensorVal* 5.0;
voltage/=1024.0;
float temperature = (voltage - 0.5) * 100;
if((DistanceCm>=20)&&(DistanceCm<=100))
{ if(temperature<=27)
{
counter=0;
digitalWrite(led13, HIGH);
lcd.print("Temperature ");
lcd.print(temperature);
lcd.setCursor(0,1);
lcd.print("Distance ");
lcd.print(DistanceCm);
lcd.setCursor(13,1);
lcd.print("C ");
lcd.print(counter);
delay(1000);
lcd.clear();
}
else
{
alarm();
lcd.print("Temperature ");
lcd.print(temperature);
lcd.setCursor(0,1);
lcd.print("Distance ");
lcd.print(DistanceCm);
lcd.setCursor(13,1);
lcd.print("C ");
lcd.print(counter);
delay(1000);
lcd.clear();
}
}
else if((DistanceCm<20)||(DistanceCm>100))
{ if((DistanceCm>2)&&(DistanceCm<10))
{
counter=0;
digitalWrite(led13, HIGH);
lcd.print("Temperature ");
lcd.print(temperature);
lcd.setCursor(0,1);
lcd.print("Distance ");
lcd.print(DistanceCm);
lcd.setCursor(13,1);
lcd.print("C ");
lcd.print(counter);
delay(1000);
lcd.clear();
delay(300000);
}
else
{
if(temperature>27)
{
alarm();
lcd.print("Temperature ");
lcd.print(temperature);
lcd.setCursor(0,1);
lcd.print("Distance ");
lcd.print(DistanceCm);
lcd.setCursor(13,1);
lcd.print("C ");
lcd.print(counter);
delay(1000);
lcd.clear();
}
else
{
counter=0;
digitalWrite(led13, HIGH);// turn the LED on (HIGH is the voltage level)
lcd.print("Temperature ");
lcd.print(temperature);
lcd.setCursor(0,1);
lcd.print("Distance ");
lcd.print(DistanceCm);
lcd.setCursor(13,1);
lcd.print("C ");
lcd.print(counter);
delay(1000);
lcd.clear();
}
}
}
}
void alarm()
{
counter=counter+1;
digitalWrite(led13, LOW);
delay(1000);
if(counter==4)
{
digitalWrite(led12, HIGH);// turn the LED on (HIGH is the voltage level)
digitalWrite(led11, HIGH);// turn the LED on (HIGH is the voltage level)
//delay(10);
counter=1;
}
else
{
digitalWrite(led12, LOW);// turn the LED on (HIGH is the voltage level)
digitalWrite(led11, LOW);// turn the LED on (HIGH is the voltage level)
}
}
Monday, 8 June 2015
Arduino soldering iron temperature monitor and alarm
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment