Mondlicht mit ATTiny84 und Tilt-Sensor

Ein Mondlicht ist eine Lampe die eigenständig in einem sanften  Verlauf ihre Farben wechselt, wobei die 3 Grundfarben Rot, Grün und Blau nach dem Zufallsprinzip gemischt werden. Die Lampe startet standardmäßig mit dem Farbwechsel. Wenn man dies nicht möchte und die Lampe gerade eine der eigenen Lieblingsfarben anzeigt, braucht man nur an der Lampe zu klopfen um den Farbwechsel anzuhalten. Ein weiteres klopfen setzt den Farbwechsel fort. Das erfolgreiche Umschalten zwischen Farbwechsel und einzelner Farbe wird ebenfalls durch einen Signalton angezeigt.

Ich werde in diesem Projekt einmal den Aufbau und die Programmierung direkt mit einem Arduino UNO und im zweiten Teil den Aufbau der Schaltung mit einem ATTiny84 erklären. Den ATtiny werde ich mit dem Arduino UNO als Programmer programmieren.

Mondlicht

Übersicht der einzelnen Schritte

  1. verbinden aller Bauteile mit einem Arduino UNO
  2. Sketch für den Arduino UNO
  3. verbinden des ATtiny84 mit dem Arduino UNO
  4. verbinden aller Bauteile mit dem ATtiny84
  5. einrichten des Arduino UNO als Programmer
  6. programmieren des ATtiny84 mit dem Arduino UNO als Programmer

1 . Verbinden aller Bauteile mit einem Arduino UNO

Benötigte Bauteile

  • 1 x Arduino UNO
  • 1 x RGB LED
  • 1 x Tilt-Sensor (Erschütterungssensor)
  • 1 x Piezo (Tongeber)
  • 1 x 220 Ohm Widerstand für den Tilt Sensor
  • 3 x Widerstände für die RGB LED

Herstellen der Verbindung der einzelnen Bauteile mit dem Arduino UNO auf einem Breadboard.

Mondlicht - Arduino Uno - Breadboard

 

2. Sketch zum testen auf dem Arduino UNO

Um das Sketch auf den Arduino zu brennen, wählen Sie in der Arduino IDE im Menü „Werkzeuge“ folgende Werte.

  • Platine: Arduino UNO
  • Programmer: AVRISP mkII

 

3. Verbinden des ATTiny84 mit dem Arduino UNO

Entfernen Sie jetzt alle Jumper Kabel außer GND und +5V vom Arduino.
Um das Sketch später mit dem Arduino UNO als Programmer auf den ATtiny84 brennen zu können, müssen wir als erstes die Verbindung von SCK, MISO, MOSI und RESET zwischen dem ATTiny84 und dem Arduino UNO herstellen. Verbinden Sie dazu einfach die Pins wie auf der folgenden Zeichnung zu sehen mit dem Arduino. Also Pin 8 am ATTiny84 mit Pin 12 am Arduino Uno usw.

ATTINY44-84 Arduino UNO as Programmer PIN-Belegung

4. Verbinden aller Bauteile mit dem ATTiny84

Benötigte Bauteile

  • 1 x Arduino UNO
  • 1 x ATtiny84
  • 1 x RGB LED
  • 1 x Tilt-Sensor (Erschütterungssensor)
  • 1 x Piezo (Tongeber)
  • 1 x 220 Ohm Widerstand für den Tilt Sensor
  • 3 x Widerstände für die RGB LED

Mondlicht - ATTiny84 - Breadboard

5. Einrichten des Arduino UNO als Programmer

Ganz Wichtig!
Um das Sketch auf den ATtiny84 brennen zu können, müssen wir erst ein spezielles Sketch auf den Arduino UNO brennen.
Gehen Sie dazu ins Menü und wählen Sie unter  „Datei->Beispiele“ zuerst das Sketch „Arduino ISP„.

Vergewissern Sie sich nochmals, dass im Menü folgende Einstellungen gewählt wurden.

  • Werkzeuge->Platine: Arduino UNO
  • Werkzeuge->Programmer: AVRISP mkII

Brennen Sie anschließen das Sketch „Arduino ISP“ auf den Arduino UNO.

6. programmieren des ATtiny84 mit dem Arduino UNO als Programmer

Sketch für den ATTiny84

Beachten Sie hier bitte dass ich eine RGB LED mit gemeinsamer Kathode (Plus) verwende, weshalb ledState = HIGH bedeutet dass die LED aus und nicht an ist. Bei einer RGB LED mit gemeinsamer Anode (GND) muss dementsprechend LOW für aus und HIGH für ein angegeben werden. Für die Einbelegung habe ich folgende Zeichnung verwendet.

ATTINY44-84 PIN-Belegung

Gehen Sie nun erneut ins Menü und setzen Sie folgende Werte.

  • Platine: ATtiny
  • Prozessor: ATtiny84
  • Clock: 1MHz (internal)
  • Programmer: Arduino AS ISP

Wenn Sie die Unterstützung für den ATTiny 84 noch nicht installiert haben, lesen Sie am besten vorher den Beitrag ATtiny Support unter Arduino 1.6 installieren oder wenn Sie eine ältere Version der Arduino IDE verwenden lesen Sie diesen Beitrag Programmieren eines Attiny mit Arduino 1.0.1

Konnten Sie die genannten Einstellungen vornehmen, klicken Sie anschließend zum brennen des ATTiny84 bei gedrückter Umschalttaste auf den „Hochladen-Button“ (Hochladen mit Programmer).

Wenn alles geklappt hat, die Verkabelung richtig vorgenommen wurde und das Mondlicht mit Strom versorgt wird, sollte die LED nun anfangen zu leuchten und die Farbe zu wechseln. Klopfen Sie auf das Glas wird der Farbwechsel gestoppt bis Sie ein weiteres mal am Glas klopfen.

Sie können die komplette Schaltung nun auf einer Lochrasterplatine unterbringen oder sich eine Platine ätzen und das ganze am besten in einem Milchglas unterbringen. Ein wirklich stimmungsvolles Licht für laue Sommerabende auf der Terrasse.  :-)

Ich hoffe Ihnen hat dieses Projekt gefallen.
Bei Fragen oder Anregungen können Sie gern die Kommentarfunktion nutzen.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Ein Kommentar zu “Mondlicht mit ATTiny84 und Tilt-Sensor

  1. Danke für den Bauvorschlag.
    Ich habe den Sketch modifiziert.
    1x Fade off
    2x LED’S aus
    3x Fade On

    Somit kann man das Mondlicht auch durch Klopfen ausschalten und braucht keinen Ausschalter.