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.