» Elektronica » Arduino »Oled horloges op Attiny85

Oled horloges op Attiny85

Goedemiddag en weer ben ik met mijn speelgoed. Vandaag presenteer ik je instructies voor het maken van kleine maar schattige horloges met een kamertemperatuursensor.
Oled horloges op Attiny85


Lijst van wat we nodig hebben:
- Digispark Attiny85
- Oled-display 128x64 I2C
- ds18b20 temperatuursensor
- Weerstand 4.7 Kom 0.25 W
- ISP programmeur of Arduino Digispark Attiny85 firmwarekaart
- Plastic tablet met paperclip of vel dun plastic
- draden
- Dupont 2,54 mm “vrouwelijke” connectoren
- Knopen 2 stuks.
- Kleine printplaat of kleine bekleding
- soldeerbout
- Soldeer, hars
- schaar
- administratief mes
- Heet lijmpistool
- Hete lijm

Stap 1 Componenten selecteren.
Als hoofdcontroller zullen we Digispark Attiny85 gebruiken. Er zijn verschillende soorten. We hebben een bord nodig met een micro-USB-connector. De rest past niet in de horlogekast.

Om weer te geven hebben we een Oled 128x64 I2C-beeldscherm nodig. Ze zijn er in verschillende kleuren: wit, blauw, blauw met geel. Ik trek je aandacht! Het concept van "tweekleurig" in de beschrijving of titel van dit scherm betekent een strook van één kleur bovenaan het scherm en de tweede kleur het hele resterende scherm, en niet de mogelijkheid om met dit scherm twee kleuren weer te geven! Alle schermen van dit type geven slechts één kleur weer, of bovenaan een strook van één kleur onderaan - een andere. Zoals bijvoorbeeld degene die ik ga gebruiken. De balk hierboven is geel; de rest van het scherm is blauw. U kunt elke gewenste kleur kiezen.
We hebben ook de geïntegreerde temperatuursensor DS18B20 nodig. Het is niet toevallig gekozen. Ten eerste communiceert de DS18B20 met de microcontroller via een enkeldraads communicatielijn met behulp van het 1-draads interfaceprotocol. In ons geval is dit belangrijk, omdat de conclusies van Attiny85 zonder sensor weinig zijn. Ten tweede is deze sensor een cijfer, dat wil zeggen dat hij alle metingen zelf uitvoert en eenvoudig temperatuurgegevens verzendt zonder de computerbronnen van Attiny85 te besteden.

Wat de rest betreft, ik denk dat er geen vragen zullen zijn, dus laten we doorgaan met het vervaardigen van de zaak.

Stap 2 Montage van de behuizing.
De horlogekast wordt gemaakt van dun plastic. Ik had een plastic tablet met een paperclip op mijn handen. Het is sterk genoeg om zijn vorm te behouden en tegelijkertijd kan het worden gesneden met een gewone schaar en een kantoormes. Hij kwam perfect naar voren.Als het niet voorhanden is, kunt u een tablet kopen in een kantoorwinkel of het juiste plastic vinden om de tablet te vervangen. We maken markeringen op plastic volgens het schema:


Knip alle ononderbroken lijnen uit. Gestippeld - lichtjes gesneden met een administratief mes. Stippellijnen zijn vouwlijnen. Zoals je al begreep, is dit de gebruikelijke kubuslay-out. Vervolgens moet u de draden aan het scherm solderen, het is het beste om veelkleurig te nemen en op te schrijven wat tot wat leidt. Lijm het scherm op de hotmelt lijm in het midden, zodat de voorkant er vanaf de achterkant uit komt. Zoals u kunt zien, hebben we de aanduidingen voor de schermpen gesloten. Daarom was het nodig om ze op te schrijven. Ik gaf het mes een beetje over en sneed daarbij het onderste deel van het lichaam af. Daar is niets mis mee, alles kan gelijmd worden. Maar het is beter om mijn fouten niet te herhalen.



Het resultaat zou als volgt moeten zijn:


Op deze zaak is klaar. U kunt de achterklep nog steeds uit hetzelfde plastic snijden, maar dit is optioneel.

Stap 3 We solderen.
Onze koffer is klein en we moeten daar veel proppen. Daarom nemen we een stuk van de printplaat niet groter dan 2,8 x 2,8 mm en solderen in twee knoppen, een ds18b20 sensor, een weerstand en meerdere contacten. Volgens het volgende schema:


Het is niet nodig om draden rechtstreeks aan Attiny te solderen, omdat het voor firmware nodig is om alles los te koppelen. Het resultaat zou er ongeveer zo uit moeten zien:



Knoppen zijn nodig om de tijd in te stellen. De stroom kan worden afgenomen via de USB-poort van de computer. De plus en min combineren, respectievelijk:


Als u het zonder kabels wilt doen, moet u een kleine lithium-ionbatterij vinden. Hier is er een, bijvoorbeeld:


Deze batterij past in de koffer. Het is alleen nodig conclusies te trekken over de batterijlading.

Stap 4 De programmeur voorbereiden.
Digispark Attiny85 kan worden geprogrammeerd via de micro-USB-connector op het bord, met de Arduino IDE als programmeeromgeving. Maar tegelijkertijd moet je 2 KB geheugen opofferen voor de bootloader. Attiny 85 heeft in totaal 8 KB Flash. Mijn sketch past niet bij de bootloader, dus ik moet programmeren via de ISP-programmeur. Ik heb zo'n programmeur niet, maar er is een Arduino Uno-bord, dat ik als programmeur zal gebruiken. Als je een ISB-programmeur hebt, kun je dit item overslaan. Open de Arduino IDE en vul onze schets genaamd ArduinoISP in onze Arduino Uno in. Je kunt het zo vinden Bestand - Voorbeelden - Arduino ISP. De schets begint met een hint over hoe je de Arduino op de programmeerbare controller kunt aansluiten. In plaats van Arduino Uno, kan er een ander Arduino-bord zijn.
// 10: slave reset
// 11: MOSI
// 12: MISO
// 13: SCK


Verbindingsschema met Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Stap 5 De programmeeromgeving voorbereiden.
Om de firmware te bewerken en de schets in Attiny 85 te vullen, moet je niet alleen de programmeur voorbereiden, maar ook de programmeeromgeving zelf. Installeer hiervoor de Arduino IDE vanaf de officiële Arduino.cc-website en installeer ook de Attiny-add-on voor microcontrollers via de Boards Manager.

Start de Arduino IDE en vervolgens Bestand - Instellingen - plak in het veld Extra Boards Manager URL's de link:

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


klik op OK (u kunt in dit veld verschillende links invoeren, gescheiden door een komma). Volgende Tools - Board - Boards Manager in het filterveld, voer Attiny in en klik op "attiny door David A. Mellis". Klik op Installeren en wacht tot de download is voltooid. Selecteer nu in het menu Extra:
Bestuur - Attiny 25/45/85
Processor - Attiny 85
Klok - intern 16
en selecteer de seriële poort waarop de ISP-programmeur of Arduino is aangesloten als de programmeur.
Ik heb veel verschillende bibliotheken geprobeerd om met het scherm te werken. Naar mijn mening het handigst en het werken aan Attiny85: TinyOzOLED.
tinyozoled-master.rar [15,99 Kb] (downloads: 477)


Een temperatuursensor heeft de OneWire-bibliotheek nodig.
onewire.rar [16.75 Kb] (downloads: 263)


Installeer deze twee bibliotheken. U kunt bibliotheken van derden rechtstreeks in de programmeeromgeving installeren. Selecteer, zonder de gedownloade archieven uit te pakken, in de Arduino IDE het menu Sketch - Connect Library. Selecteer helemaal bovenaan de vervolgkeuzelijst het item .Zip-bibliotheek toevoegen. Selecteer in het dialoogvenster dat verschijnt de bibliotheek die u wilt toevoegen. Open het menu Sketch - Connect Library opnieuw. Helemaal onderaan de vervolgkeuzelijst zou u een nieuwe bibliotheek moeten zien. Nu kan de bibliotheek worden gebruikt in programma's. Vergeet na dit alles niet om de Arduino IDE opnieuw op te starten.Als dat niet helpt, pak dan de archieven uit in de map "libraries" in de map met de Arduino IDE geïnstalleerd.

Stap 6 Bewerk en vul de schets.
De temperatuursensor werkt volgens het One Wire protocol en heeft voor elk apparaat een uniek adres - een 64-bit code. Attiny-bronnen zijn niet genoeg om elke keer naar deze code te zoeken. Daarom moet u eerst de sensor op een Arduino-bord aansluiten, vul de schets in het menu Bestand - Voorbeelden - Dallas-temperatuur - OneWireSearch in. Voer vervolgens Tools - Port Monitor uit. Arduino zou onze sensor moeten vinden, het adres en de huidige temperatuurmetingen moeten schrijven. We kopiëren of noteren gewoon het adres van onze sensor. Open de schets Attiny85_Oled_SPI_Term_2, zoek de regel:

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


We schrijven het adres van uw sensor tussen accolades en vervangen het adres van mijn sensor. Verbind daarna Attiny met de programmeur of Arduino als programmeur (dit wordt beschreven in stap 4) en vul de schets in. Rest het nog om de programmeur los te koppelen en alles volgens het schema in 3 stappen aan te sluiten. De montage blijkt zoiets als dit:


Het scherm is klein, het is onmogelijk om zowel tijd als temperatuur in te stellen zodat het zichtbaar is. Daarom verandert de klok de tijd met elke 10 seconden een temperatuurmeting.
attiny85_oled_spi_term_2.rar [2.33 Kb] (downloads: 574)

Attiny 85
Totaal aantal stemmen: 118
9.3
10
8.7

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten
13 opmerkingen
Vseslav
Bedankt, bedankt!
De auteur
Goedenavond Ik heb de bibliotheek van Digispart niet gebruikt. Ze hebben een te grote bootloader, daarbij paste de schets van de klok niet. Ik heb de TinyOzOLED-bibliotheek gebruikt. Ze heeft geen Russisch. Over het algemeen is het met Attiny 85 moeilijk, er is te weinig geheugen.
Vseslav
Goed doordacht en gedaan, een klein minpuntje - de inscripties in Aglitsky. Kunnen ze gewoon ingewisseld worden voor Russisch, of is het voor Digispark moeilijk om dit te doen?
De auteur
Goedemiddag Realtime klokken nemen voldoende ruimte in beslag, ze passen niet in deze koffer.
Hmm .. waarom zou je geen real-time klok plaatsen in plaats van een temperatuursensor?
De auteur
Een andere tip, een LED is verbonden met de Digispar Attiny 85 P1, als je deze pin gebruikt, overweeg dan de aanwezigheid ervan. Ik noemde deze diode op mijn bord, omdat het naar mijn mening alleen interfereert.
De auteur
Goedemiddag Het is niet nodig om een ​​pull-up met een weerstand te doen, omdat de in Attiny ingebouwde ophanging in de schets is opgenomen. Haal je jarretel weg en probeer het opnieuw.
Je kunt ook een andere schets van mijn andere horloges proberen, ze hebben dezelfde controller en hetzelfde scherm en de configuratie is gedaan met één knop:
https://nlm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gast Roman
Goedendag. Bedankt voor het idee en werk. Alleen zijn mijn handen niet zo, of ik begrijp het niet. De tijdinstelknoppen werken niet normaal. Ik heb zowel je skech als de mijne geprobeerd, in mijn enige de pin-modus van de invoerknoppen toegevoegd en door 10k tot 5V getrokken. En daarin en daarin begreep de knop niet hoe te drukken om te veranderen. Of ik loop vertraging op of er is iets mis met de knoppen, de gebruikelijke klok.
cool scherm. Maar vraatzuchtig. RAM eet veel.
Je bent een meester! knijp in zo'n tinku85.
De auteur
Je hebt gelijk, een typfout gemaakt, 2,8 x 2,8 cm
Citaat: maxim0512
Past niet meer zomaar in de koffer.
Per gebied kunt u honderd keer meer dan u had voorgesteld.
De auteur
Past niet meer zomaar in de koffer. Er zijn slechts twee knoppen, een weerstand en een temperatuursensor. Alles past gewoon.
... getrimde printplaat niet groter dan 2,8 x 2,8 mm
Dat is niet genoeg. )))

We raden je aan om te lezen:

Geef het voor de smartphone ...