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

Normalde bu pin reset pini olarakda çalıştığından biz 1-0 yapınca sapıtıyor

Sapıtmıyor, sadece sürme kapasitesi zayıf. LED yi kontrol edebiliyor olması lazım, tek olumsuzluk LED'ye fazla akım veremez, parlaklık az olur.
 
Sapıtmıyor, sadece sürme kapasitesi zayıf. LED yi kontrol edebiliyor olması lazım, tek olumsuzluk LED'ye fazla akım veremez, parlaklık az olur.
Elimde attiny13 yok proteusu tamamen kaldırdım o yüzden şuan deney yapamıyorum.

Datasheet vs.bakarak fikir yürütmeye çalışıyorum.

Çıkış akımı yetmiyorsa o pinde voltaj düşer değil mi?
 
Çıkış akımı yetmiyorsa o pinde voltaj düşer değil mi?

Pinden önemli bir akım çekmeye çalışırsan voltaj düşer. O yüzden transistör bağla diyorum. Böylece çok az akım çekersin ve tam lojik 0 ve 1 değişimlerini alırsın.
 
Pinden önemli bir akım çekmeye çalışırsan voltaj düşer. O yüzden transistör bağla diyorum. Böylece çok az akım çekersin ve tam lojik 0 ve 1 değişimlerini alırsın.
sanırım Gökhan abi yeni bir pcb basmalı veya kartın altında smd transistör operasyonu yapmalı
 
Son düzenleme:
IMG_20200125_144526.jpg

Şöyle bir müdahale @Gokrtl abi
Bu görsel Timur abiye tanıdık gelecektir
 
Bread board üzerinde denemelere devam ediyorum.
Bir numaralı pini boşa çıkarınca ve diğer tüm bacaklara led bağlayınca yüklenen kod doğru çalışıyor ve tüm bacaklar aç kapa yapıyor.
Sonrasında devre için hazırladığımız kodları yükledim. (Son yüklediğim kod aşağıda)
Multimetre ile yaptığım ölçümde 2 nolu bacak butona basılmadığında HIGH oluyor.
Ben butona bastığımda işlem yapabilmesi için butonState değişkenini LOW olarak değiştirdim.
Çıkışı temsil için LED bağladım ve buzzer'ı temsil içinde ayrı bir led bağladım.
Bu durumda butona basınca hiç tepki alamıyorum Attiny den. Yine yandı beyin.

C++:
#define faz 4
#define buzzer 1
#define led 5

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

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

int on_off =0;
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 == LOW) {
        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;
        }
      }
    }
  }
  ///////////////////////////////////////////
}
 
Debounce kodlarını kaldırıp döngü sonuna 200ms ekleyerek bredboard üzerinde sorunsuz çalıştırdım.
Düğmeye her bastığımda tam istediğim gibi aç kapa yapıyor.

Sonra microişlemciyi, yaptığım devreye taktım.
Buton normal çalışıyor,
Buton ledi normal çalışıyor.
Ama buzzer sürekli ötüyor ve çıkışta da sürekli 235VAC aktif.

Butonu aç kapa yaparak buzzera ve moc'a giden bacakları ölçüyorum normal aç kapa yapıyor.
Ama ne oluyorsa microişlemci kapat komutu gönderse dahi bu ikisi sürekli açık kalıyor.

Son yüklediğim kod:
C++:
#define faz 4
#define buzzer 1
#define led 2

const int buttonPin = 3;
int on_off =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 == LOW) {
        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(1000);
          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;
        }
      }
      delay(200);
    

  ///////////////////////////////////////////
}
 
pcb'nin final halini atar mısın abi.
KiCad kurulu açabilirim:cool:
 
abi pcb'de bir yanlış çizim göremedim.

Fakat!

Üstünde sürekli bobin üstünden akan yüksek frekans sapıttırıyor olması yüksek ihtimal diye düşünüyorum.

Şöyle bir uygulama yap kart üstündeki dahili adaptörü besleme dışarıdan 5v verince de izle yine aynı şekilde davranıyor mu?
 
onof:
/*
 __  __ ______ _  __       _______ _____   ____  _   _ _____ _  __
|  \/  |  ____| |/ /    /\|__   __|  __ \ / __ \| \ | |_   _| |/ /
| \  / | |__  | ' /    /  \  | |  | |__) | |  | |  \| | | | | ' /
| |\/| |  __| |  <    / /\ \ | |  |  _  /| |  | | . ` | | | |  <
| |  | | |____| . \  / ____ \| |  | | \ \| |__| | |\  |_| |_| . \
|_|  |_|______|_|\_\/_/    \_\_|  |_|  \_\\____/|_| \_|_____|_|\_\
*/

#define faz 4

#define buzzer 1

#define led 2

#define button 3

int ackapa = 0;

bool blf = 0;

void setup() {
  pinMode(faz, OUTPUT);
  digitalWrite(faz, LOW);

  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);

  pinMode(buzzer, OUTPUT);
  digitalWrite(buzzer, LOW);

  pinMode(button , INPUT);
}

void loop() {

  if (digitalRead(button) == LOW && blf == LOW) {
    ackapa++;
    blf++;
  }

  if (digitalRead(button == HIGH) && blf == HIGH) {
    blf = 0;
  }

  if (ackapa == 1) {
    digitalWrite(faz, HIGH);

    digitalWrite(buzzer, HIGH);
    delay(100);
    digitalWrite(buzzer, LOW);
    delay(100);
    digitalWrite(buzzer, HIGH);
    delay(100);
    digitalWrite(buzzer, LOW);
    delay(100);
    digitalWrite(buzzer, HIGH);
    delay(1000);
    digitalWrite(buzzer, LOW);

    digitalWrite(led, HIGH);
  }


  if (ackapa == 2) {
    digitalWrite(faz, LOW);
    digitalWrite(buzzer, HIGH);

    delay(2000);

    digitalWrite(buzzer, LOW);
    digitalWrite(led, LOW);
    delay(10);
    ackapa = 0;
   }
  
 }
 
abi pcb'de bir yanlış çizim göremedim.

Fakat!

Üstünde sürekli bobin üstünden akan yüksek frekans sapıttırıyor olması yüksek ihtimal diye düşünüyorum.

Şöyle bir uygulama yap kart üstündeki dahili adaptörü besleme dışarıdan 5v verince de izle yine aynı şekilde davranıyor mu?
Dışardan besleyince de aynı şekilde davranıyor
 
benim attığımla denesene abi senin yazdığın kafamı karıştırdı
 
Buzzer olayını çözdüm.
Şemada BC547 koymuşum, Foot print olarakda BC847 SMD tanımlamışım. İkisinin bacak numaraları farklı olduğundan bağlantı yanlış olmuş.
Bacaklı transistör bağlayınca buzzer da normale döndü.

Geriye kaldı birtek 220v
Burada da MOC mu bozuk diye düşünüyorum. 1 ve 2 numaralı bacağına anahtarlama yapınca 1.1v geliyor. @taydin abi bu voltaj yeterli mi?
4 ve 6 numarada bir hareket tesbit edemedim.
BTA41 ise sürekli iletimde. MOC girişi 0v da olsa 1.1v da olsa 220v'u hep veriyor.
 
Son düzenleme:
Buzzer olayını çözdüm.
SMD transistörü ya lehimlerken bozuyorum, ya transistörler patates, yada fark etmeden kısa devre ettiriyorum.
Bacaklı transistör bağlayınca buzzer da normale döndü.

Geriye kaldı birtek 220v
Burada da MOC mu bozuk diye düşünüyorum. 1 ve 2 numaralı bacağına anahtarlama yapınca 1.1v geliyor. @taydin abi bu voltaj yeterli mi?
4 ve 6 numarada bir hareket tesbit edemedim.
BTA41 ise sürekli iletimde. MOC girişi 0v da olsa 1.1v da olsa 220v'u hep veriyor.
devreden tamamen enerjiyi kes abi moc'un led bacaklarına ölçü aletinin diyot ölçüm kademesinde bak içindeki diyot kaç V değer veriyor.

datasheet'de diyor ki lede uygulayacağın voltaj 1.3 volt ile 1.5 arası iletime sokarsın karşıdaki triyağı.

moc'u da test etmeni tavsiye ederim çıkar deney bordunda minik bir test ortamı hazırla.

Ben prensip gereği deney borduma kesinlikle 220 deydirmediğim için 12-veya 24 trafo ile yapıyorum borddaki AC deneylerimi.
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,948
Mesajlar
118,703
Üyeler
2,822
Son üye
lalemasall

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top