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 üyeler

Forum istatistikleri

Konular
5,833
Mesajlar
99,481
Üyeler
2,477
Son üye
krmz

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
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)
Back
Top