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

Saat 02:00 ye kadar uğraştım ama belirli bir yol katettim.
En sonda lastButtonState = reading; yaptım. Herşey yerine oturdu. Kodlama açısından tek bir sıkıntı kaldı. O da Fişi prize ilk taktığımda ikinci "if" deki kapanma şartına giriyor ve buzzerı öttürüyor. Önceden böyle bir şey yoktu.

C++:
#include <Arduino.h>
#define faz 3
#define buzzer 0
#define led 1

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

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(500);
          digitalWrite(buzzer, LOW);
          digitalWrite(led, HIGH);
          digitalWrite(faz, HIGH);
          on_off = 1;
        } else if (on_off == 1) {
          digitalWrite(buzzer, HIGH);
          delay(700);
          digitalWrite(buzzer, LOW);
          digitalWrite(led, LOW);
          digitalWrite(faz, LOW);
          on_off = 0;
        }
      }
    }
  }
  ///////////////////////////////////////////
  lastButtonState = reading;
}

Kodlama dışında vınlama problemimiz var. 3.PCB yi yaptım. İkişer ikişer filitre kondanatörü kullandım ama namıssız hala vınlıyor.
 
İlk açılışta demek ki setup vs gibi süreler 50ms alıyormuş. Setup un sonunda lastdebouncetime a millis ataması yaparsanız kurtarabilir.

Vınlama sorununa gelince optoya doğrudan 5V uygulandığı durumda olmuyorsa ama mcu verince oluyorsa demek ki sıkıntı büyük ihtimalle mcu da. Kıyıda köşede başka bir mcu yok mu? Onunla deneyip bakmak lazım, ya da şu scope işine bir geri dönmek
 
Vınlama sorununa gelince optoya doğrudan 5V uygulandığı durumda olmuyorsa ama mcu verince oluyorsa demek ki sıkıntı büyük ihtimalle mcu da. Kıyıda köşede başka bir mcu yok mu? Onunla deneyip bakmak lazım, ya da şu scope işine bir geri dönmek
iki tane Attiny13 denedim ikisinde de vınlama yaptı. Yarın Becerebilirsem Attiny45 deneyeyim. Bakalım onda da yapacakmı? Kodu hallettiğimiz iyi oldu. Öncekini kaybetmiştim.
 
Attiny olmak zorunda mı ki? Sorunu netlemek amaçlı elinizde ne varsa koyup deneyin bence, eğer sorun netleşirse o zaman bu pcb üzerine koyulabilen seçenekler arasına yoğunlaşırsınız
 
Attiny olmak zorunda mı ki? Sorunu netlemek amaçlı elinizde ne varsa koyup deneyin bence, eğer sorun netleşirse o zaman bu pcb üzerine koyulabilen seçenekler arasına yoğunlaşırsınız
Yani nano, uno, nodemcu ve raspberry pico var. Ama onlar bu devre için fazla gereksiz kalır. Sadece test amaçlı kullanabilirim. PIC filan kullanmayı bilmiyorum hiç.
 
Butonlari falan bosver.

1 sn on/1sn off led blink kodunu en kisa yoldan yaz. Led cikis piniyle de opto transistorunu sur.
Baska hic bir sey yapma.

Trafo 1 sn on 1 sn off olsun. Bu sartlarda vinlama yapiyormu bir test et.
 
Butonlari falan bosver.

1 sn on/1sn off led blink kodunu en kisa yoldan yaz. Led cikis piniyle de opto transistorunu sur.
Baska hic bir sey yapma.

Trafo 1 sn on 1 sn off olsun. Bu sartlarda vinlama yapiyormu bir test et.

Evet bu şekilde de her ON olduğunda vınlıyor.

C++:
#define faz 3
void setup() {
  pinMode(faz, OUTPUT);
  digitalWrite(faz, LOW);
}

void loop() {
  digitalWrite(faz, HIGH);
  delay(1000);
  digitalWrite(faz, LOW);
  delay(1000);
}
 
Tamam simdi scopu blink yaptiran cikis pinine bagla.

Ekrani da toplamda 2 snde tarayacak sekilde time/div degerini ayarla.
Yani her bir karenin genisligi 0.2 sn olsun.

Cozelim artik sorunu. Sacma sapan bir seye takildin.
 
Tamam simdi scopu blink yaptiran cikis pinine bagla.

Ekrani da toplamda 2 snde tarayacak sekilde time/div degerini ayarla.
Yani her bir karenin genisligi 0.2 sn olsun.

Cozelim artik sorunu. Sacma sapan bir seye takildin.
Bir kaç dakika içinde takıyorum scop'u.
O arada şu videoyu atayım. 1sn de bir trafonun vınlaması.

 
Scopu ayarlamayı yine becerememiş olabilirim.

 
Scop senin araban. Koltuga oturdun mu vites neresi, gaz pedali neresi, fren neresi, korna neresi diye aramayacaksin.

Tak tak tak hemen istedigine eriseceksin.

Isi gucu birak scopu bi bir saat kurcala. Ondan sonra projeye devam et o zaman.

Scopu blink ettiren pine bagla ve ekranda en az 1 kare genisliginde high, 1 kare genisliginde low olacak sekilde ekran goruntusu elde etmen sart.

Eger bu 1 kare genisligi 1sn degilse yani H olan bolgede 1 saniyeden daha kisa sureli inip cikan ara gecisler goruyorsan (normalde gormemen gerekir) vinlamanin sebebi budur. Bunun da sebebi mcu reset atiyor demektir.
 
Scopu blink ettiren pine bagla ve ekranda en az 1 kare genisliginde high, 1 kare genisliginde low olacak sekilde ekran goruntusu elde etmen sart.
Osiloskoptaki tüm time/div fonksiyonlarını kurcaladım. Videodakinden daha düzgün bir görüntü alamıyorum. High olduğunda yarım kare, low olduğunda diğer yarım kare görünecek şekilde sürekli hareket halinde.


Eger bu 1 kare genisligi 1sn degilse yani H olan bolgede 1 saniyeden daha kisa sureli inip cikan ara gecisler goruyorsan (normalde gormemen gerekir) vinlamanin sebebi budur. Bunun da sebebi mcu reset atiyor demektir.
Muhtemelen durum böyle.
Şimdi iş başı yaptığım için daha fazla kurcalayamadım.
Akşam 22:00 den sonra mcu yu devre dışında haricen çalıştırıp kare dalga elde etmeye çalışacağım. Eğer sorunsuz bir kare dalga elde edebilirsem devreye takacağım.

Attiny olmak zorunda mı ki? Sorunu netlemek amaçlı elinizde ne varsa koyup deneyin bence, eğer sorun netleşirse o zaman bu pcb üzerine koyulabilen seçenekler arasına yoğunlaşırsınız
Bu gün attiny45 ve nano ile denedim. Aynı sorunu bunlarda yaptı.
 
Osiloskoptaki tüm time/div fonksiyonlarını kurcaladım. Videodakinden daha düzgün bir görüntü alamıyorum. High olduğunda yarım kare, low olduğunda diğer yarım kare görünecek şekilde sürekli hareket halinde.

Tamam demekki trigger secenegin uygun degil.

1708775603741.png


Trigger basligi altinda yukaridakine benzer sembolun oldugu secenek vardir.
Ona basacaksin.

Sonra da trigger seviyesini 0 cizgisinin hafifce ustune cikartacaksin.
Muhtemelen mouse ile seviye cozgisini belirten bir nokta vardir onu tutup yukari suruklemen yetecek. Yada bir sayi girilen kutucuk vardir. Ona yaz bir seyler. (% deger istiyorsa %50 % deger istemiyorsa 1v falan)
 
Tamam demekki trigger secenegin uygun degil.

30906 eklentisine bak

Trigger basligi altinda yukaridakine benzer sembolun oldugu secenek vardir.
Ona basacaksin.

Sonra da trigger seviyesini 0 cizgisinin hafifce ustune cikartacaksin.
Muhtemelen mouse ile seviye cozgisini belirten bir nokta vardir onu tutup yukari suruklemen yetecek. Yada bir sayi girilen kutucuk vardir. Ona yaz bir seyler. (% deger istiyorsa %50 % deger istemiyorsa 1v falan)
Tamam akşama triger tarafını kurcalayayım.
 
Forumda scop onerisi isteyenlere masa ustu scoplar tavsiye edilirken hep sustum hep sustum.

Bundan sonra avazim ciktigi kadar haykiracagim.

Picoscope tarzi avuc ici kadar iyi bir scop alin.

Bosverin iyisini Picoscope alin. Laptop cantanizda adaptor konacak kadar yer varsa bu scopa da yer cikar.

Dagda bayirda tarlada acarsiniz laptopinizi scopunuzu da baglarsiniz sarjiniz yettiginca proje yaparsiniz.

RF ile ugrasmiyorsaniz Picoscope 2408B modelinden memnun kalacaginiza kefilim. (Su anda kullandigim icin)

Cok seveceksiniz. Yatmadan once yastiginizin altina koyup ara ara uyanip scopunuzu opup geri yastiginizin altina koyacaksiniz.

Yemisim 12 bitinizi.

1708777024510.png
 
Son düzenleme:
Elzem bir optimizasyon sorunu yok devrede, A1 A2 yer değiştirilince susacaktı yüksek ihtimalle trafo sahte triyaklarda başıma çok geliyor yükü A1'e bağlıyorum göz kırpıyor triyak açılmıyor gate aşırı akım çekiyor vs. yer değişiyorum A2'ye bağlıyorum bütün sorunu yok oluyor

Bunu denedin mi hiç?
 
Bunu denedin mi hiç?
evet belki 10 kez başıma geldi.
başından beri sorunun kaynağını yazdım ama pek kaale alınmadı.

1- kullanılan moc'un ıF akımı yetmiyor olabilir triyak'ın tam açılmasına.
2- triyak sahte ve bir yönde geçirgenliği daha fazla.

2 ihtimal incelendiğinde kesinlikle sorun çözülecektir

işin en güzel test ortamı akkor flamanlı lamba ile test edip sonra trafo devreye almak reziztif yük için snubber devrelerine vs. gerek yok.

En minimal test 1 moc, 1 input kaynağı, 1 40-50W falamanlı lamba.
 
@Ahmet Senin önerini Gökhan'ın denemesini istemiştim aslında. Gökhanı etiketlemeyi unutmuşum.

(Kusura bakma)
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,941
Mesajlar
118,628
Üyeler
2,821
Son üye
Sfkzdmr

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