Attiny13a İle Açma Kapama Butonu + Buzzer (230V Anahtarlama)

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
11,209
Her türlü devrede kullanılabilir Attiny13a ile açma kapama butonu.
Elimde 3 tane attiny13a var. Yapısı itibarıyla içine pek birşey sığmadığından kullanım alanı dardı.
Bende böyle bir anahtarlama devresinde kullanmaya karar verdim.
Şemada veya kodda bir hata görürseniz lütfen yazın düzelteyim.



MOC_SE.png


MOC_PCB.png


MOC_3D_ÖN.png


MOC_3D_ARKA.png




C:
#define faz 4
#define buzzer 1
#define led 2

const int buttonPin = 3;
int buttonState;            
int lastButtonState = LOW;

unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;

int on_off =1;
unsigned long simdikiZaman, eskiZaman = 0;

void setup() {
  pinMode(faz, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(led ,OUTPUT);
  pinMode(buttonPin, INPUT);
 
  digitalWrite(faz, LOW);
  digitalWrite(led, LOW);
  digitalWrite(buzzer, LOW);
}

void loop() {
  /////// BUTON DEBOUNCE KODLARI /////////////////
  int reading = digitalRead(buttonPin);
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == HIGH) {
        if (on_off == 0) {
          digitalWrite(buzzer, HIGH);
          delay(100);
          digitalWrite(buzzer, LOW);
          delay(100);
          digitalWrite(buzzer, HIGH);
          delay(100);
          digitalWrite(buzzer, LOW);
          delay(100);
          digitalWrite(buzzer, HIGH);
          delay(1500);
          digitalWrite(buzzer, LOW);
          digitalWrite(led, HIGH);
          digitalWrite(faz, HIGH);
          on_off = 1;
        } else if (on_off == 1) {
          digitalWrite(buzzer, HIGH);
          delay(2000);
          digitalWrite(buzzer, LOW);
          digitalWrite(led, LOW);
          digitalWrite(faz, LOW);
          on_off = 0;
        }
      }
    }
  }
  ///////////////////////////////////////////
}
 
Son düzenleme:
aslında biraz amatörce oluyor yazacağım yöntem ama maddiyat olarak mantıklı.

Bu devre yerine buton şeklinde olan on-off switchlerden alınıp yapılabilir maliyette 10da1i kadar olur
 
İF.png

bu kısmı neden bu şekilde kullanmıyoruz 1 değişkenden feragat ederiz.
Hatta buton pin atamasını #define ile yaparsak yine biraz daha hafızada yer açmış oluruz
 
pull-up direnci de 330 çok küçük değil mi onu 1k yapsak
 
20. satırda if'den sonra bir noktalı virgül konmuş, onun orada olmaması lazım. Bu şekilde program derlese bile hatalı çalışır.
 
aslında biraz amatörce oluyor yazacağım yöntem ama maddiyat olarak mantıklı.

Bu devre yerine buton şeklinde olan on-off switchlerden alınıp yapılabilir maliyette 10da1i kadar olur
O butonlardan çok kullandım. Hayalimde hep switch ile on-of yapmak vardı.
Bu aslında şart yada gereklilik değil. Amaç değişik projeler yaparak kem kendmi geliştirmek hem de başkalarına bir nebze örnek olabilmek.
Yoksa her yaptığım cihaza takar bir anahtar geçerim.

Maddiyata imkanlarım el verdiği sürece hiç önem vermiyorum. Öğrenmek için kendime yatırım yapıyorum.
İmkanlarım da çoğu zaman el vermiyor ama sabırla bekleyip istediğimi alıyorum.
 
16131 eklentisine bak
bu kısmı neden bu şekilde kullanmıyoruz 1 değişkenden feragat ederiz.
Hatta buton pin atamasını #define ile yaparsak yine biraz daha hafızada yer açmış oluruz
Amatörce yazdım. Çip başka bir şeye yaramayacağı için üstüne düşmedim şimdilik.

20. satırda if'den sonra bir noktalı virgül konmuş, onun orada olmaması lazım. Bu şekilde program derlese bile hatalı çalışır.

En iyisi önce derleyeyim de sonra atayım :D

pull-up direnci de 330 çok küçük değil mi onu 1k yapsak
Olabilir. Netten bir buton örneğine baktım 330 kullanmıştı. Bende öyle yaptım.
 
Elimde triyak yok. Hesaplı olması bakımından BTA12-800 yerine başka bir şey olabilir mi? Ona göre alayım.
 
Amatörce yazdım. Çip başka bir şeye yaramayacağı için üstüne düşmedim şimdilik.




En iyisi önce derleyeyim de sonra atayım :D


Olabilir. Netten bir buton örneğine baktım 330 kullanmıştı. Bende öyle yaptım.
o zaman bunu bu haliyle bırakmayalım modlar ekleyelim.
mesela 5 saniye açma 5 saniye kapama yapacak bir şekilde bir modu olsun butona uzun basınca.
Buna neden ihtiyaç duyalım derseniz bir devrenin ilk elektrik alma anını ve elektriği kesilme anını görmek istiyor olabiliriz(mesela bir batarya ile adaptör arasındaki geçişi görmek istiyoruz) ve bunu yaparken ölçü aletine takacak krokodil kablo vs bağlamak zorunda kalıyoruz bir elimizle enerjiyi kesip açmak için. Ama bunu otomatik şekilde yaptırısak dikkatimiz dağılmadan ölçü aletini kullanabiliriz
 
Elimde triyak yok. Hesaplı olması bakımından BTA12-800 yerine başka bir şey olabilir mi? Ona göre alayım.

Voltaj dayanımı ve akım kapasitesi uygun olan her TRIAC kullanılabilir.
 
Elimde triyak yok. Hesaplı olması bakımından BTA12-800 yerine başka bir şey olabilir mi? Ona göre alayım.
1 boy büyüğünü al istersen bta16 olsun. Ama ben yapacak olsam bunu moc3021+bta40(büyük metal soğutuculu kılıfını alırdım) biraz para biriktirip
 
o zaman bunu bu haliyle bırakmayalım modlar ekleyelim.
mesela 5 saniye açma 5 saniye kapama yapacak bir şekilde bir modu olsun butona uzun basınca.
Buna neden ihtiyaç duyalım derseniz bir devrenin ilk elektrik alma anını ve elektriği kesilme anını görmek istiyor olabiliriz(mesela bir batarya ile adaptör arasındaki geçişi görmek istiyoruz) ve bunu yaparken ölçü aletine takacak krokodil kablo vs bağlamak zorunda kalıyoruz bir elimizle enerjiyi kesip açmak için. Ama bunu otomatik şekilde yaptırısak dikkatimiz dağılmadan ölçü aletini kullanabiliriz
Olayı tam anlamadım ama başka bir ufuk açtın bana.
Çıkıştaki akımı ölçtüğüm opampdan attiny'e bir hat çekeceğim.
Bu akımı attiny ile sürekli okuyacağım. Ve bir timer oluşturup diyeceğim ki eğer cihazdan 5dk boyunca hiç akım çekmemişsem cihazı kapat.
Akım çektiğim her anda timer'ı sıfırlayacağım.
Bu fikir hoşuma gitti :)
 
Olayı tam anlamadım ama başka bir ufuk açtın bana.
Çıkıştaki akımı ölçtüğüm opampdan attiny'e bir hat çekeceğim.
Bu akımı attiny ile sürekli okuyacağım. Ve bir timer oluşturup diyeceğim ki eğer cihazdan 5dk boyunca hiç akım çekmemişsem cihazı kapat.
Akım çektiğim her anda timer'ı sıfırlayacağım.
Bu fikir hoşuma gitti :)
bu şuan harika bir fikir ama kendine eziyet üretiyorsun 5 dakika bir videoya daldın içeriye gittin vs. geldin güç kaynağı kapanmış tekrar açacaksın
 
bu şuan harika bir fikir ama kendine eziyet üretiyorsun 5 dakika bir videoya daldın içeriye gittin vs. geldin güç kaynağı kapanmış tekrar açacaksın
Yok ya neden eziyet olsun. Cihazın zaten işi varsa akım çektiği için kapanmayacak. Ama ben unutup içeriye gittiysem 5dk sonra kapayacak kendini.
Tekrar açma olayı 1 tık zaten. Hiç eziyet olmaz.
 
Yok ya neden eziyet olsun. Cihazın zaten işi varsa akım çektiği için kapanmayacak. Ama ben unutup içeriye gittiysem 5dk sonra kapayacak kendini.
Tekrar açma olayı 1 tık zaten. Hiç eziyet olmaz.
bu gidişle senin güç kaynağı özellik eklene eklene 2 yıla bitecek ama güzel oluyor
 
Butonda debounce devresi yok, debounce'u yazılımda mı yapmayı düşünüyorsun Gökhan?
 
Butonda debounce devresi yok, debounce'u yazılımda mı yapmayı düşünüyorsun Gökhan?
Unuttum abi :)
Yataktan çıkmayı başarabilirsem yapıcam bişeyler.
Normalde senin gösterdiğin gibi yapacağım ama yazılımda nasıl olduğunu da merak ediyorum. Var mı bir örnek?
 
Aşağıdaki konuda örnek bir program koymuştum. Ben yazılımla yapmayı tercih ediyorum çünkü deterministik oluyor ve parametreleri ayarlayarak en düşük tepki süresi elde edebiliyorsun

 

Çevrimiçi personel

Forum istatistikleri

Konular
5,788
Mesajlar
99,008
Üyeler
2,464
Son üye
s4met

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top