Arduino millis() konusunda yardıma ihtiyacım var.

Şimdiki zaman ile öncekini ters sırada veriyorsun fonksiyona o yüzden fark çok büyük çıkıyor :)

Biraz baktım şimdi millis gerçekten belli bir saat frekansına göre çalışıyor. Kimisi 8 MHz diyor kimisi 16. Ama bence doğrusu 8 MHz. Senin bir şekilde işlemcinin 8 MHz de çalışmasını sağlaman lazım ve bu durumda harici osilatör gerekecek herhalde.
 
Şimdiki zaman ile öncekini ters sırada veriyorsun fonksiyona o yüzden fark çok büyük çıkıyor :)

Biraz baktım şimdi millis gerçekten belli bir saat frekansına göre çalışıyor. Kimisi 8 MHz diyor kimisi 16. Ama bence doğrusu 8 MHz. Senin bir şekilde işlemcinin 8 MHz de çalışmasını sağlaman lazım ve bu durumda harici osilatör gerekecek herhalde.
Vallahi Çalıştı.
Bu sefer tam 5sn saydı. :saril: :saril: :saril:
Şimdi 15dk, 30dk gibi seçenekler deneyeceğim. sıkıntı çıkmazsa süper olacak.
20210813_163822.jpg


C:
#define role 0
#define dk15 4
boolean btn;
unsigned long simdikiZaman;
unsigned long oncekiZaman = 0;
unsigned long zaman15 = 0; //900,000 15dk
void setup() {
  pinMode(dk15, INPUT);
  pinMode(role, OUTPUT);

  digitalWrite(role, LOW);

}

unsigned long zaman_farki(unsigned long t1, unsigned long t2)
{
  if (t2 >= t1)
  {
    return t2 - t1;
  }
  else
  {
    return t2 + 0xFFFFFFFF - t1 + 1;
  }
}

void loop() {
  if (digitalRead(dk15))
  {
    digitalWrite(role, HIGH);
    oncekiZaman = millis();
  }
    simdikiZaman = millis();
    zaman15 = zaman_farki(oncekiZaman, simdikiZaman);
    if (zaman15 >= 5000)
    {
      digitalWrite(role, LOW);
    }
    
}
 
15 dakika da 30sn, 30 dakika da 60sn şaşıyor. Bu kadarı hiç umurumda değil. Çok hassas lazım olsa saat devresi kullanırım.
Şimdi 60dk başlattım. Buda en fazla 90sn şaşar. Hiç önemli değil.
Şimdi bu kristal ve 22pF ları ana karta yerleştirmem lazım. Küçücük baskı devre için bir daha uğraşmak istemiyorum hiç.
 
Kristalle o kadar hata olmaması lazım. Sanki saat hızı tam 8 MHz değil. Osiloskopla kontrol et istersen.
 
Kolay gele! kristal kullanınca sadece 3 pin serbest kalıyor bu sorun olmayacak mı? frekans ayarlarını "fusebit"leri programlayarak yapabilirsin. millis yerine timerin birine kesme ayarlayıp saniye saydırabiliriz, %1 hata olur aşağı yukarı.
fuse bit ayarları için:
https://www.engbedded.com/fusecalc/
attiny13a 9.6MHZ için fusebits low: 0x7b HIGH: 0xFF oluyor.

GUI avr programlayıcı için avrdudess ekte. 19200 baudrate ayarlayınca arduino as isp kullanarak fusebit'leri de ayarlayabiliyor.





1628871093226.png
 

Ekler

  • setup-AVRDUDESS-2.6.exe.zip
    826.1 KB · Görüntüleme: 139
Şimdi sorun yeterince uzun süre sayılamıyor ise; küçük bir kodlama ile bu iş aşılmazmı örneğin maks. 5sn sayıyorsun ama sana 20 sn lazım. 4 defa 5 saniye say bir değişkenle durumu kontrol et olsun bitsin...


Kristal lafı geçmişken bende şunu sormak istiyorum. Arduino da neden harici kristal kullanılıyor. Dahili osilatör kullanmanın nesi kötü? Örneğin dahili 8mhz kullanınca seri haberleşme falan sorunmu çıkartıyor... Yada başka bir sıkıntımı oluyor.
 
Bence gerekiyorsa 2 değil 20 gün uğraşmak lazım. Yapılan işe hakim olmazsan yapmanın ne anlamı kalır ki?
Uğraşmaktan kaçmam, 20 gün de olsa uğraşırım da bu benim uğraşmak istediğim bir şey değildi. İhtiyaçtan dolayı yapıp yerine takmak istiyordum. Kafam manyetik karıştırıcıda çünkü. Ama madem konuya dahil olan çok kişi var o zaman üzerine düşeyim. Herkeste bilgisini paylaşsın.

İlk sorum bu kristal osiloskop ile nasıl ölçülür?
Devre üzerinde çalışırken mi, harici olarak mı?
Prob bağlantısı nasıl yapılır. Şaseyi şaseye bağlayıp, canlı ucu kristalin herhangi bir bacağına mı bağlıyoruz?

Kolay gele! kristal kullanınca sadece 3 pin serbest kalıyor bu sorun olmayacak mı? frekans ayarlarını "fusebit"leri programlayarak yapabilirsin. millis yerine timerin birine kesme ayarlayıp saniye saydırabiliriz, %1 hata olur aşağı yukarı.
fuse bit ayarları için:
https://www.engbedded.com/fusecalc/
attiny13a 9.6MHZ için fusebits low: 0x7b HIGH: 0xFF oluyor.

GUI avr programlayıcı için avrdudess ekte. 19200 baudrate ayarlayınca arduino as isp kullanarak fusebit'leri de ayarlayabiliyor.





12932 eklentisine bak

Benim için biraz fazla detay olmuş. Bunu anlamam için önce daha basit bir giriş yapmam lazım. :)
 
Prob bağlantısı nasıl yapılır. Şaseyi şaseye bağlayıp, canlı ucu kristalin herhangi bir bacağına mı bağlıyoruz?
Ben bir ucu şaseye bağlıyorsun fakat diğer ucu kristale değdirdiğinde muhtemelen frekansı değişir ölçüm yapamazsın diye biliyorum. Bunun yerine Gimmick capacitor (hile kapasitörü gibi bir şey) denilen sargı oluşturup onunla ölçüyor diye hatırlıyorum.

1628874810762.png
 
Ben bir ucu şaseye bağlıyorsun fakat diğer ucu kristale değdirdiğinde muhtemelen frekansı değişir ölçüm yapamazsın diye biliyorum. Bunun yerine Gimmick capacitor (hile kapasitörü gibi bir şey) denilen sargı oluşturup onunla ölçüyor diye hatırlıyorum.

12933 eklentisine bak
Resimdeki gibi 1-10cm mi olması lazım? özel bir değeri var mı? Bir videoda telefon kablosundan 2.4pF yapıyor, emaye kaplı bakır kablodan 6pF yapıyor. Yani belli bir oranı varsa onu tutturmaya çalışayım.
 
Yemedi.
Tam sarayım bakalım
20210813_203505.jpg
 
Bence çok fark etmeyecektir. Sonuçta temas etmeden uygun yakınlığa ulaştırsan da ölçüm yapabilmen lazım. Amaç sinyali bozmadan izlemek. Bir de ben de hobi için uğraştığımdan bu bilgi hafızamda silik. Biraz deneme yanılma ilerlemen ya da daha vakıf birinin yönlendirmesi gerekiyor.
 
Hiç frekans okuyamıyorum

kristalosiloskop.PNG
 
ite kaka şu gözlemi yaptım ama hala sinyalin ne olduğunu göremiyorum. Frekans sıfır yazıyor.

kristalosiloskop2.PNG
 
1628877655864.png


Abi videoda senin işine yaramayacak bilgiler de var ama yine de koymak istedim. Switch ile sanırım burada 48pF lık kondansatörü bypass ederek veya devreye ekleyerek frekanstaki değişim miktarını ölçmek amaçlanıyor. Bu senin için çok da önemli değil. Bu arada oldukça sapacaktır değer genelde çok da üstündeki değere yakın olmuyorlarmış. Yani eğer doğru anladıysam amaç kristalin çalışma frekansını ölçmek ise bu devre işini rahatlıkla görür tak çıkar yapmak için sen de soket koyabilirsin. Kolay gelsin abi
 
12936 eklentisine bak

Abi videoda senin işine yaramayacak bilgiler de var ama yine de koymak istedim. Switch ile sanırım burada 48pF lık kondansatörü bypass ederek veya devreye ekleyerek frekanstaki değişim miktarını ölçmek amaçlanıyor. Bu senin için çok da önemli değil. Bu arada oldukça sapacaktır değer genelde çok da üstündeki değere yakın olmuyorlarmış. Yani eğer doğru anladıysam amaç kristalin çalışma frekansını ölçmek ise bu devre işini rahatlıkla görür tak çıkar yapmak için sen de soket koyabilirsin. Kolay gelsin abi
Ah bide ne yaptığımı bilsem.
Oyunda bölüm geçmeye çalışan bebeler gibi klavyedeki bütün tuşlara basıyorum :D
 

Çevrimiçi personel

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,958
Mesajlar
118,802
Ü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