zamanlayicilisoket

Zamanlayıcılı Elektirik soketi kontolü

Arkadaşlar aklınıza bir proje geldiğinde size tavsiyem hemen onu bir yere not almanız. Biliyorsunuz ki güzel icatlar ihtiyaçlardan doğar ve hayatı kolaylaştırır. Bu proje tamamen benim bir şarj aletimin bataryanın doluluk oranını algılamadığından çıktı.

Nasıl yapabiliriz diye düşünürken daha önce yaptığım mutfak zamanlama sistemi aklıma geldi . potansiyometre ekleyerek lcd ye kaç saat sonra elektirik soketlerini kapatsın diye ayarlıyabiliriz. Tabiki bu sistemle hem sarj aletinin yada elekitikle çalışan herhangi cihazın gereksiz elektirik harcamasını engelleyebilirsiniz.Normalde piyasada bu sistemler mevcut ama tamamen manuel çalışıyorlar dijital olanları ise çok pahalı . tabiki el yapımı gibisi olmadığı kesin.

Daha önce dediğim gibi proje tamamen daha önce yaptığımız mutfak alarmı projesine bir adet röle bağlayarak yapılıyor. tabiiki projenin geliştirilmesi sizin elinizde .

Projemizde kullandığımız devre şemasını iki adımda  vereceğim . İlkinde mutfak alarmı projesini gerçekleştirmeniz gerekmekte diğer adımda ise röle devresini gerçekleştirerek  mutfak alarmı projemize bağlanması gerekiyor.Yukardaki proje Gökhan bey tarafından çekilmiştir.

zaman ayarlama

Röle devresi ise aşağıdaki gibidir.

zamanlayicilisoketrole

Bu şekilde mutfak alarmından belirlenen zaman dolduğunda 9 pine bağlanan devre sayesinde elektiriği kesebilir ve projemizi gerçekleştirebiliriz.

Projemizin programı

// Lcd bağlantısı düzgün bir şekilde gerçekleştirilirse kütüphane yüklendikten sonra 
// Projemizi rahat bir şekilde gerçekleştirebilirsiniz www.arduinom.org
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2 );
#include <EEPROM.h>
int addr = 1;
#include <SimpleTimer.h>
int buton = 8;<br>int role =9 ;
int butondurumu = 0;        
SimpleTimer timer;
void(* resetFunc) (void) = 0;
void OnceOnlyTask() {
for (int z= 0 ;  z < 10000 ; z = z+1 ){
         for (int i = 0; i < 3000; i = i + 1){
      tone(10, i,20);
      
   }
   tone(10, 3000,200);
    for (int j = 30000; j > 0; j = j - 1){
 
      
   }
 
  Serial.println("burası bir defaya mahsus çalışması için"); 
}
}
 
void DigitalClockDisplay() {
  lcd.clear();
  lcd.setCursor(4,0);
  int h,m,s;
  s = millis() / 1000;
  m = s / 60;
  h = s / 3600;
  s = s - m * 60;
  m = m - h * 60;
  Serial.print(h);
  lcd.print(h);
  printDigits(m);
  printDigits(s);
  Serial.println();
}
 
void printDigits(int digits) {
  Serial.print(":");
  lcd.print(":");
 
  if(digits < 10){
    Serial.print('0');
    lcd.print('0');}
  lcd.print(digits);
  Serial.print(digits);
}
 
void setup() {
  Serial.begin(9600);
lcd.begin(16, 2);
  pinMode(buton, INPUT);   <br>pinMode(role,OUTPUT); 
 
  // this is where the "polling" occurs
  int oku = EEPROM.read(addr);
  unsigned long  alarm =oku*60;
  alarm = alarm * 1000;
  timer.setTimeout(alarm, OnceOnlyTask);
  timer.setInterval(1000, DigitalClockDisplay);
lcd.clear();
lcd.print(oku);
lcd.print ("Dk.SONRA PRIZ");
lcd.setCursor(0,1);
lcd.print ("  PASIF OLACAK");
 
delay(5000);
}
 
void loop() {
 
  timer.run();
   
  butondurumu = digitalRead(buton);
 
int a= analogRead(A0);
 
 int zaman = map(a ,0,1023,1,180);
 
lcd.setCursor(0,1);
lcd.print(zaman);
lcd.print (" DK.PRIZ KAPALI");
Serial.println (zaman,DEC);
  if (butondurumu == HIGH) {
   
  EEPROM.write(addr,zaman );
  for (int g=0; g>5;g++){
  tone(10,2000,100);
  delay(200);
  tone(10,2000,100);
  digitalWrite(role,HIGH);<br>}
 resetFunc();
 }
 
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.