» elektronikk » Arduino »Oled klokker på Attiny85

Oled klokker på Attiny85

God ettermiddag og igjen er jeg med lekene mine. I dag presenterer jeg instruksjoner for å lage små, men søte klokker med romtemperaturføler.
Oled klokker på Attiny85


Liste over hva vi trenger:
- Digispark Attiny85
- Oljet skjerm 128x64 I2C
- ds18b20 temperatursensor
- Motstand 4.7 Kom 0,25 W
- ISP-programmerer eller Arduino Digispark Attiny85 firmware board
- Plasttablett med binders eller ark tynn plast
- ledninger
- Dupont 2,54 mm “kvinnelige” kontakter
- Knapper 2 stk.
- Lite kretskort eller liten trim
- loddejern
- Lodd, kolofonium
- saks
- geistlig kniv
- Varm limpistol
- Varmt lim

Trinn 1 Valg av komponenter.
Som hovedkontroller vil vi bruke Digispark Attiny85. Det er flere typer av dem. Vi trenger et brett med en micro USB-kontakt. Resten vil ikke passe i klokkesaken.

For å vise trenger vi en Oled 128x64 I2C-skjerm. De kommer i forskjellige farger: hvit, blå, blå med gul. Jeg trekker oppmerksomheten! Begrepet "tofarger" i beskrivelsen eller tittelen på dette skjermbildet betyr en stripe med en farge øverst på skjermen og den andre fargen på hele den gjenværende skjermen, og ikke muligheten til å vise to farger med denne skjermen! Alle skjermer av denne typen viser bare en farge, eller øverst en stripe med en farge nederst - en annen. Som for eksempel den jeg skal bruke. Linjen over er gul, resten av skjermen er blå. Du kan velge hvilken som helst farge du liker.
Vi trenger også den integrerte temperatursensoren DS18B20. Det ble ikke valgt ved en tilfeldighet. Først kommuniserer DS18B20 med mikrokontrolleren via en entrådig kommunikasjonslinje ved bruk av 1-Wire grensesnittprotokoll. I vårt tilfelle er dette viktig, siden konklusjonene til Attiny85 uten sensor er få. For det andre er denne sensoren et siffer, det vil si at den tar alle målingene i seg selv og overfører ganske enkelt temperaturdata uten å bruke databehandlingsressursene til Attiny85.

Når det gjelder resten, tror jeg det ikke vil være noen spørsmål, så la oss gå videre til å produsere saken.

Trinn 2 Montering av huset.
Uretui vil være laget av tynn plast. Jeg hadde en plastbrett med binders på hendene. Den er tøff nok til å holde formen, og samtidig kan den klippes med vanlig saks og en kontorkniv. Han kom perfekt opp.Hvis det ikke er for hånden, kan du kjøpe et nettbrett i en kontorrekvisita butikk eller finne riktig plast for å erstatte nettbrettet. Vi lager markeringer på plast i henhold til ordningen:


Skjær ut alle de solide linjene. Prikket - litt kuttet med en geistlig kniv. Stiplede linjer er brettelinjer. Som du allerede har forstått, er dette den vanlige terningen. Deretter må du lodde ledningene til skjermen, det er best å ta flerfarget og skrive ned som fører til hva. Lim skjermen på smeltlimet i midten, slik at frontsiden kommer ut fra baksiden. Som du kan se, har vi lukket skjermstiften. Derfor var det nødvendig å skrive dem ned. Jeg overleverte litt til kniven, og klippet derved av den nedre delen av kroppen. Det er ikke noe galt med det, alt kan limes. Men det er bedre å ikke gjenta feilene mine.



Resultatet skal være slik:


På denne saken er klar. Du kan fremdeles kutte bakdekselet av samme plast, men dette er valgfritt.

Trinn 3 Vi lodder.
Vår sak er liten, og vi må stappe mye der. Derfor tar vi et stykke av kretskortet som ikke er større enn 2,8 x 2,8 mm og lodder i to knapper, en ds18b20-sensor, en motstand og flere kontakter. I henhold til følgende ordning:


Det er ikke nødvendig å lodde ledninger direkte til Attiny, siden det er nødvendig å koble fra alt for firmware. Resultatet skal være noe som dette:



Knapper er nødvendige for å stille inn klokkeslettet. Strøm kan tas fra USB-porten på datamaskinen. Kombinere henholdsvis pluss og minus:


Hvis du vil klare deg uten ledninger, må du finne et lite litium-ion-batteri. Her er en, for eksempel:


Dette batteriet passer inn i saken. Det er bare nødvendig å gi konklusjoner for batteriladingen.

Trinn 4 Forberede programmereren.
Digispark Attiny85 kan programmeres gjennom mikro-USB-kontakten på brettet, og bruker Arduino IDE som programmeringsmiljø. Men samtidig må du ofre 2 KB minne for startlasteren. Attiny 85 har totalt 8 KB Flash. Skissen min passer ikke med bootloader, så jeg trenger å programmere gjennom ISP-programmereren. Jeg har ikke en slik programmerer, men det er et Arduino Uno-brett, som jeg vil bruke som programmerer. Hvis du har en ISB-programmerer, kan du hoppe over dette elementet. Åpne Arduino IDE og fyll ut skissen vår som heter ArduinoISP i vår Arduino Uno. Du kan finne den slik fil - Eksempler - Arduino ISP. Skissen starter med et hint om hvordan du kobler Arduino til den programmerbare kontrolleren. I stedet for Arduino Uno, kan det være noe annet Arduino-styre.
// 10: tilbakestilling av slave
// 11: MOSI
// 12: MISO
// 13: SCK


Tilkoblingsskjema til Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Trinn 5 Forberede programmeringsmiljøet.
For å redigere firmware og fylle skissen i Attiny 85, må du forberede ikke bare programmereren, men også selve programmeringsmiljøet. For å gjøre dette, installer Arduino IDE fra det offisielle nettstedet Arduino.cc, og installer også Attiny-tillegget for mikrokontrollere gjennom Boards Manager.

Start Arduino IDE, deretter Fil - Innstillinger - i feltet URL for tilleggsforvaltningsadministratorer, lim inn lenken:

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


klikk på OK (du kan legge inn flere lenker atskilt med komma i dette feltet). Neste verktøy - Board - Boards Manager i filterfeltet, skriv inn Attiny og klikk på "attiny by David A. Mellis". Klikk på Installer og vent til nedlastingen er fullført. I Verktøy-menyen velger du:
Styret - Attiny 25/45/85
Prosessor - Attiny 85
Klokke - intern 16
og velg den serielle porten som ISP-programmereren eller Arduino er koblet til som programmereren.
Jeg prøvde mange forskjellige biblioteker for å jobbe med skjermen. Etter min mening den mest praktiske og arbeider på Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (nedlastinger: 477)


En temperatursensor trenger OneWire-biblioteket.
onewire.rar [16,75 Kb] (nedlastinger: 263)


Installer disse to bibliotekene. Du kan installere tredjepartsbiblioteker direkte i programmeringsmiljøet. Uten å pakke ut de nedlastede arkivene, i Arduino IDE, velg menyen Sketch - Connect Library. Øverst på rullegardinlisten velger du Legg til .Zip-biblioteket. I biblioteket som vises, velger du biblioteket du vil legge til. Åpne Sketch - Connect Library-menyen igjen. Helt nederst i nedtrekkslisten skal du se et nytt bibliotek. Nå kan biblioteket brukes i programmer. Ikke glem å starte Arduino IDE på nytt etter alt dette.Hvis det ikke hjelper, bare pakker du arkivene i mappen "biblioteker" som ligger i mappen med Arduino IDE installert.

Trinn 6 Rediger og fyll skissen.
Temperatursensoren fungerer i henhold til One Wire-protokollen og har en unik adresse for hver enhet - en 64-biters kode. Rettferdige ressurser er ikke nok til å se etter denne koden hver gang. Derfor må du først koble sensoren til et hvilket som helst Arduino-kort, fylle ut skissen som ligger i filen - Eksempler - Dallas temperatur - OneWireSearch-menyen. Kjør deretter Tools - Port Monitor. Arduino skal finne sensoren vår, skrive sin adresse og gjeldende temperaturavlesninger. Vi kopierer eller skriver ganske enkelt ned adressen til sensoren vår. Åpne skissen Attiny85_Oled_SPI_Term_2, se etter linjen:

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


Vi skriver ned adressen til sensoren din mellom seler, og erstatter adressen til sensoren min. Etter det, koble Attiny til programmereren eller Arduino som programmerer (dette er beskrevet i trinn 4) og fyll ut skissen. Det gjenstår å koble programmereren og koble alt i henhold til skjemaet i tre trinn. Forsamlingen viser seg slik:


Skjermen er liten, det er umulig å sette både tid og temperatur slik at den er synlig. Derfor endrer klokken tiden med en temperaturavlesning hvert 10. sekund.
attiny85_oled_spi_term_2.rar [2,33 Kb] (nedlastinger: 574)

Attiny 85
Totalt velgere: 118
9.3
10
8.7

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
13 kommentar
Vseslav
Takk, takk!
Forfatteren
God kveld Jeg brukte ikke biblioteket fra Digispart. De har en for stor startlaster, sammen med den passet ikke skissen til klokken. Jeg brukte TinyOzOLED-biblioteket. Hun har ikke russisk. Generelt, med Attiny 85 er det vanskelig, det er for lite minne.
Vseslav
Godt gjennomtenkt og gjort, en mindre feil - inskripsjonene i Aglitsky. Kan de ganske enkelt byttes mot russisk, eller er det vanskelig for Digispark å gjøre dette?
Forfatteren
God ettermiddag Klokker i sanntid tar nok plass, de vil ikke passe inn i denne saken.
Hmm .. hvorfor ikke sette en sanntidsklokke i stedet for en temperatursensor?
Forfatteren
Et annet tips, en LED er koblet til Digispar Attiny 85 P1, hvis du bruker denne pinnen, bør du vurdere dens tilstedeværelse. Jeg kalte denne dioden på brettet mitt, siden det etter min mening bare forstyrrer.
Forfatteren
God ettermiddag Det er ikke nødvendig å gjøre en pull-up med en motstand, ettersom fjæringen innebygd i Attiny er inkludert i skissen. Ta bort brystet og prøv igjen.
Du kan også prøve en annen skisse fra mine andre klokker, de har samme kontroller og skjerm, og konfigurasjonen er utført med en knapp:
https://nom.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gjest Roman
God dag. Takk for ideen og arbeidet. Bare begge hendene mine er ikke sånn, eller jeg forstår ikke. Tidsinnstillingsknappene fungerer ikke normalt. Jeg prøvde både skech og mine, i det eneste jeg la pinnemodus på inngangsknappene, og dro gjennom 10k til 5V. Og i det og ved at knappen ikke forsto hvordan du skulle trykke for å endre. Eller jeg får forsinkelser eller noe er galt med knappene, den vanlige klokken.
kul skjerm. Men flaut. RAM spiser mye.
Du er en mester! klem inn i en tinku85 slikt.
Forfatteren
Du har rett, laget en skrivefeil, 2,8 x 2,8 cm
Sitat: maxim0512
Passer ikke lenger bare inn i saken.
Etter område kan du hundre ganger mer enn du foreslo.
Forfatteren
Passer ikke lenger bare inn i saken. Det er bare to knapper, en motstand og en temperatursensor. Alt passer bare.
... trimmet kretskort ikke større enn 2,8 x 2,8 mm
Det vil ikke være nok. ))

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...