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 musst
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 Resetanschluss der Attiny ist. Wenn Du ihn unbedingt
benutzen musst, 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!

Das ist Kurt von der Mikrocontrollerspielwiese.
Als Gehirn (links im Bild) hat er einen Attiny13 oder einen
Attiny45.
"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 avr-gcc.
Ich hatte übrigens noch die Idee, ein aufsteckbares
Prototype-Shield aus der Geschichte zu machen.
Zum Schluss 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!
|