Wie man sich eine einfache, kleine, elektronische Sanduhr mit dem ATtiny85 Chip erstellen kann, möchte ich in diesem Beitrag vorstellen.
In meinem Beitrag Bausatz #1: elektronische Sanduhr habe ich einen Bausatz vorgestellt welcher deutlich größer ist jedoch kann man bei diesem kleinen Bausatz die Zeit einstellen.
Nachfolgend werde ich dir Schritt für Schritt erläutern wie du dir relativ einfach und schnell deine eigene kleine LED Sanduhr zusammenbaust und Programmierst.
Inhaltsverzeichnis
benötigte elektronische Bauelemente
Zunächst einmal die benötigten elektronischen Bauelemente welche du für dieses Projekt benötigst.
- 1x Microcontroller ATtiny85*,
- 1x DIL 8 Pin Sockel*,
- 1x Schieberegister 74HC595N*,
- 1x DIL 16 Pin Sockel*,
- 16x LED, 3mm, blau*,
- 1x 3V CR2032 Batteriesockel*,
- 1x 3V CR2032 Batterie*,
- verschiedene Kabel, Durchmesser 0,2 mm*,
- 2x Lochrasterplatinen*,
- oder eine große, welche man mit einer Metallsäge teilt
- 4x Abstandsbolzen*,
- 4x Schraube M2 x 40 inkl. Mutter*
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Des Weiteren benötigst du noch:
- einen Lötkolben,
- Lötzinn,
- Lötfett (um die Kabel zu verzinnen),
- hitzebeständige Unterlage,
- dritte Hand,
- Seitenschneider,
- Abisolierzange,
- ggf. für den Notfall eine Entlötpumpe
Aufbau der Schaltung
Im Nachfolgenden zeige ich den Schaltplan für die einfache LED Sanduhr mit einem ATtiny85.
Programmierung
Wie man das Schieberegister 74HC595N programmiert, habe ich im Beitrag Arduino Lektion #100: Schieberegister 74HC595N N2B5 erläutert. In diesem kleinen Stück Quellcode verwende ich den ATtiny85 welcher das Schieberegister genauso anspricht wie ein Mikrocontroller der Arduino Familie.
#define DS 0 //Pin DS am digitalen Pin D0 des ATtiny85 #define STCP 2 //Pin STCP am digitalen Pin D2 des ATtiny85 #define SHCP 3 //Pin SHCP am digitalen Pin D3 des ATtiny85 //Muster welches "abgespielt" werden soll int muster[5][8] = { {1, 1, 1, 1, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 1}, {0, 0, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 1, 0, 1, 1, 1}, {0, 0, 0, 0, 1, 1, 1, 1} }; void setup() { //setzen der digitalen Pins als Ausgänge pinMode(SHCP, OUTPUT); pinMode(STCP, OUTPUT); pinMode(DS, OUTPUT); //setzen des Pins auf LOW digitalWrite(SHCP, LOW); } void loop () { //Abspielen des Musters auf die LEDs for (int i = 0; i < 5; i++) { digitalWrite(SHCP, LOW); delay(20); //eine kleine Pause von 20ms. for (int a = 0; a < 8; a++) { digitalWrite(STCP, LOW); digitalWrite(DS, muster[i][a]); digitalWrite(STCP, HIGH); } //Das setzen des SHCP Pins auf HIGH ist wichtig damit der neue Wert geschrieben wird. digitalWrite(SHCP, HIGH); delay(450); //eine Pause von 450ms. } delay(450); //eine Pause von 450ms. }
Für das auspielen des Programmes / Sketches wird ein externer Programmer benötigt. Diesen kannst du dir auch relativ leicht selber bauen.
Wie du das Sketch auf den ATtiny85 hochlädst, habe ich dir im Beitrag ATtiny85 mit dem Arduino UNO beschreiben ausführlich beschrieben.