Post on 19-Oct-2020
ATtiny mit ARDUINO IDE Programmierung des ATtiny 85 mit der ARDUINO IDE
Creative Open Lab - Rainer Keil
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 2 /19
Fragen über Fragen ...
● Worum geht es hier ?● Warum das Ganze ?● Was brauche ich ?● Wo installiere das ?● Welchen Programmer nehme ich ?● Wann blinkt endlich die LED ?● Wo finde ich weitere Infos ?● Was wurde denn schon gebaut ?
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 3 /19
Warum ATtiny ?
● Klein - im 8 Pin DIL … als SMD noch kleiner● Günstig – je nach Quelle schon für weniger als 1€ zu bekommen● Braucht (fast) keine externe Beschaltung● Genug Leistung für viele einfache Anwendungen● Als Entwicklungsumgebung reicht ein Arduino
● Ein paar Leitungsdaten am Beispiel ATtiny85– 8 kByte Flash für die Programme – 512 Byte RAM für die Daten– 512 Byte EEPROM– Takt bis 20 Mhz ( bis 8 MHz mit internem Taktgenerator)– 5 (für uns nutzbare) programmierbare Ports (Digtal E/A, Analog In, PWM, Interrupt ..)– Betriebsspannung 2,7 – 5,5V
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 4 /19
Voraussetzungen Was brauche ich ?
● Teil 1 - Hardware– Den Chip selber: Atmel ATtiny45, ATtiny85, ATtiny44 oder ATtiny84
– Programmer zum Programmieren: ISP Programmer● Ein Original von Atmel, z. B. AT AVR ISP2
● Oder einen anderen ISP-Programmerz.B. USBasp, USBtinyISP …
● Oder einen Arduino … dazu später mehr
– Breadboard etc.
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 5 /19
Voraussetzungen Was brauche ich ?
Software– Die bekannte und beliebte
Arduino Entwicklungsumgebung (IDE) Download von http://arduino.cc/en/Main/Software
für Windows, Mac OS X und Linux
– Erweiterung der IDE für ATtinyvon http://highlowtech.org/
Programming an ATtiny w/ Arduino 1.0This tutorial shows you how to program an ATtiny45, ATtiny85, ATtiny44 or ATtiny84 microcontroller using the Arduino software. http://highlowtech.org/?p=1695 https://github.com/damellis/attiny/archive/master.zip
https://github.com/damellis/attiny/
–
http://arduino.cc/en/Main/Softwarehttp://highlowtech.org/http://highlowtech.org/?p=1695https://github.com/damellis/attiny/archive/master.ziphttps://github.com/damellis/attiny/
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 6 /19
Installation der ATtiny Erweiterung (1)
● Download der Erweiterung http://highlowtech.org/?p=1695 https://github.com/damellis/attiny/archive/master.zip
Das ist eine .zip-Datei, die als Ordner entpackt heißt: attiny-master (oder ähnlich)in diesem Ordner findest Du den Unterordner: attiny
● Finde den Ordner mit Deinen Sketches – Das ist vom Betriebssystem abhängig
● On Windows and Macintosh machines, the default name of the folder is "Arduino" and is located in your Documents folder.
● On Linux machines, the folder is named "Sketchbook" and it is typically located in /home/
● Erstelle im Sketchbook den Ordner: hardware
● Kopiere den heruntergeladenen Ordner attiny in den Ordner hardware !
http://highlowtech.org/?p=1695https://github.com/damellis/attiny/archive/master.zip
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 7 /19
Installation der ATtiny Erweiterung (2)
● Nach einem Neustart der Arduino-IDE sind unter Tools => Board jede Menge neue ATtinys enthalten
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 8 /19
Arduino als ISP Programmiergerät● Mit dem Sketch „ArduinoISP“ wird ein Arduino zum
Programmiergerät(siehe auch http://arduino.cc/en/Tutorial/ArduinoISP)
– Arduino anschliessen und in der IDE auswählen (Board und Schnittstelle)
– „ArduinoISP“ öffen (unter Beispiele)
– „ArduinoISP“ hochladen ( „Upload“)
– Bei einem „UNO“ muss jetztein Kondensator 10µF zwischenRESET und GND eingebaut werden
– Als Programmiergerät auswählen: Tools > Programmer > ArduinoISP
– Damit stehen am Arduino die ISP Signale zur Verfügung
slave reset Pin 10 MOSI Pin 11MISO Pin 12SCK Pin 13
SCKMISOMOSIReset
5 VGND
10 µF
http://arduino.cc/en/Tutorial/ArduinoISP
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 9 /19
Alternaive Programmiergeräte
● ISP-Shield für Arduinovom Mose, erhältlich bei eHaJo
● ISP Programmer von verschiedenen Herstellern
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 10 /19
Verdrahtung Arduino ISP → Attiny 85
10µF
10µF
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 11 /19
… jetzt geht es los Hello World = „Blink“
● ATiny als Board Auswählen– Sinnvoll sind die Varianten mit
interner TakterzeugungTools>Board>ATtiny85 (internal 8 MHz clock)
● Fuses des ATtiny setzen– Tools>Bootloader installieren
● Beispielsketch „Blink“ laden– Datei>Beispiele>Basics>Blink
● Ausgang auf Pin 3 setzen (war 13)● Übersetzen und Programmieren
– Datei>Upload (mit Programmer)
FERTIG
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 12 /19
„Tiny-Blink“
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 13 /19
Was geht ??
Ein ATiny ist kein ATmega und daher wird nur ein Teil der Arduino Kommandos unterstützt
● pinMode()● digitalWrite()● digitalRead()● analogRead()● analogWrite()● shiftOut()● pulseIn()● millis()● micros()● delay()● delayMicroseconds()● SoftwareSerial (bei 8Mhz)
In den Weiten des Internet finden sich noch viele Anregungen und Bibliotheken
● TinyWireM & TinyWireS: Wire (I2C / TWI) library for the ATtiny85 (using USI)● Servo8Bit: Servo library for the ATtiny45/85.● ...
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 14 /19
PINOUT des ATtiny 85 und die ARDUINO Übersetzung
WICHTIGPin1 ist nicht sinnvoll für uns nutzbar, da sonst eine erneute Programmierung nicht mehr möglich ist !(= RESET, mit 5V verbinden)
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 15 /19
Beispiel 1Abluftsteuerung für den FabLab Laser
● An einem Analogeingang wird die Stellung eines Potentiometers eingelesen. Dieser Wert wird dann als Sollwert für die Drehzahlvorgabe verwendet.
● Der Lüfter wird dann durch ein vom Hersteller definierten PWM Signal angesteuert.
● Mit einen Schalter kann der Lüfter abgeschaltet werden.
● PWM mit 3,9 kHz (31250/8) statt ca. 500 Hz
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 16 /19
Beispiel 1Abluftsteuerung für den FabLab Laser
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 17 /19
Beispiel 2RC Servo Reverse und Blinker
● Das an PPM_INPUT anliegende Signal wir an die beiden Servos so ausgegeben, dass sie gegenläufig ausschlagen.
● Die beiden LEDs werden je nach Lenkausschlag als Blinker geschaltet
● Liegt kein Eingangssignal an (=Fehler) blinken beide LEDS schnell
Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 18 /19
Beispiel 2RC Servo Reverse und Blinker
ATtiny mit ARDUINO IDE
Folie 1Folie 2Folie 3Folie 4Folie 5Folie 6Folie 7Folie 8Folie 9Folie 10Folie 11Folie 12Folie 13Folie 14Folie 15Folie 16Folie 17Folie 18Folie 19