Es gibt Projekte, für die auch ein kleiner Arduino schon zu groß ist. Weil du nur wenige Pins brauchst. Oder weil du nur wenig Strom verbrauchen willst. Oder weil du einfach keinen Platz hast. Für all diese Fälle ist ein ATtiny85 genau das, was du brauchst.
Prozessoren der ATtiny-Familie gibt es in zahlreichen Ausführungen – der bekannteste und gebräuchlichste dürfte der ATtiny85 sein, den du hier näher kennenlernst. Aber: Diesen Prozessor einzurichten und zu programmieren ist nicht ganz so bequem, wie du es von deinem Arduino gewohnt bist. Schwer ist deshalb aber noch lange nicht! 🙂
Die ATtiny85 Basics
Du findest an deinem ATtiny85 in einer Ecke eine Kerbe. Drehe den Prozessor so, dass sie oben links ist. Links neben der Kerbe befindet sich der Pin mit der Nummer 1. Die Nummer der anderen Pins ergeben sich, indem du sie gegen den Uhrzeigersinn durchzählst.
Allerdings stimmen die Nummern der Pins nicht mit denen überein, die du in deinem Arduino Sketch verwenden musst. Diese Tabelle zeigt dir, welcher Pin welche Funktion hat und mit welcher Zahl du ihn in deinem Code ansteuerst:
Pin am ATtiny85 | Funktion | Pin im Sketch |
1 | Reset | |
2 | 3 | |
3 | 4 | |
4 | GND | |
5 | 0 | |
6 | 1 | |
7 | 2 | |
8 | VCC |
Wenn du also zum Beispiel eine LED an Pin 3 deines ATtiny85 ansteuern möchtest, definierst du diesen Output-Pin in deinem Sketch wie folgt:
pinMode(4, OUTPUT);
Vorbereitung der Arduino IDE
Bevor du loslegen kannst, musst du zunächst deiner Arduino IDE beibringen, wie sie mit dem ATtiny85 kommunizieren kann.
Öffne hierfür die Einstellungen. Im unteren Bereich findest du das Feld Zusätzliche Boardverwalter-URLs. Hier fügst du per Copy & Paste folgenden Link ein und schließt danach das Fenster per Klick auf OK.
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Öffne nun den Boardverwalter. Den findest du unter Werkzeuge – Board – Boardverwalter. In dem Fenster, das sich jetzt öffnet, suchst du nach attiny und installierst das gefundene Paket von David A. Mellis.
Und das war’s auch schon. Als nächstes verbindest du deinen ATtiny85 mit dem Arduino und programmierst ihn mit deinem ersten Sketch.
Verbinde den ATtiny85 mit dem Arduino
Schnapp dir ein Breadboard und setze den ATtiny85 in die Mitte über die Lücke des Boards. Der erste Sketch wird eine LED blinken lassen, weshalb du diese Schaltung einfach gleich mit auf das Breadboard baust. Du benötigst zusätzlich:
- Kondensator (z.B. 100µF)
- LED
- 220Ω Widerstand
- ein paar Kabel
Schau dir zuerst kurz den schematischen Aufbau an:
Wie du siehst, ist der Aufwand recht überschaubar. Neben den Anschlüssen von Strom (Pin 8), Erde (Pin 4) Reset (Pin 1) benötigst du noch die Pins 5 bis 7 an deinem ATtiny85, um ihn zu programmieren. Diese schließt du am Arduino an die digitalen Pins 11 bis 13 an.
An Pin 3 des ATtiny85 schließt du eine LED mit dazwischengeschaltetem Widerstand (220Ω) an und verbindest auch diese mit der Erde. Diese LED wirst du später blinken lassen, um zu prüfen, ob die Programmierung vom Arduino aus funktioniert hat.
Hinweis: Im schematischen Aufbau oben siehst du den Kondensator am Arduino an den Pins Erde (GND) und Reset (RES). Stecke diesen zunächst noch nicht in die Pins – du benötigst ihn erst später.
Den Arduino als Programmer konfigurieren
Du musst zunächst einen Sketch auf einen Arduino hochladen, damit er deinen ATtiny85 programmieren kann. Dieser Sketch ist in deiner Arduino IDE bereits verfügbar. Du findest ihn unter Datei – Beispiele – 11.ArduinoISP.
Denke daran, den Kondensator noch nicht zu verwenden. Ansonsten kannst du den Sketch nicht hochladen.
Den ATtiny85 programmieren
Jetzt ist es endlich soweit. Stecke den Kondensator an deinem Arduino in die Pins Erde (GND) und Reset (RES) – und achte unbedingt darauf, das richtig herum zu tun. Die mit Minus markierte Seite am Kondensator gehört in den Pin Erde.
Ein paar wenige Einstellungen in der Arduino IDE sind jetzt noch nötig:
Wähle im Menü unter Werkzeuge zunächst den Punkt Board. Wähle hier ATtiny25/45/85 aus.
Anschließend wählst du unter Prozessor den Eintrag ATtiny85.
Unter Clock wählst du Internal 1MHz.
Im Punkt Programmer wählst du Arduino as ISP. Wichtig ist das “as ISP”! 🙂
Stelle zuletzt sicher, dass dein Arduino am Computer angeschlossen ist und die Verbindung, wie du es von anderen Projekten kennst, unter Port zu finden ist.
So sollten deine Einstellungen dann aussehen, wenn du fertig bist:
Den Sketch hochladen
Lade nun zuletzt diesen Sketch hoch. Er landet jetzt direkt auf deinem ATtiny85 und lässt die LED blinken:
int ledPin = 4;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
Hinweis: Erinnerst du dich noch an die unterschiedlichen Nummer für die Pins am ATtiny85 und im Arduino Sketch? Du hast deine LED zwar am ATtiny85 an Pin 3 angeschlossen – im Sketch musst du sie allerdings über Pin 4 ansprechen. In der Tabelle oben findest du alle Entsprechungen der Pins.
Das war’s! 🙂 Die LED sollte jetzt auf deinem Board im Halbsekunden-Takt blinken.
Wie geht es weiter?
So ein ATtiny85 bietet natürlich weniger Pins und weniger Speicher als dein Arduino. Um Sensoren auszulesen und mit den Daten ein klein wenig anzustellen, reicht es aber allemal.
Versuche doch mal, einen Temperatursensor anzuschließen und zum Laufen zu bringen. Dieses Tutorial ist zwar für den Arduino, aber du kannst es bestimmt adaptieren. Viel Erfolg!