ATtiny85 #1: einfache, elektronische Sanduhr

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.

benötigte elektronische Bauelemente

Zunächst einmal die benötigten elektronischen Bauelemente welche du für dieses Projekt benötigst.

(Wenn du dir einige Bauteile besorgen musst so klicke doch einfach auf die Hinterlegten Links du wirst dann automatisch auf die Plattform ebay.de geleitet.)

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.

elektrischer Schaltplan - einfache LED Sanduhr
elektrischer Schaltplan – einfache LED Sanduhr

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 Microcontroller 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.

ATtiny85 auf dem Prototype Shield

Wie du das Sketch auf den ATtiny85 hochlädst habe ich dir im Beitrag ATtiny85 mit dem Arduino UNO beschreiben ausführlich beschrieben.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.