Membuat Kipas Otomatis berdasarkan suhu dengan sensor LM35 dan Mikrokontroller

Kipas angin biasa pada umunya tidaklah memiliki pengaturan suhu, seperti layaknya Air Conditioner. Pada umumnya hanya terdapat speedcontrol, padahal penguunaan kipas angin pada keseharian seperti di ruangan tempat tidur sangat dibutuhkan otomasi berdasarkan suhu, karna mengapa? karena ketika sore dan larut malam akan berbeda suhunya dan tidak baik apabila terpapar kipas terus menerus dengan suhu yang semakin rendah, olehkarenannya berikut adalah solusi kecil untuk mengatasi masalahh tersebut, hanyasaja mengganti Relay untuk sebagai saklar pengganti di kipas Anda maka kipas dapat bekerja berdasarkan suhu yang tertera dan dapat diatur menlalui 3 push button Menu, UP, DOWN. Menu untuk memilih set suhu ON maupun OFF, UP untuk menambah suhu, Down untuk mengurangi suhu kemudian displaynya dapat dilihat di LCD.

Note : Intel Gallileo dapat diganti dengan mikrokontroller seperti Arduino Uno, Genuino 101, Arduino Mega, dll


Listing Program ::

#include <LiquidCrystal.h>
LiquidCrystal lcd(1,2,4,5,6,7);
int p=13;
int u=12;
int d=11;
const int relay=8;
int a,b,c,e;
float suhuOn=30;
float suhuOff=29;
float vin =0;
float temp=0;
int pilih=0, up=0, down=0;
void setup() {
  lcd.begin(16,2);
  pinMode(relay, OUTPUT);
  pinMode(pilih, INPUT);
  pinMode(up, INPUT);
  pinMode(down, INPUT);
}
void loop() {
    up=digitalRead(u);
    down=digitalRead(d);
    pilih=digitalRead(p);
    if(pilih==HIGH && a==0){
      //suhu ON
      a=1;
      delay(10);   
      }
   
     else if(pilih==HIGH && a==1){
      //suhu OFF
      a=0;
      delay(10);
      }

      if(a==0){
        if(up==HIGH){
          suhuOn++;
          }
       
         else if(down==HIGH){
          suhuOn--;
          }
          lcd.setCursor(0,1);
          lcd.print("set Suhu On : ");
          lcd.print(suhuOn);
        }

       else if(a==1){
        if(up==HIGH){
          suhuOff++;
          }
       
         else if(down==HIGH){
          suhuOff--;
          }
          lcd.setCursor(0,1);
          lcd.print("set Suhu Off :");
          lcd.print(suhuOff);
        }
vin=analogRead(A0);
temp=(500*vin)/1023;
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(temp);
  if(temp>=suhuOn){
    lcd.setCursor(12,0);
    lcd.print(" ON ");
    digitalWrite(relay,HIGH);
    delay(400); 
    }
  else if(temp<=suhuOff){
    lcd.setCursor(12,0);
    lcd.print(" OFF");
    digitalWrite(relay,LOW);
    delay(400);
    }
}

0 komentar:

Posting Komentar