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
5,663
Mesajlar
97,415
Üyeler
2,440
Son üye
turankaya

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