» elektronik » Arduino »Attiny85'te Oled saatler

Attiny85 üzerinde Oled saatler

İyi günler ve yine oyuncaklarla birlikteyim. Bugün size bir oda sıcaklık sensörü ile küçük ama sevimli saatler yapma talimatlarını sunuyoruz.
Attiny85 üzerinde Oled saatler


İhtiyacımız olanların listesi:
- Digispark Avlusu85
- Oled ekran 128x64 I2C
- ds18b20 sıcaklık sensörü
- Direnç 4.7 Kom 0.25 W
- ISS programcısı veya Arduino Digispark Attiny85 bellenim kartı
- Ataş veya ince plastik levha ile plastik tablet
- teller
- Dupont 2,54 mm “dişi” konektörler
- Düğmeler 2 adet.
- Küçük devre kartı veya küçük trim
- havya
- Lehim, reçine
- makas
- büro bıçağı
- Sıcak tutkal tabancası
- Sıcak tutkal

Adım 1 Bileşenleri Seçme.
Ana kontrolör olarak Digispark Attiny85'i kullanacağız. Bunların birkaç türü vardır. Mikro USB konektörlü bir panoya ihtiyacımız var. Gerisi saat çantasına sığmayacak.

Görüntülemek için Oled 128x64 I2C ekrana ihtiyacımız var. Farklı renklerde gelirler: beyaz, mavi, sarı ile mavi. Dikkatinizi çekiyorum! Bu ekranın açıklamasındaki veya başlığındaki “iki renkli” terimi, ekranın üst kısmında bir renk şeridi ve ikinci ekranın geri kalan ekranının tamamı anlamına gelir ve bu ekranla iki renk gösterme yeteneği anlamına gelmez! Bu türdeki tüm ekranlarda sadece bir renk veya üstte altta bir renk şeridi - diğeri görüntülenir. Mesela kullanacağım gibi. Yukarıdaki çubuk sarı, ekranın geri kalanı mavi. İstediğiniz herhangi bir rengi seçebilirsiniz.
Ayrıca DS18B20 entegre sıcaklık sensörüne de ihtiyacımız var. Şans eseri seçilmedi. İlk olarak, DS18B20, 1 Telli arayüz protokolünü kullanarak mikrodenetleyici ile tek telli bir iletişim hattı üzerinden iletişim kurar. Bizim durumumuzda, bu önemlidir, çünkü sensörsüz Attiny85'in sonuçları azdır. İkinci olarak, bu sensör bir rakamdır, yani tüm ölçümleri alır ve Attiny85'in hesaplama kaynaklarını harcamadan sıcaklık verilerini iletir.

Geri kalanlara gelince, bence soru olmayacak, bu yüzden davanın üretimine geçelim.

Adım 2 Muhafazanın montajı.
Saat kılıfı ince plastikten yapılacaktır. Ellerimde bir ataş bulunan plastik bir tabletim vardı. Şeklini koruyacak kadar serttir ve aynı zamanda sıradan makas ve bir ofis bıçağı ile kesilebilir. Mükemmel geldi.Elinizde değilse, bir ofis malzemeleri mağazasından bir tablet satın alabilir veya tableti değiştirmek için doğru plastiği bulabilirsiniz. Şemaya göre plastik üzerinde işaretler yapıyoruz:


Tüm düz çizgileri kesin. Noktalı - büro bıçağıyla hafifçe kesin. Noktalı çizgiler katlama çizgileridir. Zaten anladığınız gibi, bu normal küp düzenidir. Daha sonra, kabloları ekrana lehimlemeniz gerekir, çok renkli almak ve neye yol açan yazmak en iyisidir. Ekranı ortada sıcak eriyik yapışkan üzerine yapıştırın, böylece ön taraf arkadan çıkar. Gördüğünüz gibi, ekran pimi atamalarını kapattık. Bu nedenle, bunları yazmak gerekiyordu. Bıçağı hafifçe uzattım ve böylece vücudun alt kısmını kestim. Bunda yanlış bir şey yok, her şey yapıştırılabilir. Ama hatalarımı tekrarlamamak daha iyi.



Sonuç şöyle olmalıdır:


Bu durumda hazır. Arka kapağı yine de aynı plastikten kesebilirsiniz, ancak bu isteğe bağlıdır.

Adım 3 Biz lehim.
Bizim durumumuz küçük ve orada çok fazla tıkmak zorundayız. Bu nedenle, devre kartının 2.8 x 2.8 mm'den daha büyük olmayan bir parçasını ve bir ds18b20 sensörü, bir direnç ve birkaç kontakta iki düğme halinde lehim alırız. Aşağıdaki şemaya göre:


Kabloları doğrudan Attiny'ye lehimlemek gerekmez, çünkü bellenim için her şeyin bağlantısını kesmek gerekir. Sonuç böyle bir şey olmalı:



Zamanı ayarlamak için düğmelere ihtiyaç vardır. Güç, bilgisayarın USB bağlantı noktasından alınabilir. Artı ve eksi sırasıyla:


Telsiz yapmak istiyorsanız, küçük bir lityum iyon pil bulmanız gerekir. İşte bunlardan biri, örneğin:


Bu pil kasanın içine sığar. Sadece pil şarjı için sonuçlar sağlamak gerekir.

Adım 4 Programcıyı hazırlama.
Digispark Attiny85, programlama ortamı olarak Arduino IDE kullanılarak kart üzerindeki mikro USB konektörüyle programlanabilir. Ancak aynı zamanda önyükleyici için 2 KB bellek feda etmek zorundasınız. Attiny 85 toplam 8 KB Flash'a sahiptir. Eskizim önyükleyiciye uymuyor, bu yüzden ISS programcısı aracılığıyla programlamam gerekiyor. Böyle bir programcım yok, ama bir programcı olarak kullanacağım bir Arduino Uno kartı var. Bir ISB programlayıcınız varsa, bu öğeyi atlayabilirsiniz. Arduino IDE'yi açın ve ArduinoISP adlı çizimimizi Arduino Uno'muza doldurun. Bu şekilde bulabilirsiniz - Örnekler - Arduino ISP. Çizim, Arduino'nun programlanabilir kontrolöre nasıl bağlanacağına dair bir ipucu ile başlar. Arduino Uno yerine, başka bir Arduino kartı olabilir.
// 10: köle sıfırlama
// 11: MOSI
// 12: MISO
// 13: SCK


Digispark Attiny85 bağlantı şeması:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Adım 5 Programlama ortamının hazırlanması.
Ürün yazılımını düzenlemek ve çizimi Attiny 85'te doldurmak için sadece programcıyı değil, aynı zamanda programlama ortamının kendisini de hazırlamanız gerekir. Bunu yapmak için, resmi Arduino.cc web sitesinden Arduino IDE'sini kurun ve ayrıca Yönetim Kurulu Yöneticisi aracılığıyla mikrodenetleyiciler için Attiny eklentisini yükleyin.

Arduino IDE'yi başlatın, ardından Dosya - Ayarlar - Ek Anakart Yöneticisi URL'leri alanına bağlantıyı yapıştırın:

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


Tamam'ı tıklayın (bu alana virgülle ayrılmış birkaç bağlantı girebilirsiniz). Sonraki Araçlar - Pano - Pano Yöneticisi filtre alanına Attiny girin ve "attiny by David A. Mellis" i tıklayın. Yükle'yi tıklayın ve indirme işleminin bitmesini bekleyin. Şimdi Araçlar menüsünde şunları seçin:
Yönetim Kurulu - Attiny 25/45/85
İşlemci - Attiny 85
Saat - dahili 16
ve ISP programcısının veya Arduino'nun programcı olarak bağlandığı seri bağlantı noktasını seçin.
Ekranla çalışmak için birçok farklı kütüphane denedim. Bence Attiny85: TinyOzOLED üzerinde en uygun ve çalışan.
tinyozoled-master.rar [15.99 Kb] (indirmeler: 477)


Bir sıcaklık sensörü için OneWire kütüphanesi gerekir.
onewire.rar [16.75 Kb] (indirmeler: 263)


Bu iki kütüphaneyi kurun. Üçüncü taraf kitaplıkları doğrudan programlama ortamına kurabilirsiniz. İndirilen arşivleri açmadan, Arduino IDE'de Sketch - Connect Library menüsünü seçin. Açılır listenin en üstünde .Zip kitaplığı ekle öğesini seçin. Görünen iletişim kutusunda eklemek istediğiniz kitaplığı seçin. Sketch - Connect Library menüsünü tekrar açın. Açılır listenin en altında yeni bir kütüphane görmelisiniz. Artık kütüphane programlarda kullanılabilir. Tüm bunlardan sonra Arduino IDE'yi yeniden başlatmayı unutmayın.Bu işe yaramazsa, arşivleri Arduino IDE'nin yüklü olduğu klasörde bulunan “kütüphaneler” klasörüne çıkartın.

Adım 6 Taslağı düzenleyin ve doldurun.
Sıcaklık sensörü One Wire protokolüne göre çalışır ve her cihaz için benzersiz bir adrese sahiptir - 64 bit kod. Attiny kaynakları her zaman bu kodu aramak için yeterli değildir. Bu nedenle, önce sensörü herhangi bir Arduino kartına bağlamalısınız, Dosya - Örnekler - Dallas Sıcaklığı - OneWireSearch menüsünde bulunan çizimi doldurmalısınız. Ardından, Araçlar - Bağlantı Noktası İzleyicisi'ni çalıştırın. Arduino sensörünüzü bulmalı, adresini ve mevcut sıcaklık değerlerini yazmalıdır. Sensörümüzün adresini kopyalıyor veya yazıyoruz. Attiny85_Oled_SPI_Term_2 çizimini açın, satırı arayın:

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


Sensörünüzün adresini değiştirerek, sensörünüzün adresini diş telleri arasında yazıyoruz. Bundan sonra, programcı olarak Attiny'yi veya programcı olarak Arduino'ya bağlayın (bu 4. Adımda açıklanmaktadır) ve çizimi doldurun. Programlayıcının bağlantısını kesmek ve her şeyi şemaya göre 3 adımda bağlamak kalır. Montaj böyle bir şey ortaya çıkıyor:


Ekran küçük, hem zaman hem de sıcaklık koymak mümkün değil, böylece görünür. Bu nedenle, saat her 10 saniyede bir sıcaklık okumasıyla saati değiştirir.
attiny85_oled_spi_term_2.rar [2.33 Kb] (indirmeler: 574)

Attiny 85
Toplam Oylayanlar: 118
9.3
10
8.7

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
13 açıklama
Vseslav
Teşekkürler, teşekkürler!
Yazar
İyi akşamlar Digispart'ın kütüphanesini kullanmadım. Çok büyük bir bootloader var, bununla birlikte saatin taslağı sığmadı. TinyOzOLED kütüphanesini kullandım. Rusça bilmiyor. Genel olarak, Attiny 85 ile zordur, çok az hafıza vardır.
Vseslav
İyi düşünülmüş ve yapılmış, küçük bir kusur - Aglitsky'deki yazıtlar. Sadece Rusça ile takas edilebilirler mi, yoksa Digispark'ın bunu yapmak zor mu?
Yazar
İyi günler Gerçek zamanlı saatler yeterli yer kaplar, bu kasaya sığmazlar.
Hmm .. neden sıcaklık sensörü yerine gerçek zamanlı bir saat koymuyorsunuz?
Yazar
Digispar Attiny 85 P1'e başka bir uç, bir LED bağlı, bu pimi kullanırsanız, varlığını düşünün. Bu diyotu tahtaya koydum, çünkü bence sadece müdahale ediyor.
Yazar
İyi günler Attiny içine yerleştirilmiş süspansiyon taslağa dahil edildiğinden, bir dirençle bir çekme işlemine gerek yoktur. Askınızı alıp tekrar deneyin.
Diğer saatlerimden başka bir çizim de deneyebilirsiniz, aynı denetleyiciye ve ekrana sahipler ve yapılandırma tek bir düğme ile yapılır:
https://trm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Konuk Roman
İyi günler. Fikir ve çalışma için teşekkürler. Sadece ya ellerim öyle değil, ya da anlamıyorum. Zaman ayarı düğmeleri normal çalışmıyor. Skech ve benimkini denedim, giriş düğmelerinin pin modunu ekledim ve 10k ila 5V arasında çektim. Ve bu ve içinde düğme değiştirmek için nasıl basılacağını anlamadı. Ya da gecikmelerle karşılaşıyorum ya da düğmelerle ilgili bir şey yanlış, normal saat.
serin ekran. Ama obur. RAM çok yer.
Sen bir ustasın! bir tinku85 gibi sıkın.
Yazar
Haklısın, yazım hatası yaptın, 2.8 x 2.8 cm
Alıntı: maxim0512
Artık sadece kasaya sığmıyor.
Bölgeye göre, önerdiğinizden yüz kat daha fazla yapabilirsiniz.
Yazar
Artık sadece kasaya sığmıyor. Sadece iki düğme vardır, bir direnç ve bir sıcaklık sensörü. Her şey uygun.
... kesilmiş devre kartı 2,8 x 2,8 mm'den büyük değil
Bu yeterli olmayacak. ))

Okumanızı tavsiye ederiz:

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