» elektronik » Arduino »Attiny üzerinde termometreli saat

Attiny Termometre İzle

Attiny Termometre İzle



Herkese merhaba ve iyi günler ya da akşamlar. Bu sefer oda saati yapma talimatlarını bir termometre ile paylaşacağım. Saatin bilgi işlem merkezi, Digispark'tan bir tahta üzerine monte edilen Attiny85 olacaktır. Saati görüntülemek için - Oled ekran. Termometre - tanınmış ds18b20. Güç için li-ion 18650'yi alırız (bir dizüstü bilgisayardan eski bir pilden elde edilebilirler). Ve pil seviyesinin bir ekranını ekleyin. Önceki tüm saatlerimde olduğu gibi, RTC (gerçek zamanlı saat) modülü olmadan yapacağız.

Gerekli olan her şeyi topluyoruz:

- Digispark Attiny85 (mikro USB versiyonu)
- ds18b20 (plastik bir kutuda)
- 128x64, I2C çözünürlüğe sahip Oled ekran
- 2 adet 18650 pil veya eski bir Li-ion dizüstü bilgisayar pili
- Dirençler (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- İnce plastik (muhafaza için)
- Farklı renkteki kabloları bağlama
- ISS programcısı (veya herhangi biri Arduino ücreti)
- Düğme
- Dupont konnektörleri 2,54 mm "anne", "baba"
- Kırtasiye bıçağı, çift taraflı bant, elektrik bandı, hotmelt
- Lehimleme için her şey (havya, reçine, lehim)

Adım 1 Durum.
Gelecekteki saat kasası ince plastikten yapılacak. Özel bir mağazada böyle bir plastikten bir levha satın alabilir veya aliexpress sipariş edebilirsiniz. Veya büro ofisine gidip en sevdiğiniz renkte bir plastik kağıt klasörü satın almak için (beklememek ve bakmamak) yapabilirsiniz. Gelecekteki saatin boyutları: genişlik - 40 mm, kalınlık - 30 mm, yükseklik - 70 mm. Aşağıdaki şemaya göre, plastikten bir tarama kestik:


Kalın çizgiler boyunca kesiyoruz, ince çizgiler boyunca hafifçe büküyoruz. Dikdörtgeni bir büro bıçağı kullanarak ortadan kesiyoruz, bu bir görüntüleme penceresi. Sonuç olarak, plastik bir tarama elde ederiz:


Attiny'e geçiyoruz.

Adım 2 Attiny + Oled.
Dediğim gibi, kalbimizde ev yapımı Voltaj regülatörü ve kablo demeti ile birlikte hemen tahtaya lehimlenmiş bu çipi satın almak en iyisidir. Digispark Attiny85 çok uygundur. Kartta mikro USB bulunan sürümü seçin. Kartta yapılan diğer değişiklikler boyutlara uymayacaktır. Bu kart zaten lehimlenmiş Dupon “erkek” konektörlerle satılıyor. Öyleyse, tüm konektörleri lehimleyin. Renkli teller topluyoruz. Farklı renklerde 10 santimetreye ihtiyacımız var. Onları Attiny'de lehimledik ve hangi telin karşılık geldiğini yazıyoruz. P0 ve P2 telleri iki tel halinde lehimlenmelidir. Oled ekranını bağlamak için ikinci çift gereklidir. Aşağıdakileri alıyoruz:


Tel üzerinde aşağıdaki diyagramı yazdım:


Ekran küçük (denetleyiciye uyacak şekilde), ancak güzel görünüyor. OLED (organik ışık yayan diyot) grafik bir görüntüdür. Arka ışık yoktur ve bunun yerine her piksel bağımsız bir LED'dir. Ekran boyutları - 0.96 inç.Çözünürlük 128x64. I2C veri yolu üzerinden bağlanır. Attiny ile bağlanmak için sadece iki kablo kullanır. Farklı renklerde gelirler, zevkinize göre seçim yaparlar. Ben üstte sarı çizgili mavi sevdim. Digispark'a benzer şekilde hareket ediyoruz. Lehimli konektörler varsa - lehimleyin. Lehim, şimdilik sadece güç kabloları:


Lehim yaparken dikkatli olun, ekranda bir havya ile kabloya zarar vermeyin:


Panoları çift taraflı bant kullanarak bağlarız:


Digispark Attiny ve Oled ekranını şemaya göre lehimliyoruz (tellerin renkleri değişebilir, asıl mesele sonuçlarla uğraşmamaktır):


Kolaylık ve sipariş için tüm kabloları bir araya getiriyoruz. Kafanızı karıştırmamak için elektrik bandı ile bükebilirsiniz:


Tüm kabloların sonunda Dupont “dişi” konnektörü takarız, izolatörlere takarız ve konnektörü yapmak için hepsini elektrik bandıyla sarırız. Ayrıca konektörün pin çıkışını da kaydediyoruz:


Pinout şöyle olmalıdır, çünkü gelecekte konnektöre bellenim veya diğer saat elemanları için bir kablo bağlayacağız.
Ortaya çıkan yapıyı kasaya yapıştırıyoruz ve daha fazla manipülasyon için bir inilti yapışmamış halde bırakarak kasanın kendisini yapıştırmayı unutma:


Yapıştırırken, ekranın eşit olmasına dikkat edin:


Adım 3 Güç.
Güç için iki Li-ion eleman kullanacağız. 18650 yazın. Bunları ayrıca satın alabilirsiniz. Bu durumda, bunları paralel olarak lehimleyin, bağlantı ve müteakip şarj için konektörü izole edin ve çıkarın:


Çoğu eski dizüstü bilgisayar var. Artık çalışmazlar ya da zaman içinde çalışmazlar. Dizüstü bilgisayarın pili zaten kötü olsa da ve kullanım amacına uygun olmasa bile, her türlü ev yapımı ürün için kullanılabilir. Bizim durumumuzda, bir saat için. Pili dizüstü bilgisayardan alıyoruz:


Ana şey, onun Li-ion olmasıdır. Dikkatlice söküyoruz, içindeki öğeye zarar vermemek için plastik kasayı açmanız gerekiyor. Çoğu zaman, pil paralel bağlı iki öğeye ayrılır. Onları çıkarırız ve bir çifti diğerlerinden ayırırız:


Kontak pedlerine lehimlemek en iyisidir:


Bu çifti saatin arkasına yapıştırın:


Adım 4 Pil şarjının belirlenmesi.
Saatin kullanışlı bir işlevi pil şarjını göstermektir. Voltaj ile şarj derecesini belirleyeceğiz. Bu piller için minimum voltaj 2,4 V'tur. Daha fazla deşarj edilemez. Maksimum voltaj 4.2 V'dir.

Analog porttaki voltaj ölçümü her zaman başka bir voltaja göredir. Referans voltajı ayarlamaya yarayan mikrodenetleyicinin AREF pimini kullanamayız. Gerilimin, besleme gerilimine göre ölçülmesi de imkansızdır (oran her zaman aynı olacaktır). Bu nedenle, dahili referans voltajı veya Vbg (Bandgap referans voltajı) ile ilgili voltajı belirleyeceğiz. 1,1 V'dur. Şimdi akümüzün voltaj bölücüsünü hesaplamamız gerekiyor, böylece maksimum şarjda (4,2 V) bölücünün (1,1 V) olması gerekir. Formüle göre hesaplayabilirsiniz:



Veya kullanın

R1'in yüz değeri 10 kOhm'dur. Daha sonra R2, 3.3 KOhm standart değerlerinden en yakın olan 3.55 KOhm'u alır ve alırız. Ölçümler dahili voltaj ve GND arasında yapılır, böylece 3.3 KΩ direnç eksi lehimlenir ve artı 10 KΩ. Dirençleri aküye yerleştiririz, teli ayırıcıdan çekeriz.


Kısa devreyi önlemek için tüm kontakları izole ediyoruz:


Ayırıcıdan gelen tel PB4'e bağlanacaktır.

Adım 5 Sıcaklığı ölçün.
Saatin mükemmel bir tamamlayıcısı, oda sıcaklığının ölçümüdür. DS18B20 entegre sıcaklık sensörünü kullanacağız. Bununla çalışmak için sadece bir kablo gereklidir (Attiny 85 kullanırken çok kullanışlıdır). Tüm ölçümler kendi başına yapılır, merkezi kontrol cihazı rahatsız etmez (Attiny 85 ayrıca mükemmel bir belleğe sahiptir ve çok azdır), sadece komut vermemiz ve sonuç almamız gerekir. Bu sensörü bağlamak için birkaç farklı şema var, bence bu durum için en uygun seçeneği kullanacağız.Harici güç ve 4.7 kΩ direnç kullanarak:


Küçük telleri lehimleyin ve konektörleri sabitleyin


DQ sensöründen gelen tel PB 3'e bağlanır.

Adım 6 Düğme.
Çok az sonucumuz var, ancak saatler için birçok gereksinim var. Zamanı ayarlamak için bir düğme kullanacağız. Daha fazlasına güvenemeyiz. Kabloları düğmeye lehimleyin, ondan bir kontak GND'ye. Sıcaklık sensörümüzle birleştirin:


Düğmeden ikinci kontak PB 1'e bağlanır.

Adım 7 Geliştirme Ortamının Hazırlanması
Eskiz ile daha fazla çalışma, düzenleme ve doldurma için Arduino IDE'ye ihtiyacımız var. Bu programı şuradan indir:

Şimdi Çarşamba günü Attiny 85 için destek ekleyin. Arduion IDE'yi açın ve yol boyunca gidin:
Dosya - Ayarlar - "Ek Anakart Yöneticisi URL'leri" bağlantıyı ekleyin:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Tamam'ı tıklayın.
Şuraya git:
Araçlar - Yönetim Kurulu - Yönetim Kurulu Yöneticisi Attiny'ye girip “David A. Mellis'e katılım” ı tıklayın. "Yükle" ye tıklayın ve kahveyi bırakın.
Ve şimdi kütüphaneler hakkında. İki taneye ihtiyaçları var:

Oled ekranla çalışmak için

Sıcaklık sensörü kontrolü

Bu arşivleri indirdikten sonra, Arduino IDE'nin kurulum yoluna giderek bulmak kolay olan “kütüphaneler” klasörüne açın.

Adım 8 Programcı.
Digispark Attiny 85 harika bir tahta. Bir USB bilgisayara bağlanmak için tasarlanmıştır. Ve bunun üzerinden programlanabilir. Ancak Attiny, 2 KB 8 KB bellek alan bir yazılım USB kullanıyor. Bu bize uymuyor ve bu nedenle ISS arabirimi üzerinden Attiny 85'i yanıp söneceğiz. Ve burada bir ISS programcısına ihtiyacımız var. Orada değilse - önemli değil. Arduino'yu ele alalım. Benim durumumda, Arduino UNO:


Arduino hattından uyumlu başka bir kart alabilirsiniz. Bilgisayara bağlanıyor, Arduino IDE'yi açıyoruz, Arduino kartının bağlı olduğu com portunu seçiyoruz, örneklerde çizimi açıyoruz, Arduino ISS ve panoya dolduruyoruz. Ayrıca, Attiny'ye hızlı bir şekilde bağlanmak için bir kabloya ihtiyacımız var.


Bağlantı aşağıdaki gibidir:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

Attiny beslenme hakkında unutma.

Adım 9 Krokiyi düzenleyin ve doldurun.

Kroki indir

Doldurmadan önce çizimi düzenlemelisiniz.
Ds18b20 entegre sensörü, daha önce bahsedildiği gibi, One Wire protokolünü kullanarak çalışır. Her sensörün kendine özgü 64 bit adresi vardır. Sensörünüzün adresini bulmanız ve bir taslakta yazmanız gerekir. Arduino IDE'yi açın, yolu izleyin:
Dosya - Örnekler - Dallas Sıcaklığı - OneWireSearch.

Çizimi Arduino'ya doldurun. Bağlantı noktası monitörünü açın. Bağlı tüm sensörlerin adreslerini ve sıcaklık değerlerini görmelisiniz. Adresinizi yazıyoruz. Eskizimi aç ve adresi satırda kendi adresime değiştir:

bayt adresi [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Saatin ilerlemesini ayarlamak için aşağıdaki sabiti kullanın:

eğer (micros () - prevmicros> [b] 497000 [/ b]) 


Bu değer büyüdükçe saat yavaşlar.
Kontrol için, saniye ekranda görüntülenir:

OzOled.printNumber ((uzun) sek, 0, 7); // hassas ayar için çıkış saniyesi 


Saniyeyi kaldırmak için bu satırı yorumlayın.
Şimdi programcıyı veya Arduino'yu programcı olarak bağlarız, com-port'u seçer, Araçlar menüsünden kartımızı seçer ve aşağıdaki parametreleri ayarlarız:
Yönetim Kurulu: Attiny 25/45/85
İşlemci: Attiny 85
Saat: dahili 16
Ardından aynı menüden seçin:
Araçlar - Programcı - "ISP olarak Arduino".
Ve son olarak:
Çizim - Programcı aracılığıyla indirme

Adım 10 Son montaj ve lansman.
Programlayıcıyı kapatın ve sensörü, gücü ve düğmeyi bağlayın:


Saatin tam akışı yapılandırılıncaya kadar kasayı lastik kauçuğu kullanarak kapatabilirsiniz. Bittiğinde, yapıştırabilirsiniz.


İzleme puanı
Toplam oy sayısı: 13
10
10
10

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın
9 açıklama
Yazar
Fikir harika. Bununla ilgili bir şey yaptım. Sadece parmak uçlarımda 5 kΩ değişkeni vardı. Alt omuza dahil ettim. Ve sonra en uygun kalıcı ile değiştirildi. Ancak üretim talimatlarında, bence, yazmak gereksizdir. Bu ölçümleri neden birkaç kez yapmıyorsunuz?
Sıkıcı ve uzun denemeler hakkında yazma gereği görmedim.
Uzun ve sıkıcı bir şey yapmaya gerek yok. Alt koldaki direnci (2.7 ... 3) kOhm'u, sırasıyla 1 kOhm düzeltici ile açın. Ayarlanabilir bir güç kaynağından, kontrollü voltajın aşırı değerlerini girişe girersiniz, çalışma noktasını ayarlarsınız, daha sonra, istenirse, düzelticinin direncini ölçebilir ve sabit bir dirençle değiştirebilirsiniz.
Yazar
8 MHz frekansında, saati başlatmaya ve buna bağlı olarak kursun doğruluğunu ölçmeye çalışmadım. Tüm ölçümler içeriden 16'da yapılmıştır. Ay hakkında da söyleyemem. Şimdiye kadar, kapatmadan en fazla bir hafta çalıştılar. Deneyler ve geliştirmeler halen devam etmektedir.
Yazar
Gerilim bölücü ile ilgili olarak, gerçekten çok fazla nüans ve hata var. Ve dirençlerin direncinin dağılması ve referans voltajın dağılması. Her şeyi pratikte denedim. 3,6 k'lık bir direnç kullanırken, 3,9 V akü voltajında ​​bile, Attiny analog bağlantı noktası 1023 gösterir (% 100'e dönüştürüldüğünde). 3,3 kΩ direnç kullandığınızda, analog bağlantı noktası değeri pilin 4,1 V değerinde bile azalır. Bu nedenle, tanıklığın daha doğru olduğunu yazdım, sadece sıkıcı ve uzun denemeler hakkında yazma ihtiyacını görmedim.
Yazar
Saati bir haftalığına ayarladım, ilerlemesini her gün veya daha sık ayarladım. Sonuç olarak, 497343 değerinde, haftada yaklaşık 10 saniye acele ederler.
Frekans azaltılabilir. Parametreyi değiştirmedim, gerek yoktu
Peki, 8 MHz RC saatin doğruluğu nedir? Aylık mı?
ve neden Saat: dahili 16?
Daha azını seçmek daha iyidir, o zaman okumalar daha doğrudur.
Daha kesin olarak değil, sadece giriş voltajı referanstan daha az olmalıdır. Buna ek olarak, muhakemenizde parametrelerin yayılmasını kesinlikle dikkate almazsınız: dirençler, büyük olasılıkla, yüzde beşiniz olacak, Vbg = (1.0 ... 1.2) V. 3,3 kOhm çok büyük olabilir, ve belki de 3.6 kOhm olacak.
Yazar
3.6 çıkış voltajı kullanırsanız 1.11 alırız. Çok fazla olmasa da, daha fazla referans gerilimi. 3.3 - 1.04 kullanırken. Daha azını seçmek daha iyidir, o zaman okumalar daha doğrudur.
Ve Oh, haklısın, sadece bu küçük ayrıntıya dikkat etmedim.
Kasayı yapıştırdıktan sonra, şarj soketine ve düğmelerine erişim, alt kapağı keserek veya sadece yapıştırarak saatin altından elde edilebilir.
Daha sonra R2, 3.3 KOhm standart değerlerinden en yakın olan 3.55 KOhm'u alıyor,
Hiç de değil. Standart aralıktaki en yakın E24 3,6 kOhm'dur. Ve bu arada, "KOhm değil," KOhm.
Saatin tam akışı yapılandırılıncaya kadar kasayı lastik kauçuğu kullanarak kapatabilirsiniz. Bittiğinde, yapıştırabilirsiniz.
Pili nasıl şarj edeceğiz?
Ve düğmeyi nasıl değiştirebilirim?

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...