Arduinoya sığmayacak kadar kod yazmışda, 12bit için kodumu yazıp sığdıramamış acabaBu kütüphane ile ilgili bir sorun olabilir. Belki de kütüphane ADC'nin 12 bit olduğunu bilmiyor, 10 bite göre sonuç üretiyor.
Şu vaziyette tam doğru gösteriyor.
Şimdilik böyle kalsın. Mantıklı bir çözüm bulana kadar.
C:// LM35 Sıcaklık Sensörü for (int i = 0; i < 350; i++) // daha kararlı ortalama bir sonuç almak için 50 kez okuma yapma { lm35 = lm35 + analogRead(lm35Pin); delay(1); } lm35 = lm35 / 350; sicaklik_gerilim = (5000.0 / 1824.0) * lm35; sicaklik = sicaklik_gerilim / 10.0;
ben biraz core dosyasını kurcalasam bulabilir miyim abi bu analogRead komutunun nasıl işlem görüdğünüProblemi anlayamadığımız için sıkıntı çıkarmaz diyemiyorum. İşte böyle kütüphanelerle çalışınce birçok belirsizlik ile karşılaşıyorsun. Belki de bu kütüphaneler arduino ile uyumlu olmaya çalışıyor ve 12 bit ADC den okuduğu veriyi 10 ADC ye göre ölçekliyor. O yüzden diyorum sana, boşver şu kütüphaneleri, donanım registerlerine doğrudan erişim yap
Bak gene iş çıkarıyorsun başıma. Bitmeyecek bu proje.Problemi anlayamadığımız için sıkıntı çıkarmaz diyemiyorum. İşte böyle kütüphanelerle çalışınce birçok belirsizlik ile karşılaşıyorsun. Belki de bu kütüphaneler arduino ile uyumlu olmaya çalışıyor ve 12 bit ADC den okuduğu veriyi 10 ADC ye göre ölçekliyor. O yüzden diyorum sana, boşver şu kütüphaneleri, donanım registerlerine doğrudan erişim yap
Ben bildiğim 328p için bütün registerleri Great Scott videolarından öğrendim her yazdığı programa sıkıştırıyor.Bak gene iş çıkarıyorsun başıma. Bitmeyecek bu proje.
Bu donanım registerlerine erişme işini anlatan - öğreten bir Türk babayiğit var mı bildiğin?
Hatta Türk olmasada olur. Hindistanlıya da rağzıyım. Türkçe anlatsın yeter.
Bir örnek link atabilir misin?Ben bildiğim 328p için bütün registerleri Great Scott videolarından öğrendim her yazdığı programa sıkıştırıyor.
Bir örnek link atabilir misin?
Ben şöyle bişey buldum. Bakim ne anlatıyor.
analogRead
her zaman 0 - 1023 arası döndürür diyor.analogReadResolution
var. Bununla ADC bit sayısını değiştirebiliyorsun.Bir saatdir core dosyasını okuyorum analog çatısı altında adam birtek analogReadResolution bunu yazmış başka birşey yazmamış analog okumayla ilgili birde bunun parantez içine (int bits) yazmış bende boş boş bakıyorum bu ney diyeEvet gerçektenanalogRead
her zaman 0 - 1023 arası döndürür diyor.
Arduino - AnalogRead
Open-source electronic prototyping platform enabling users to create interactive electronic objects.www.arduino.cc
Ama bir deanalogReadResolution
var. Bununla ADC bit sayısını değiştirebiliyorsun.
Arduino - AnalogReadResolution
Open-source electronic prototyping platform enabling users to create interactive electronic objects.www.arduino.cc
Bir saatdir core dosyasını okuyorum analog çatısı altında adam birtek analogReadResolution bunu yazmış başka birşey yazmamış analog okumayla ilgili birde bunun parantez içine (int bits) yazmış bende boş boş bakıyorum bu ney diye
analogReadResolution diye bir fonksiyon oluşturmuş içine interger olarak oluşturduğu "bits" değişkeni ile veri gönderiyor işte.
analogReadResolution diye bir fonksiyon oluşturmuş içine interger olarak oluşturduğu "bits" değişkeni ile veri gönderiyor işte.
analogReadResolution(1024);
Yazsa adc yi 1024 olarak ayarlatmış demektir.
Tabi fonksiyonu başka bir amaçla yazmadıysa.
Abi dur, beyin fena yanmış durumda benim.Bit sayısı olacak Gökhan. Yani 12.
Sayın @Gokrtl "bit" demek veri iletişiminde kullanılan binary verinin basamakları demek. Binary yani 1 ve 0 rakamlarından oluşan 2lik sayı sistemidir.Abi dur, beyin fena yanmış durumda benim.
1 saattir 8bit 1bayt ise 10 bit nasıl 1024 byte oluyor diye düşünüyorum. Vikiyi açtım ordanda anlamadım. Benim bu bit leri, baytları, hex leri, binary leri öğrenmem lazım. Çok çıkıyor karşıma ama kafamı karıştırmaktan başka işe yaramıyorlar.
Vallahi anladımSayın @Gokrtl "bit" demek veri iletişiminde kullanılan binary verinin basamakları demek. Binary yani 1 ve 0 rakamlarından oluşan 2lik sayı sistemidir.
8bit yani 8 basamaklı bir verinin hafızada kapladığı alanın boyutu ise 1 bayt tutuyor...
Örneğin biz 10luk sayı sistemini kullanıyoruz. Bu sistemin her bir basamağı 0 ile 9 arasında değer alabiliyor. Yani her basamak 10 farklı değer alıyor. Böylece 2 basamaklı bir sayı ise 10 x 10 (0-99 arasında) 100 farklı değer alabiliyor...
2lik sayı sistemindeki bir sayı ise -her basamak 2 farklı değer alabildiğinden- basamak sayısının 2nin kuvveti olarak hesaplanan adette değer alabilir.
Bu nedenle 10 bit yani 10 basamaklı bir sayı 2^10 kadar farklı değer alabilir. Bu da 0-1023 arasında toplam 1024 farklı değer eder.12 bit ise 4096 farklı değer alabilir.
Örnek olarak:
2 bit yani basamaklı binary bir sayı da
00
01
10
11 olmak üzere 4 farklı şekilde olabilir...
3 bit olsa idi
000
001
010
011
100
101
110
111 bu şekilde 8 farklı sayı yazabilirdik ki bu da görüleceği üzere 2 üzeri 3e eşit olurdu.
3.3 volt azami voltaj var ölçebileceğimiz.Vallahi anladım
16306 eklentisine bak
Şimdi bu 1024 - 2048 - 4096 ne işimize yarıyor onu anlamaya geldi sıra.