ATtiny85 mit dem Arduino programmieren

So programmierst du einen ATtiny85 mit dem Arduino

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 ATtiny85FunktionPin im Sketch
1Reset
23
34
4GND
50
61
72
8VCC

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.

Boardverwalter attiny
Installiere das Paket attiny 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:

Attiny85 Arduino Aufbau

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.

Sketch ArduinoISP
Der Sketch ArduinoISP

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:

Auswahl des Attiny85 in der IDE

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!

Bausätze für dein nächstes Projekt

Alles, was du für dein nächstes Projekt brauchst – Bausätze inklusive Anleitung als E-Book und der benötigten Hardware.

ESP8266 Projekt

Wetterstation & Vorhersage

Miss die aktuelle Temperatur und Luftfeuchtigkeit und zeige dazu die Wettervorhersage auf einem OLED-Display an.

Bausatz anschauen

Arduino Projekt

Pflanzenwächter

Braucht deine Pflanze Wasser? Dieses Arduino Projekt gibt dir Bescheid, wenn es so weit ist.

Bausatz anschauen

ESP8266 Projekt

Webserver

Lerne, wie du mit deinem Webserver Messdaten ausgibst, Geräte steuerst und dir mit HTML und CSS ein Interface erstellst.

Bausatz anschauen

Arduino Projekt

Wetterstation

Baue deine eigene Wetterstation, die dir Temperatur und Luftfeuchtigkeit anzeigt.

Bausatz anschauen

Auch interessant

Mehr Projekte für Arduino, Raspi & Co
Werde Mitglied bei Pollux Labs und entdecke spannende Projekte und Tutorials, wie: - ESP8266 Webserver - Arduino Schnarchstopper - ESP32-CAM Fotofalle - ESP32 Internetradio ... und viele mehr!
Finde dein nächstes Projekt!
Als Mitglied von Pollux Labs erhältst du Zugang zu allen Projekte und Tutorials. Von der Arduino Wetterstation bis zum ESP8266 Webserver.
Werde Mitglied