» Elektronik » Arduino »Oled Uhren auf Attiny85

Oled Uhren auf Attiny85

Guten Tag und wieder bin ich mit meinen Spielsachen. Heute präsentiere ich Ihnen Anweisungen zur Herstellung kleiner, aber niedlicher Uhren mit einem Raumtemperatursensor.
Oled Uhren auf Attiny85


Liste von dem, was wir brauchen:
- Digispark Attiny85
- Oled Display 128x64 I2C
- Temperatursensor ds18b20
- Widerstand 4,7 Kom 0,25 W.
- ISP-Programmierer oder Arduino Digispark Attiny85 Firmware-Karte
- Plastiktablette mit Büroklammer oder dünner Plastikfolie
- Drähte
- Dupont 2,54 mm „Buchsen“ -Anschlüsse
- Knöpfe 2 Stk.
- Kleine Leiterplatte oder kleine Verkleidung
- Lötkolben
- Lot, Kolophonium
- Schere
- Schreibmesser
- Heißklebepistole
- Heißkleber

Schritt 1 Komponenten auswählen.
Als Hauptcontroller verwenden wir Digispark Attiny85. Es gibt verschiedene Arten von ihnen. Wir brauchen eine Karte mit einem Micro-USB-Anschluss. Der Rest passt nicht in das Uhrengehäuse.

Zur Anzeige benötigen wir eine Oled 128x64 I2C-Anzeige. Sie kommen in verschiedenen Farben: weiß, blau, blau mit gelb. Ich lenke deine Aufmerksamkeit! Der Begriff „zweifarbig“ in der Beschreibung oder im Titel dieses Bildschirms bedeutet einen Streifen mit einer Farbe am oberen Bildschirmrand und der zweiten Farbe auf dem gesamten verbleibenden Bildschirm und nicht die Möglichkeit, mit diesem Bildschirm zwei Farben anzuzeigen! Alle Bildschirme dieses Typs zeigen nur eine Farbe an oder oben einen Streifen einer Farbe unten - eine andere. Wie zum Beispiel die, die ich verwenden werde. Der Balken oben ist gelb, der Rest des Bildschirms ist blau. Sie können eine beliebige Farbe auswählen.
Wir brauchen auch den integrierten Temperatursensor DS18B20. Es wurde nicht zufällig ausgewählt. Zunächst kommuniziert der DS18B20 über eine 1-Draht-Kommunikationsleitung unter Verwendung des 1-Draht-Schnittstellenprotokolls mit dem Mikrocontroller. In unserem Fall ist dies wichtig, da es nur wenige Schlussfolgerungen von Attiny85 ohne Sensor gibt. Zweitens ist dieser Sensor eine Ziffer, dh er nimmt alle Messungen selbst vor und überträgt einfach Temperaturdaten, ohne die Rechenressourcen von Attiny85 zu verbrauchen.

Im Übrigen denke ich, dass es keine Fragen geben wird. Fahren wir also mit der Herstellung des Gehäuses fort.

Schritt 2 Montage des Gehäuses.
Das Uhrengehäuse besteht aus dünnem Kunststoff. Ich hatte ein Plastiktablett mit einer Büroklammer an den Händen. Es ist robust genug, um seine Form zu halten, und gleichzeitig kann es mit einer normalen Schere und einem Büromesser geschnitten werden. Er kam perfekt hoch.Wenn es nicht zur Hand ist, können Sie ein Tablet in einem Bürobedarfsgeschäft kaufen oder den richtigen Kunststoff finden, um das Tablet zu ersetzen. Wir machen Markierungen auf Kunststoff nach dem Schema:


Schneiden Sie alle durchgezogenen Linien aus. Gepunktet - mit einem Schreibmesser leicht geschnitten. Gepunktete Linien sind Faltlinien. Wie Sie bereits verstanden haben, ist dies das übliche Cube-Layout. Als nächstes müssen Sie die Drähte an den Bildschirm anlöten. Nehmen Sie am besten mehrfarbig und notieren Sie, was zu was führt. Kleben Sie den Bildschirm auf den Schmelzkleber in der Mitte, so dass die Vorderseite von hinten austritt. Wie Sie sehen können, haben wir die Bildschirmstiftbezeichnungen geschlossen. Daher war es notwendig, sie aufzuschreiben. Ich übergab es leicht dem Messer und schnitt dabei den unteren Teil des Körpers ab. Daran ist nichts auszusetzen, alles kann geklebt werden. Aber es ist besser, meine Fehler nicht zu wiederholen.



Das Ergebnis sollte folgendermaßen aussehen:


In diesem Fall ist fertig. Sie können die hintere Abdeckung immer noch aus demselben Kunststoff herausschneiden, dies ist jedoch optional.

Schritt 3 Wir löten.
Unser Fall ist klein und wir müssen dort viel stopfen. Daher nehmen wir ein Stück der Leiterplatte, das nicht größer als 2,8 x 2,8 mm ist, und löten zwei Tasten, einen ds18b20-Sensor, einen Widerstand und mehrere Kontakte. Nach folgendem Schema:


Es ist nicht erforderlich, Drähte direkt an Attiny anzulöten, da für die Firmware alles getrennt werden muss. Das Ergebnis sollte ungefähr so ​​aussehen:



Zum Einstellen der Uhrzeit werden Schaltflächen benötigt. Der USB-Anschluss des Computers kann mit Strom versorgt werden. Plus und Minus kombinieren:


Wenn Sie auf Kabel verzichten möchten, müssen Sie einen kleinen Lithium-Ionen-Akku finden. Hier ist zum Beispiel eines:


Diese Batterie passt in das Gehäuse. Es müssen nur Rückschlüsse auf die Batterieladung gezogen werden.

Schritt 4 Vorbereiten des Programmiergeräts.
Digispark Attiny85 kann über den Micro-USB-Anschluss auf der Karte programmiert werden, wobei die Arduino IDE als Programmierumgebung verwendet wird. Gleichzeitig müssen Sie jedoch 2 KB Speicher für den Bootloader opfern. Attiny 85 hat insgesamt 8 KB Flash. Meine Skizze passt nicht zum Bootloader, daher muss ich über den ISP-Programmierer programmieren. Ich habe keinen solchen Programmierer, aber es gibt ein Arduino Uno-Board, das ich als Programmierer verwenden werde. Wenn Sie einen ISB-Programmierer haben, können Sie diesen Punkt überspringen. Öffnen Sie die Arduino IDE und füllen Sie unsere Skizze mit dem Namen ArduinoISP in unser Arduino Uno aus. Sie finden es wie folgt: Datei - Beispiele - Arduino ISP. Die Skizze beginnt mit einem Hinweis, wie der Arduino an die programmierbare Steuerung angeschlossen werden kann. Anstelle von Arduino Uno kann es auch jedes andere Arduino-Board geben.
// 10: Slave zurückgesetzt
// 11: MOSI
// 12: MISO
// 13: SCK


Verbindungsschema zum Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Schritt 5 Vorbereiten der Programmierumgebung.
Um die Firmware zu bearbeiten und die Skizze in Attiny 85 zu füllen, müssen Sie nicht nur den Programmierer, sondern auch die Programmierumgebung selbst vorbereiten. Installieren Sie dazu die Arduino IDE von der offiziellen Website von Arduino.cc und installieren Sie das Add-On für Attiny-Mikrocontroller über den Boards Manager.

Starten Sie die Arduino IDE und fügen Sie dann im Feld Additional Boards Manager URLs den folgenden Link ein: Datei - Einstellungen.

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


Klicken Sie auf OK (in dieses Feld können Sie mehrere durch Komma getrennte Links eingeben). Geben Sie unter Tools - Board - Boards Manager im Filterfeld Attiny ein und klicken Sie auf "attiny by David A. Mellis". Klicken Sie auf Installieren und warten Sie, bis der Download abgeschlossen ist. Wählen Sie nun im Menü Extras:
Vorstand - Attiny 25/45/85
Prozessor - Attiny 85
Uhr - intern 16
und wählen Sie die serielle Schnittstelle aus, an die der ISP-Programmierer oder Arduino als Programmierer angeschlossen ist.
Ich habe viele verschiedene Bibliotheken für die Arbeit mit dem Bildschirm ausprobiert. Meiner Meinung nach das bequemste und am meisten an Attiny85 arbeitende: TinyOzOLED.
tinyozoled-master.rar [15,99 Kb] (Downloads: 477)


Ein Temperatursensor benötigt die OneWire-Bibliothek.
onewire.rar [16.75 Kb] (Downloads: 263)


Installieren Sie diese beiden Bibliotheken. Sie können Bibliotheken von Drittanbietern direkt in der Programmierumgebung installieren. Wählen Sie in der Arduino IDE das Menü Sketch - Connect Library aus, ohne die heruntergeladenen Archive zu entpacken. Wählen Sie ganz oben in der Dropdown-Liste das Element .Zip-Bibliothek hinzufügen aus. Wählen Sie im angezeigten Dialogfeld die Bibliothek aus, die Sie hinzufügen möchten. Öffnen Sie das Menü Sketch - Connect Library erneut. Ganz unten in der Dropdown-Liste sollte eine neue Bibliothek angezeigt werden. Jetzt kann die Bibliothek in Programmen verwendet werden. Vergessen Sie nicht, die Arduino IDE nach all dem neu zu starten.Wenn dies nicht hilft, entpacken Sie die Archive einfach in den Ordner "Bibliotheken", der sich in dem Ordner befindet, in dem die Arduino IDE installiert ist.

Schritt 6 Bearbeiten und füllen Sie die Skizze.
Der Temperatursensor arbeitet nach dem One Wire-Protokoll und hat für jedes Gerät eine eindeutige Adresse - einen 64-Bit-Code. Attiny-Ressourcen reichen nicht aus, um jedes Mal nach diesem Code zu suchen. Daher müssen Sie zuerst den Sensor an eine Arduino-Karte anschließen und die Skizze im Menü Datei - Beispiele - Dallas-Temperatur - OneWireSearch ausfüllen. Führen Sie als Nächstes Tools - Port Monitor aus. Arduino sollte unseren Sensor finden, seine Adresse und die aktuellen Temperaturwerte schreiben. Wir kopieren oder notieren einfach die Adresse unseres Sensors. Öffnen Sie die Skizze Attiny85_Oled_SPI_Term_2 und suchen Sie nach der Zeile:

Byte-Adresse [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; 


Wir notieren die Adresse Ihres Sensors zwischen geschweiften Klammern und ersetzen die Adresse meines Sensors. Verbinden Sie danach Attiny mit dem Programmierer oder Arduino als Programmierer (dies wird in Schritt 4 beschrieben) und füllen Sie die Skizze aus. Es bleibt, den Programmierer zu trennen und alles gemäß dem Schema in 3 Schritten anzuschließen. Die Montage sieht ungefähr so ​​aus:


Der Bildschirm ist klein, es ist unmöglich, Zeit und Temperatur so einzustellen, dass er sichtbar ist. Daher ändert die Uhr die Zeit mit einer Temperaturanzeige alle 10 Sekunden.
attiny85_oled_spi_term_2.rar [2.33 Kb] (Downloads: 574)

Attiny 85
Gesamtzahl der Wähler: 118
9.3
10
8.7

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
13 Kommentare
Vseslav
Alles Klar, Danke!
Der Autor
Guten Abend. Ich habe die Bibliothek von Digispart nicht benutzt. Sie haben einen zu großen Bootloader, zusammen mit der Skizze der Uhr passte nicht. Ich habe die TinyOzOLED-Bibliothek verwendet. Sie hat kein Russisch. Im Allgemeinen ist es mit Attiny 85 schwierig, es gibt zu wenig Speicher.
Vseslav
Gut durchdacht und erledigt, ein kleiner Fehler - die Inschriften in Aglitsky. Können sie einfach gegen Russisch ausgetauscht werden oder ist es für Digispark schwierig, dies zu tun?
Der Autor
Guten Tag. Echtzeituhren nehmen genügend Platz ein, sie passen nicht in diesen Fall.
Hmm .. warum nicht eine Echtzeituhr anstelle eines Temperatursensors setzen?
Der Autor
Ein weiterer Tipp: Eine LED ist an den Digispar Attiny 85 P1 angeschlossen. Wenn Sie diesen Pin verwenden, sollten Sie dessen Vorhandensein berücksichtigen. Ich habe diese Diode auf meinem Board synchronisiert, da sie meiner Meinung nach nur stört.
Der Autor
Guten Tag. Es ist nicht erforderlich, ein Pull-up mit einem Widerstand durchzuführen, da die in Attiny integrierte Aufhängung in der Skizze enthalten ist. Nehmen Sie Ihren Hosenträger weg und versuchen Sie es erneut.
Sie können auch eine andere Skizze von meinen anderen Uhren ausprobieren, sie haben den gleichen Controller und Bildschirm, und die Konfiguration erfolgt mit einer Taste:
https://dem.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Gast Roman
Guten Tag. Vielen Dank für die Idee und Arbeit. Nur entweder sind meine Hände nicht so oder ich verstehe nicht. Die Zeiteinstellungstasten funktionieren nicht normal. Ich habe sowohl Ihren als auch meinen Skech ausprobiert, in meinem nur den Pin-Modus der Eingabetasten hinzugefügt und durch 10k bis 5V gezogen. Und darin und darin verstand der Knopf nicht, wie man drückt, um sich zu ändern. Oder ich gerate in Verzögerungen oder etwas stimmt nicht mit den Tasten, der üblichen Uhr.
cooler Bildschirm. Aber gefräßig. RAM frisst viel.
Du bist ein Meister! quetschen in ein tinku85 wie z.
Der Autor
Sie haben Recht, einen Tippfehler gemacht, 2,8 x 2,8 cm
Quote: maxim0512
Passt nicht mehr nur in den Koffer.
Nach Gebiet können Sie hundertmal mehr als vorgeschlagen.
Der Autor
Passt nicht mehr nur in den Koffer. Es gibt nur zwei Tasten, einen Widerstand und einen Temperatursensor. Alles passt einfach.
... getrimmte Leiterplatte nicht größer als 2,8 x 2,8 mm
Es wird nicht genug sein. )))

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...