Arduino ile Dijital Termometre

Emre Kaman

Moderator
Katılım
21 Kas 2013
Mesajlar
6,273
Tepkime puanı
12,103
Yaş
42
Konum
İzmir
İlgi Alanı
Heli
Yeni yapmakta olduğum şarj çantama daha ne gibi ıvır zıvırlar ekleyebilirim derken, aslında çok önemli olan sıcaklık kontrolü konusu aklıma geldi. Aslında rotorunda programlanmış yazıların yanı sıra ortam sıcaklığını da gösteren akıllı fanlar var, ancak fan çıkışım çantanın yanında olduğu için, bir de bir fan için 15$ daha hafiflememek için onu es geçtim. Sonra dedim ki, neden ardu ile yapmayayım? Elimde fazladan pro mini, 4 digit 7 segment display varken, bir de yanına DS18B20 sensör sardırdım direnc.net'ten, balıklama atladım.

Son bir-iki saati biraz bakınarak geçirdim. DS18B20 sensörü için onewire ve dallastemperature library'si var
7 segment disp. sürmek için sevseg ve sevenseg library'lerinin yanı sıra, timer library'si kullanılarak ve dotmatrix mantığıyla çalışan bir uygulama örneği de buldum. sevseg ve sevenseg sadece rakamlar ve decimal point için çalışırken, timer ile display'e istediğim şekli çizdirebilirim. Ancak işler o noktada biraz karışıyor.

Yapmak istediğim, arduinonun sensörden aldığı veriyi 4 digit 7 seg. disp.da "23.5C" şeklinde göstermesini sağlamak. Sondaki C çok da elzem değil.

Araştırma devam ediyor, daha yeni başına oturdum, kafam biraz karışık. Her türlü ipucu çok makbule geçer :)
 
Arduino ile Dijital Termometre

DS18B20 sensör... 7 segment... sevseg sevenseg... dotmatrix...


Zafer abi yetiş :laugh: Benim devreler tutuştu yine ;D
 
Arduino ile Dijital Termometre

DIY grubu bu işe el atarsa 1 haftaya kalmaz bu proje de başarılı bir şekilde sonuçlarınız :thumbup: :RCKolik:
 
Arduino ile Dijital Termometre

İşi biraz daha geliştirip amper ve volt ölçümünü de ardu'ya yıkmaya karar verdim :D Elimde hazır bulunan ölçüm cihazını da kullanmıycam. Güzel bir lcd ekran, sıcaklık, amper ve voltaj ölçümleri gösterilecek. Araştırma devam :D
 
Arduino ile Dijital Termometre

Emre projeyi bitirdikten sonra fotoğraflarsan sevinirim :) Bende yazdığın dilden pek birşey anlamadım sanırım. :laugh:

Anlattıklarınla nekadar alakalıdır bilemiyorum ama bende biraz işin kolayına gidip teknemin su soğutma sistemini açıp kapması için banggoodan 12v luk termotmetre switch lerinden almayı düşündüm. 5-6 dolara satılıyordu. Ama teknemi su basınca herşeyden vazgeçtim :laugh:
 
Arduino ile Dijital Termometre

Nacizane önerilerim şu olur.

- 4 digit 7 segment göstergeden vazgeç. 4 digit 7 segment için 11 kabloya(pine) ve 4 tane 2n2222 gibi transistöre ihtiyacın olur. Kablolaması, işçiliği ve yazılımı, 2x16 veya OLED I2C bir display'e göre çok daha uğraştırıcı olur.

1. alternatif : Aşağıdaki ekran ve LCD seri arayüzün birleşimi



2. alternatif : Direnç net de I2C bulamadım. Ama banggood'da ve bende I2C versiyonu olan aşağıdaki ekran ekran gayet kullanışlı. Ama TTL voltaj seviyesini 3.3V değerine düşürmek için bir tane de CD4050 gerekiyor.



- Sıcaklık ölçer için LM35'in 0V - 5V arasındaki analog çıkış voltajını, arduino ile işleyebilmek çok daha kolay.


- Akım sensörü olarak Allegromikro'nun ACS serisi akım sensörlerini kullanabilirsin. 30A iş görür herhalde. Tek yapmak gerekn, 0V - 5V arasındaki çıkış voltajının akım karşılığını ekrana bastırmak: 0V ~ 0A -> 5V ~ 30A. Sümer abi pek verim alamadığını söylemişti ama gene de inceleyebildiğim kadarı ile benzerleri arasında kullanım kolaylığı ile öne çıkan bir sensör.


- Voltaj ölçümü için basit bir voltaj bölücü iş görecektir. Ama stabilite açısında analog pinleri maksimum 10K bir direnç ile sürmek gerekiyor. Ve de ardarda minimum iki ölçüm yapıp sadece son değeri kaale almak gerekiyor.
 
Arduino ile Dijital Termometre

Zafer abi tesekkur ederim. Voltaj ve akim olcmekten vazgectim, haziri var, zamaninda almistim, onunla devam edicem. Sicaklik icin ise ds18b20 ve birac biseyin daha siparisini vermis bulundum dun. Hatta daha sonra senin de bahsettigin zorluklardan oturu bir de oled, yaninda akim sensoru falan da siparis ettim, daha sonra yine fikir degistirip iptal ettim. O arada direnc.net tarafinda biraz karistirdim isleri :) neyse. Simdi bi daha iptal-yeni siparis falan zorlamayim. Dedigin gibi zor yoldan gitmeyi bi deniycem. O arada canim cok sıkılırsa alirim bi 2x16 bakarim keyfime :D

Bu arada transistor lazim derken, birkac uygulamada direkt arduinodan surduklerini gordum, transistor kullanmadan hic mi olmaz? :D
 
Arduino ile Dijital Termometre

Doğrusu ben de 2 x 16 bir LCD ekran kullanmayı tercih ederdim. LiquidCrsytal library ile kullanım çok basitleşiyor. 7 segment LED ile işin içine hem sürücü transistörleri girecek hem de eğer yazılım iyi düzenlenemez ise pır pır etme sorunu oluşacak.
Arduino çıkışlarının akım sınırı var. Normalde doğrudan LED sürülebilir (akım sınırlayıcı direnç ile) ama ne kadar sağlıklı olacağını kestiremiyorum. Ancak her ne olursa olsun her bir 7 segment modülün ortak anodu ya da katodu da Arduino tarafından sürülecek ve tüm segmentlerin akımı oradan geçecek. Yani 40 mA sınırını aşmamak için segment başına 5 mA falan kullanmak lazım ki 5 mA ile displayin okunabilirliği ne olur bilmem.
Akım ölçümü için ACS serisi Hall sensörlü modülleri denemiştim. Ben oldukça düşük akımlar ölçtüğüm için istediğim gibi olmamıştı. Kullandığım modül 5A olandı ve ben 100 - 200 mA gibi akımlar ölçmeye çalışıyordum. Hall sensörü manyetik gürültüye çok açık olduğu için çok tutarsız ve oynak ölçümler yapıyordu. Ama 1 - 2 Amper gibi ölçümlerde muhtemelen daha kullanılabilir sonuç verecektir.
 
Arduino ile Dijital Termometre

Hııııı, transistör mevzuu şimdi netleşti kafamda... Ona da kafa yormam gerekecek. Aslında 7 segmenti istememin bir nedeni de, lcd display'e göre okunurluğunun daha rahat olacağını düşünmem. Şarj çantasında bir akrilik plakanın altında olacak, lcdyi okumak için eğilmek istemiyorum. Hem de kullanacağım akım-gerilim ölçen cihaz da 7 segment, ona uyumlu olsun istedim. Göz kırpma işini bir şekilde çözerim, zaten ölçümleri 5-10 saniye arayla aldırıp son ölçümü sürekli ekranda tutmayı düşünüyorum, biraz da kırpışsa da sorun olmaz. Akım-gerilim ölçümünü ardu'dan yapmayacağım. Ölçmek isteyeceğim akım max 40A ve genelde 15-20A arasında olacak, 40A kısmı işi biraz sıkıntıya sokuyor, sensör pahalanıyor falan :) Zaten hazırı varken bir de onun için kodla boğuşmamak istedim.
 
Arduino ile Dijital Termometre

Dur bi düşüneyim... Akım sensörünü oku, LCD'ye yaz. Ufff acayip boğuşacaksın kodla. :D
 
Arduino ile Dijital Termometre

7 segment LED kullanırsan, her bir digit'i peşisıra tek tek aktive edeceksin. Yani son değer orada kalsa bile senin kodun sürekli koşup tazelemek zorunda. Eğer statik sürmeye kalkarsan 4x7=28 port lazım.
Şunlara dikkat etmelisin: genel olarak 25Hz tazeleme ile çalışacaksan, 100Hz timer interrupt kullanacaksın. Her bir digit sürenin sadece dörtte biri kadar aktif kalacağı için akımları artırman gerekecek. Yani normalde sürekli yanarken 15mA ile yeterli parlaklığı sağlayabilirken multiplex çalışmada belki 50mA gerekecek.
 
Arduino ile Dijital Termometre

Kolay gelsin Emre abi iyi kodlamalar :)
 
Arduino ile Dijital Termometre

Haklısın abi, ama işin yükünü kendim çekmemeyi düşünüyorum, zaten ne o kadar bilgim, ne de hevesim var :) SevenSeg library'nin pdf'ini okuyordum şimdi. Eğer gözden kaçırdığım bişeyler yoksa, yarın malzemeler geldikten sonra bir deniycem. Anladığım kadar kolaysa, sorun yok. Çalışmazsa o zaman bakarız :D
 
Arduino ile Dijital Termometre

Ha ? Ne ? Sanki birisi beni andı :laugh: ...