Einen Attiny45 programmieren (ArduinoISP)
Manchmal würde für ein Mikrocontrollerprojekt auch ein
billiger winziger achtbeiniger Mikrocontroller ausreichen, z. B.
ein Attiny 45 für unter 1 Euro:
Folgende Vorteile sehe ich da
sofort:
- man kann eine Menge Geld sparen, wenn man einen kleinen
Mikrocontroller für seine Projekte benutzt.
- man kann eine Menge Platz sparen, wenn man einen Attiny
statt eines "großen" Atmega328 benutzt
- man kann die vereinfachte Version der Programmiersprache C
benutzen, wie sie die Arduino IDE bereitstellt
... und es ist wirklich sehr einfach!
Ich habe beim MIT (Massachusetts Institute of Technology) eine
Anleitung gefunden.
Was Du brauchst:
1 Arduino
1 Steckbrett
1 Mikrocontroller Attiny45 oder Attiny85
1 Kondensator 10µF
Verbindungsleitungen
... und was Du für Dein Projekt brauchst - wir nehmen: 1
LED mit 220 Ohm Vorwiderstand.
Vorgehensweise:
1. Lade Dir beim MIT diese Datei runter:
ATtiny
(oder von
dieser
GitHub-Seite)
Du erhältst eine .zip-Datei, die als
Ordner entpackt heißt:
damellis-attiny-6bff522
(oder ähnlich)
in diesem Ordner findest Du den Unterordner:
attiny
2. Finde den Ordner mit Deinen Sketches
(Betriebssystemabhängig, bei mir:
Dokumente/Arduino/Sketchbook/)!
Erstelle im Sketchbook den Ordner:
hardware !
Verschiebe den Ordner
attiny, den Du runtergeladen
hattest, in den Ordner
hardware
!
5. Starte Deine Arduino IDE! Du findest nun unter
Tools -> Board jede Menge
Attiny44/45/84/85, die Du dann programmieren könntest.
Wähle davon nocht nichts aus!
6. Dein Arduino-Board
wird zum
Programmiergerät, indem Du das Programm "ArduinoISP"
in Deinen Arduino schiebst:
7. Um Deinen Attiny45 programmieren zu können, verbindest Du
ihn wie folgt mit dem Arduino-Board:
Oder gleich mit der LED, die dann später blinken soll:
Die Kennecke des Attiny ist im Bild links!!!
8. Attiny45-Blinksdings in das Attiny45 Board schieben. Dazu
mußt Du noch sagen, dass Dein
Arduino jetzt als Programmiergerät benutzt
wird:
/*
Blinksdings
für Attiny45
LED am Ausgang PB3
über 220 Ohm blinkt im Sekundentakt bzw. 1 Hz
www.arduinospielwiese.de
*/
void setup()
{
pinMode(3,
OUTPUT);
}
void loop() {
digitalWrite(3,
HIGH);
delay(500);
digitalWrite(3,
LOW);
delay(500);
}
Die 3 im digitalWrite(3, ...) entspricht dem Attiny45-Pin
PB3. Du kannst PB0 bis PB4 benutzen. Also digitalWrite für 0
bis 4. Für PB5 wären gesonderte Maßnahmen
erforderlich, weil das eben auch der Resetanschluß der
Attiny ist. Wenn Du ihn unbedingt benutzen mußt, steht die
Lösung in der Mikrocontrollerspielwiese.
9. Jetzt kannst Du Deinen Arduino vom Steckbrett trennen. Was
übrig bleibt, wäre dies:

(Batterie: 3..5V oder Du nimmst 5V vom Arduino-Board)
Jetzt sag bitte nicht: "So ein Aufwand für einen
einfachen Blinker!"
Immerhin hast Du es geschafft, einen Blinker
mit nur drei Bauelementen
zu bauen.
Erweitere doch das Programm zu einem kleinen Lauflicht!
Du kannst auch gerne mit der Schaltung vier Servomotoren
ansteuern oder einen kleinen Roboter bauen!
"Klein" bedeutet ja nicht, dass unser Attiny nix kann. Schau Dir
mal die vollständige Beschriftung an:
Folgende Befehle aus dem
Arduino-Befehlsvorrat funktionieren:
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
millis()
micros()
delay()
delayMicroseconds()
Hinzu kommen natürlich die Befehle des gcc und des avr-gcc.
Ich hatte übrigens noch die Idee, ein aufsteckbares
Prototype-Shield aus der Geschichte zu machen.
Zum Schluß noch die
Quelle meiner
Inspiration vom Massachusetts Institute of Technology
Bei manchen Computern wird es
bei dieser Schaltung eng, was den Strom betrifft, den die
USB-Buchse Deines Computers liefern kann.
Schließ einfach eine
Spannungsquelle an Deinen Arduino!