» elektronik » Arduino »Oled ure på Attiny85

Oled ure på Attiny85

God eftermiddag og igen er jeg med mit legetøj. I dag præsenterer jeg dig instruktioner til at lave små, men søde ure med en rumtemperaturføler.
Oled ure på Attiny85


Liste over hvad vi har brug for:
- Digispark Attiny85
- Oled skærm 128x64 I2C
- ds18b20 temperatursensor
- Modstand 4.7 Kom 0,25 W
- ISP-programmør eller Arduino Digispark Attiny85 firmware board
- Plasttablet med papirclips eller ark tynd plast
- ledninger
- Dupont 2,54 mm “kvindelige” stik
- Knapper 2 stk.
- Lille kredsløbskort eller lille trim
- loddejern
- Lodde, kolofonium
- saks
- præsterisk kniv
- Varm limpistol
- Varm lim

Trin 1 Valg af komponenter.
Som hovedkontroller vil vi bruge Digispark Attiny85. Der er flere typer af dem. Vi har brug for et kort med et micro USB-stik. Resten passer ikke i uret.

For at få vist, har vi brug for en Oled 128x64 I2C-skærm. De kommer i forskellige farver: hvid, blå, blå med gul. Jeg henleder din opmærksomhed! Udtrykket "tofarve" i beskrivelsen eller titlen på dette skærmbillede betyder en strimmel med en farve øverst på skærmen og den anden farve hele den resterende skærm, og ikke muligheden for at vise to farver med denne skærm! Alle skærme af denne type viser kun en farve eller øverst en strimmel med en farve i bunden - en anden. Som for eksempel den, som jeg vil bruge. Linjen ovenfor er gul; resten af ​​skærmen er blå. Du kan vælge en hvilken som helst farve, du kan lide.
Vi har også brug for den integrerede temperatursensor DS18B20. Det blev ikke valgt ved en tilfældighed. Først kommunikerer DS18B20 med mikrokontrolleren via en enkelt-tråd kommunikationslinje ved hjælp af 1-Wire-interfaceprotokollen. I vores tilfælde er dette vigtigt, da konklusionerne fra Attiny85 uden en sensor er få. For det andet er denne sensor et ciffer, det vil sige den tager alle målingerne i sig selv og overfører simpeltemperaturdata uden at bruge computerens ressourcer til Attiny85.

Hvad angår resten, tror jeg, der ikke vil være spørgsmål, så lad os gå videre til at fremstille sagen.

Trin 2 Montering af huset.
Urtasken er lavet af tynd plast. Jeg havde en plast-tablet med en papirclips på mine hænder. Det er hårdt nok til at holde sin form, og på samme tid kan det klippes med almindelig saks og en kontorkniv. Han kom perfekt op.Hvis det ikke er ved hånden, kan du købe en tablet i en kontorartikelforretning eller finde den rigtige plast til udskiftning af tabletten. Vi laver markeringer på plastik i henhold til ordningen:


Skær alle de solide linier ud. Prikede - let skåret med en klerisk kniv. Stiplede linjer er foldelinjer. Som du allerede har forstået, er dette det sædvanlige terninglayout. Dernæst skal du lodde ledningerne til skærmen, det er bedst at tage flerfarvet og skrive ned, hvilket fører til hvad. Lim skærmen på det smeltede klæbemiddel i midten, så forsiden, det kommer ud fra bagsiden. Som du kan se, har vi lukket skærmbensbetegnelserne. Derfor var det nødvendigt at nedskrive dem. Jeg overleverede let til kniven og skar derved den nederste del af kroppen af. Der er ikke noget galt med det, alt kan limes. Men det er bedre ikke at gentage mine fejl.



Resultatet skal være sådan:


I denne sag er klar. Du kan stadig skære bagcoveret ud af den samme plastik, men dette er valgfrit.

Trin 3 Vi lodder.
Vores sag er lille, og vi er nødt til at proppe meget der. Derfor tager vi et stykke af kredsløbskortet, der ikke er større end 2,8 x 2,8 mm, og lodder i to knapper, en ds18b20-sensor, en modstand og flere kontakter. I henhold til følgende ordning:


Det er ikke nødvendigt at lodde ledninger direkte til Attiny, da det er nødvendigt at afbryde alt til firmware. Resultatet skal være noget som dette:



Knapper er nødvendige for at indstille tiden. Der kan tages strøm fra computerens USB-port. Kombination af henholdsvis plus og minus:


Hvis du vil undvære ledninger, skal du finde et lille lithium-ion-batteri. Her er en, for eksempel:


Dette batteri passer ind i kabinettet. Det er kun nødvendigt at give konklusioner for batteriopladningen.

Trin 4 Forberedelse af programmereren.
Digispark Attiny85 kan programmeres via micro USB-stikket på tavlen ved hjælp af Arduino IDE som programmeringsmiljø. Men på samme tid skal du ofre 2 KB hukommelse til bootloader. Attiny 85 har i alt 8 KB Flash. Min skitse passer ikke med bootloader, så jeg er nødt til at programmere gennem ISP-programmereren. Jeg har ikke en sådan programmør, men der er et Arduino Uno-bord, som jeg vil bruge som programmerer. Hvis du har en ISB-programmør, kan du springe dette element over. Åbn Arduino IDE og udfyld vores skit kaldet ArduinoISP i vores Arduino Uno. Du kan finde det som denne fil - Eksempler - Arduino ISP. Skitsen starter med et tip om, hvordan man slutter Arduino til den programmerbare controller. I stedet for Arduino Uno kan der være et andet Arduino-bord.
// 10: nulstilling af slave
// 11: MOSI
// 12: MISO
// 13: SCK


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


Trin 5 Forberedelse af programmeringsmiljøet.
For at redigere firmwaren og udfylde skitsen i Attiny 85 skal du forberede ikke kun programmereren, men også selve programmeringsmiljøet. For at gøre dette skal du installere Arduino IDE fra det officielle Arduino.cc-websted og installere også Attiny-tilføjelsen til mikrokontrollere gennem Boards Manager.

Start Arduino IDE, derefter Fil - Indstillinger - i feltet Yderligere Boards Manager-webadresser, indsæt linket:

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


Klik på OK (du kan indtaste flere links adskilt af et komma i dette felt). Næste værktøjer - Board - Boards Manager i filterfeltet, indtast Attiny og klik på "attiny by David A. Mellis". Klik på Installer, og vent på, at downloadet er afsluttet. I menuen Funktioner skal du vælge:
Bestyrelse - Attiny 25/45/85
Processor - Attiny 85
Ur - intern 16
og vælg den serielle port, som ISP-programmereren eller Arduino er forbundet til som programmereren.
Jeg prøvede mange forskellige biblioteker til at arbejde med skærmen. Efter min mening den mest bekvemme og arbejder på Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (downloads: 477)


En temperatursensor har brug for OneWire-biblioteket.
onewire.rar [16,75 Kb] (downloads: 263)


Installer disse to biblioteker. Du kan installere tredjepartsbiblioteker direkte i programmeringsmiljøet. Uden at pakke de downloadede arkiver ud, vælg menuen Sketch - Connect Library i Arduino IDE. Øverst på rullelisten skal du vælge elementet Tilføj .Zip-bibliotek. I det dialogboks, der vises, skal du vælge det bibliotek, du vil tilføje. Åbn menuen Sketch - Connect Library igen. Helt nederst på rullelisten skal du se et nyt bibliotek. Nu kan biblioteket bruges i programmer. Glem ikke at genstarte Arduino IDE efter alt dette.Hvis det ikke hjælper, skal du blot pakke arkiverne ud i mappen "biblioteker", der findes i mappen med Arduino IDE installeret.

Trin 6 Rediger og udfyld skitsen.
Temperatursensoren fungerer i henhold til One Wire-protokollen og har en unik adresse til hver enhed - en 64-bit-kode. Små ressourcer er ikke nok til at kigge efter denne kode hver gang. Derfor skal du først tilslutte sensoren til ethvert Arduino-kort, udfyld skitsen i filen - Eksempler - Dallas-temperatur - OneWireSearch-menuen. Kør derefter Værktøjer - Portmonitor. Arduino skal finde vores sensor, skrive sin adresse og aktuelle temperaturmålinger. Vi kopierer eller blot nedskriver adressen på vores sensor. Åbn skitsen Attiny85_Oled_SPI_Term_2, kig efter linjen:

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


Vi skriver adressen på din sensor mellem seler og erstatter adressen på min sensor. Tilslut derefter Attiny til programmereren eller Arduino som en programmerer (dette er beskrevet i trin 4) og udfyld skitsen. Det gjenstår at frakoble programmereren og tilslutte alt efter skemaet i 3 trin. Samlingen viser sig sådan:


Skærmen er lille, det er umuligt at placere både tid og temperatur, så den er synlig. Derfor ændrer uret tiden med en temperaturlæsning hvert 10. sekund.
attiny85_oled_spi_term_2.rar [2.33 Kb] (downloads: 574)

Attiny 85
Samlede valg: 118
9.3
10
8.7

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
13 kommentar
Vseslav
Tak, tak!
Forfatteren
God aften Jeg brugte ikke biblioteket fra Digispart. De har en for stor bootloader, sammen med den passede urets skitse ikke. Jeg brugte TinyOzOLED-biblioteket. Hun har ikke russisk. Generelt er det med Attiny 85 svært, der er for lidt hukommelse.
Vseslav
Godt gennemtænkt og gjort, en mindre fejl - inskriptionerne i Aglitsky. Kan de ganske enkelt udveksles til russisk, eller er det vanskeligt for Digispark at gøre dette?
Forfatteren
God eftermiddag Ur i realtid tager nok plads, de passer ikke ind i denne sag.
Hmm .. hvorfor ikke sætte et realtidsur i stedet for en temperatursensor?
Forfatteren
Et andet tip, en LED er forbundet til Digispar Attiny 85 P1, hvis du bruger denne pin, skal du overveje dens tilstedeværelse. Jeg overlappede denne diode på mit tavle, da den efter min mening kun griber ind.
Forfatteren
God eftermiddag Det er ikke nødvendigt at foretage en pull-up med en modstand, da den indbyggede skitse i Attiny inkluderer en pull-up. Fjern din hænder og prøv igen.
Du kan også prøve en anden skitse fra mine andre ure, de har den samme controller og skærm, og konfigurationen udføres med en knap:
https://dam.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gæst Roman
God dag. Tak for ideen og arbejdet. Kun mine hænder er ikke sådan, eller jeg forstår det ikke. Tidsindstillingsknapperne fungerer ikke normalt. Jeg prøvede både din skech og min, i min eneste tilføjede pin mode for input knapperne, og trak gennem 10k til 5V. Og i det og i det forstod knappen ikke, hvordan man skulle trykke på for at ændre. Eller jeg kommer i forsinkelser, eller der er noget galt med knapperne, det sædvanlige ur.
cool skærm. Men uhyggelig. RAM spiser meget.
Du er en mester! klem i en tinku85 sådan.
Forfatteren
Du har ret, lavet en skrivefejl, 2,8 x 2,8 cm
Citat: maxim0512
Passer ikke længere bare ind i sagen.
Efter område kan du hundrede gange mere, end du foreslog.
Forfatteren
Passer ikke længere bare ind i sagen. Der er kun to knapper, en modstand og en temperatursensor. Alt passer bare.
... trimmet kredsløbskort højst 2,8 x 2,8 mm
Det vil ikke være nok. ))

Vi råder dig til at læse:

Giv den til smartphonen ...