» elektronik » Arduino »Oledsklockor på Attiny85

Oledda klockor på Attiny85

God eftermiddag och igen är jag med mina leksaker. Idag presenterar jag er instruktioner för att göra små men söta klockor med en rumstemperaturgivare.
Oledda klockor på Attiny85


Lista över vad vi behöver:
- Digispark Attiny85
- Oljedisplay 128x64 I2C
- ds18b20 temperatursensor
- Motstånd 4.7 Kom 0,25 W
- ISP-programmerare eller Arduino Digispark Attiny85 firmware board
- Plasttablett med pappersklämma eller ark tunn plast
- ledningar
- Dupont 2,54 mm ”kvinnliga” kontakter
- Knappar 2 st.
- Litet kretskort eller liten trim
- lödkolv
- Löd, kolofonium
- sax
- kontoristkniv
- Het limpistol
- Hett lim

Steg 1 Välja komponenter.
Som huvudkontroll kommer vi att använda Digispark Attiny85. Det finns flera typer av dem. Vi behöver ett kort med mikro-USB-kontakt. Resten passar inte i klockfodralet.

För att visa behöver vi en Oled 128x64 I2C-skärm. De finns i olika färger: vit, blå, blå med gul. Jag uppmärksammar din uppmärksamhet! Termen "tvåfärgad" i beskrivningen eller titeln på den här skärmen betyder en remsa med en färg högst upp på skärmen och den andra färgen hela återstående skärm, och inte möjligheten att visa två färger med den här skärmen! Alla skärmar av denna typ visar bara en färg, eller upptill en remsa av en färg längst ner - en annan. Som till exempel den som jag kommer att använda. Fältet ovan är gult, resten av skärmen är blå. Du kan välja vilken färg du vill.
Vi behöver också den integrerade temperatursensorn DS18B20. Det valdes inte av en slump. Först kommunicerar DS18B20 med mikrokontrollern via en en-tråds kommunikationslinje med 1-Wire-gränssnittsprotokollet. I vårt fall är detta viktigt eftersom slutsatserna från Attiny85 utan sensor är få. För det andra är den här sensorn en siffra, det vill säga att den tar alla mätningar i sig och överför helt enkelt temperaturdata utan att spendera beräkningsresurserna för Attiny85.

När det gäller resten tror jag att det inte kommer att finnas några frågor, så låt oss gå vidare till att tillverka fallet.

Steg 2 Montering av huset.
Klockfodralet är tillverkat av tunn plast. Jag hade en plasttablett med ett gem på händerna. Den är tillräckligt tuff för att hålla sin form och samtidigt kan den klippas med vanlig sax och en kontorskniv. Han kom perfekt.Om den inte är till hands kan du köpa en surfplatta i en kontorsbutik eller hitta rätt plast för att byta ut tabletten. Vi gör markeringar på plast enligt schemat:


Klipp ut alla de fasta linjerna. Prickig - något skuren med en kontoristkniv. Prickade linjer är viklinjer. Som du redan har förstått är detta den vanliga kublayouten. Därefter måste du löd trådarna till skärmen, det är bäst att ta flerfärgade och skriva ner vilket leder till vad. Limma skärmen på smältlimet i mitten så att framsidan kommer ut från baksidan. Som ni ser har vi stängt beteckningarna på skärmen. Därför var det nödvändigt att skriva ner dem. Jag överlämnade något till kniven och skar därmed bort den nedre delen av kroppen. Det är inget fel med det, allt kan limmas. Men det är bättre att inte upprepa mina misstag.



Resultatet bör vara så här:


I det här fallet är redo. Du kan fortfarande klippa bakstycket av samma plast, men detta är valfritt.

Steg 3 Vi lödar.
Vårt fall är litet, och vi måste klämma mycket där. Därför tar vi en bit av kretskortet som inte är större än 2,8 x 2,8 mm och lödar i två knappar, en ds18b20-sensor, ett motstånd och flera kontakter. Enligt följande schema:


Det är inte nödvändigt att löda trådar direkt till Attiny, eftersom det är nödvändigt att koppla bort allt för firmware. Resultatet borde vara något liknande:



Knappar behövs för att ställa in tiden. Ström kan tas från datorns USB-port. Kombinera plus respektive minus:


Om du vill klara dig utan kablar måste du hitta ett litet litiumjonbatteri. Här är en, till exempel:


Detta batteri passar inuti fodralet. Det är bara nödvändigt att tillhandahålla slutsatser för batteriladdningen.

Steg 4 Förbereda programmeraren.
Digispark Attiny85 kan programmeras via mikro-USB-anslutningen på kortet med Arduino IDE som programmeringsmiljö. Men samtidigt måste du offra 2 kB minne för bootloader. Attiny 85 har totalt 8 KB Flash. Min skiss passar inte med bootloader, så jag måste programmera genom ISP-programmeraren. Jag har inte en sådan programmerare, men det finns ett Arduino Uno-kort, som jag kommer att använda som programmerare. Om du har en ISB-programmerare kan du hoppa över det här objektet. Öppna Arduino IDE och fyll i vår skiss som heter ArduinoISP i vår Arduino Uno. Du kan hitta det som den här filen - Exempel - Arduino ISP. Skissen börjar med ett tips om hur du ansluter Arduino till den programmerbara styrenheten. I stället för Arduino Uno kan det finnas någon annan Arduino-styrelse.
// 10: slavåterställning
// 11: MOSI
// 12: MISO
// 13: SCK


Anslutningsschema till Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - Pl
D13 - P2
D10 - P5


Steg 5 Förbereda programmeringsmiljön.
För att redigera firmware och fylla skissen i Attiny 85 måste du förbereda inte bara programmeraren utan också själva programmeringsmiljön. För att göra detta installerar du Arduino IDE från den officiella webbplatsen Arduino.cc och installerar också Attiny-tillägget för mikrokontroller via Boards Manager.

Starta Arduino IDE, klicka sedan på File - Settings - i fältet Extra Boards Manager URLs, klistra in länken:

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


klicka på OK (du kan ange flera länkar separerade med komma i det här fältet). Nästa verktyg - Styrelse - Boards Manager i filterfältet, ange Attiny och klicka på "attiny av David A. Mellis". Klicka på Installera och vänta tills nedladdningen är klar. Välj nu i Verktyg-menyn:
Styrelse - Attiny 25/45/85
Processor - Attiny 85
Klocka - intern 16
och välj den seriella porten till vilken ISP-programmeraren eller Arduino är ansluten som programmeraren.
Jag försökte många olika bibliotek för att arbeta med skärmen. Enligt min mening det mest praktiska och arbetar på Attiny85: TinyOzOLED.
tinyozoled-master.rar [15,99 Kb] (nedladdningar: 477)


En temperatursensor behöver OneWire-biblioteket.
onewire.rar [16,75 Kb] (nedladdningar: 263)


Installera dessa två bibliotek. Du kan installera tredjepartsbibliotek direkt i programmeringsmiljön. Utan att packa upp de nedladdade arkiven, välj menyn Sketch - Connect Library på Arduino IDE. Högst upp i rullgardinslistan väljer du Lägg till .Zip-bibliotek. Välj det bibliotek som du vill lägga till i dialogrutan som visas. Öppna Sketch - Connect Library-menyn igen. Längst ner i listrutan bör du se ett nytt bibliotek. Nu kan biblioteket användas i program. Glöm inte att starta om Arduino IDE efter allt detta.Om det inte hjälper, packa bara upp arkiven i mappen ”bibliotek” som finns i mappen med Arduino IDE installerat.

Steg 6 Redigera och fylla skissen.
Temperaturgivaren fungerar enligt One Wire-protokollet och har en unik adress för varje enhet - en 64-bitars kod. Attiny resurser räcker inte för att leta efter den här koden varje gång. Därför måste du först ansluta sensorn till vilket Arduino-kort som helst, fylla i skissen i filen - Exempel - Dallas temperatur - OneWireSearch-menyn. Kör sedan Tools - Port Monitor. Arduino ska hitta vår sensor, skriva sin adress och aktuella temperaturavläsningar. Vi kopierar eller skriver helt enkelt adressen till vår sensor. Öppna skissen Attiny85_Oled_SPI_Term_2, leta efter raden:

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


Vi skriver ner din sensors adress mellan hängslen och ersätter adressen till min sensor. Anslut sedan Attiny till programmeraren eller Arduino som programmerare (detta beskrivs i steg 4) och fyll i skissen. Det återstår att koppla bort programmeraren och ansluta allt enligt schemat i tre steg. Församlingen visar sig något liknande:


Skärmen är liten, det är omöjligt att sätta både tid och temperatur så att den är synlig. Därför ändrar klockan tiden med en temperaturavläsning var 10: e sekund.
attiny85_oled_spi_term_2.rar [2.33 Kb] (nedladdningar: 574)

Attiny 85
Totalt antal röster: 118
9.3
10
8.7

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
13 kommentar
Vseslav
Tack, tack!
Författaren
God kväll Jag använde inte biblioteket från Digispart. De har en för stor startladdare, tillsammans med den passade inte klockans skiss. Jag använde biblioteket TinyOzOLED. Hon har inte ryska. I allmänhet är Attiny 85 svårt, det finns för lite minne.
Vseslav
Väl genomtänkt och gjort, en mindre brist - inskriptionerna i Aglitsky. Kan de helt enkelt bytas mot ryska, eller är det svårt för Digispark att göra detta?
Författaren
God eftermiddag Klockor i realtid tar tillräckligt med utrymme, de passar inte in i det här fallet.
Hmm .. varför inte sätta en realtidsklocka istället för en temperatursensor?
Författaren
Ett annat tips, en lysdiod är ansluten till Digispar Attiny 85 P1, om du använder denna stift, överväga dess närvaro. Jag dabbade den här dioden på mitt styrelse eftersom den enligt min åsikt bara stör.
Författaren
God eftermiddag Det finns ingen anledning att göra en uppdragning med ett motstånd, eftersom upphängningen inbyggd i Attiny ingår i skissen. Ta bort din hängslen och försök igen.
Du kan också prova en annan skiss från mina andra klockor, de har samma styrenhet och skärm, och konfigurationen görs med en knapp:
https://svm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gäst Roman
Bra dag. Tack för idén och arbetet. Bara antingen mina händer är inte så, eller så förstår jag inte. Tidsinställningsknapparna fungerar inte normalt. Jag försökte både din skech och min, i min enda lägger jag till pin-läget för ingångsknapparna och drog igenom 10k till 5V. Och i det och genom att knappen inte förstod hur man skulle trycka för att ändra. Eller så får jag förseningar eller så är det fel med knapparna, den vanliga klockan.
cool skärm. Men fräck. RAM äter mycket.
Du är en mästare! pressa in i en tinku85 sådan.
Författaren
Du har rätt, gjorde en skrivfel, 2,8 x 2,8 cm
Citat: maxim0512
Passar inte längre bara in i fallet.
Efter område kan du hundra gånger mer än du föreslog.
Författaren
Passar inte längre bara in i fallet. Det finns bara två knappar, ett motstånd och en temperatursensor. Allt passar bara.
... trimmat kretskort inte större än 2,8 x 2,8 mm
Det räcker inte. ))

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...