7 SEGMENT DISPLAY ILE KRONOMETRE

50 us çok uzun. 50 us yi değiştirme, kesme sıklığını iki katına çıkar bakalım ne olacak. saniyede 100 yerine saniyede 200 olsun.
 
Bir de transistör baz direnci ne kadar? Transistörün satürasyona girdiğinden emin misin?
 
50 us çok uzun. 50 us yi değiştirme, kesme sıklığını iki katına çıkar bakalım ne olacak. saniyede 100 yerine saniyede 200 olsun.
Parlaklık daha iyi bcd[0] if şartını 20 olarak değiştirdim yoksa hızlı sayıyordu.

Açık,güneşli havada ve bütün perdeleri çekilmiş(hep böyle) odamda görüntülerini bırakıyorum ek kısmına.
Açık havada görülmesi çok zor.

Odamda çektiğim fotoğraf.
WhatsApp Image 2022-06-28 at 15.09.10.jpeg


Balkonda çektiğim fotoğraf.
WhatsApp Image 2022-06-28 at 15.09.06.jpeg
 
Bir de transistör baz direnci ne kadar? Transistörün satürasyona girdiğinden emin misin?
Sadece R1 direnci ile oynuyorum kalan bütün hepsi aynı
 
Sadece R1 direnci ile oynuyorum kalan bütün hepsi aynı

Aynı olup olmadığını sormuyorum. Transistör kesin olarak satürasyona giriyor mu?
 
Ha tamam şimdi baktım şemaya. Devre yanlış olmuş.

1) Her bir segmentin kendi direnci olması gerekiyorken, sen bir tane ortak direnç kullanıyorsun. Böylece geçebilecek akımı 8 de birine düşürmüş oluyorsun. Bir de segmentler arasında parlaklık farkına sebep oluyor. Bir segmentte 8 varsa ve diğerinde de - varsa, 8 çok sönük - daha parlak olur.

2) Ortak direnci de PNP nin emitterine koymuşsun. Bu durumda transistör satürasyona da gitmez, akımı daha da sınırlandırmış oluyorsun.

O ortak direnci sök ve onun yerine kısa devre yok. Sonra da her segmente AYRI AYRI 22 Ω direnç koy. Sonra da 50 us yi azalt.
 
Ha tamam şimdi baktım şemaya. Devre yanlış olmuş.

1) Her bir segmentin kendi direnci olması gerekiyorken, sen bir tane ortak direnç kullanıyorsun. Böylece geçebilecek akımı 8 de birine düşürmüş oluyorsun. Bir de segmentler arasında parlaklık farkına sebep oluyor. Bir segmentte 8 varsa ve diğerinde de - varsa, 8 çok sönük - daha parlak olur.

2) Ortak direnci de PNP nin emitterine koymuşsun. Bu durumda transistör satürasyona da gitmez, akımı daha da sınırlandırmış oluyorsun.

O ortak direnci sök ve onun yerine kısa devre yok. Sonra da her segmente AYRI AYRI 22 Ω direnç koy. Sonra da 50 us yi azalt.
18650 pilime kapasite testi yaparken ufak bir kaza geçirdik'de abi ondan bakamadım.

Biz okulda böyle öğrendik ondan tek direnç koyuyorum abi ben.
Mesela karaşimşek yaparken tek direnç eskiye.
saat yaparkende tek direnç ortak uca.

Ondan burada da öyle yaptım şimdi bütün segmentlere tek direnç yapayım
 
Bu proje seni, okuldan gelen bütün kötü alışkanlıklardan kurtaracak gibi :katil2:
 
Habire birşeyler elimde kalıyor, çalınıyor. :mad: :mad:

Ayakkabı çalındı.

1 saat önce pilime kapasite testi yaparken pilimın CID koruması yoktu veya devreye girmedi pil duman atmaya başladı camdan aşşağı atarken elim yandı.

Şimdi 8 direnç dizdim devreyi düzenledim çalışmıyor.
 
Hee buldum sorunu deney bordunun güç hattına 5V vermeyi unutmuşum emiterler boşta kalınca tabi çalışmaz.

Süre 3uS emitterler direkt 5V.

8 direnç ile(22R) arduinoya gidiyor kalanlar.

İlk haldeki 10uS altı haline göre daha iyi oldu ama hala sönük artık riskler alma zamanı geldi
 
İlk riskim dirençlerden 3 tanesini en çok yananlardan 3 tanesini ABC uçlarını 10R 1/2 Wat direnç ile değiştirmek oldu etkisi neredeyse olmadı bunun.

12V ile mi sürsem?
 
Yaptığın projeye göre süreyi arttırabilirsin. Mesela her hane için 10 us yapsan toplam 80 us yapar. 100 us toplam kesme süresi de fena değil. Projede kısa kesme süresi şart değilse, mesela ana döngüde hassas delayler gerekmiyorsa, süreyi daha da uzatabilirsin.
 
Yaptığın projeye göre süreyi arttırabilirsin. Mesela her hane için 10 us yapsan toplam 80 us yapar. 100 us toplam kesme süresi de fena değil. Projede kısa kesme süresi şart değilse, mesela ana döngüde hassas delayler gerekmiyorsa, süreyi daha da uzatabilirsin.
Abi frekans ölçmeyi tam bilmediğim için şuan nasıl bekleme veremem gerektiğini bilmiyorum
 
C++:
ISR(TIMER1_COMPA_vect) {

  bcd_inc(bcd);
 
  PORTB = 0b00111110;
  PORTD = _7seg[8];
  delayMicroseconds(5);
  //PORTB = 0b00111111;
 

  PORTB = 0b00111101;
  PORTD = _7seg[bcd[1]];
  delayMicroseconds(20);
  PORTB = 0b00111111;


 if (snb == 1) {
    PORTB = 0b00111011;
    PORTD = _7seg[bcd[2]];
    delayMicroseconds(20);
     PORTB = 0b00111111;

  }

  if (sno == 1) {
    PORTB = 0b00110111;
    PORTD = _7seg[bcd[3]];
    delayMicroseconds(20);
    PORTB = 0b00111111;
  }

  if (dkb == 1) {
    PORTB = B00101111;
    PORTD = _7seg[bcd[4]];
    delayMicroseconds(20);
    PORTB = 0B00111111;

  }

  if (dko == 1) {
    PORTB = B00011111;
    PORTD = _7seg[bcd[5]];
    delayMicroseconds(20);
    PORTB = 0B00111111;
  }


}


Sabah 7'den beri en parlak ve en kısa süreyi yaklamaya çalışıyorum mS 1ler basamağına düz 8 yazdım zaten anlaşılmıyordu.
Diğerlerine'de 20uS beklemeler verdim bu şekilde hepsi sabit parlaklıkta düzgün şekilde okunuyor.


Şimdi geldiğimiz ve gideceğimiz noktalara bakalım.

Geldiğimiz nokta;
6 Display'e tarama yaparak data yazabilir konumdayız.
10mS'lik kesme oluşutrduk.
BCD'olarak sayıcı oluşturduk.

Gideceğimiz nokta;
Dur Butonu
Devam butonu.
Sıfırlama butonu.
Frekans ölçümü.

Elimizde kalanlar
4 Tane analog pin kaldı.

Tam ihtiyacımız kadar fakat bunları da ekleyince bütün portları tamamen doldurmuş oluyoruz.
1 Tane analog girişe bağlayacağımız 1 butona fonksiyonlar eklemek daha doğru olur bu konumda

1. basış başlat
2. basış durdur
3. uzun basış sıfırla
 
millisaniyenin kısalmasını ms olarak yaz Ahmet. mS milli siemens, yani iletkenlik birimidir. Herkes anlıyor denmek isteneni ama gene de birimleri doğru kullanmak daha iyi.

Frekansmetre için ayrı bir konu açarsan daha iyi olur. Kronometre işini burada bitirirsen artık bu konu amacına ulaşmış demektir.
 
millisaniyenin kısalmasını ms olarak yaz Ahmet. mS milli siemens, yani iletkenlik birimidir. Herkes anlıyor denmek isteneni ama gene de birimleri doğru kullanmak daha iyi.

Frekansmetre için ayrı bir konu açarsan daha iyi olur. Kronometre işini burada bitirirsen artık bu konu amacına ulaşmış demektir.
Butonları eklemeye geçiyorum abi o zaman.

Tek tek 3 buton mu eklemek daha iyi olur bu konumda tek butona fonksiyonlar eklemek mi?
 
Analog pinlere birden fazla buton bağlayabilirsin. Bir gerilim bölücü ile voltaj okursun ve oradan anlarsın hangi butonun basılı olduğunu:

1656489461904.png
 
buton:
if(analogRead(buton) < 10 && flg1 == 0){
    c++;
    Serial.println(c);
    flg1 = 1;
  }
  if(flg1 == 1 && analogRead(buton) > 10){
    flg1 = 0;
  }

Buton ile çalışırken en çok kullandığım yapı bu.
Aşırı hızlı akışın önüne geçiyor.
 

Forum istatistikleri

Konular
6,958
Mesajlar
118,805
Üyeler
2,825
Son üye
bekinci

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