ATTiny85 programmieren mit ISP

Eine neue Herausforderung ist den ATTiny85 direkt mit einem ISP (In System Programmer) zu programmieren und dabei heraus zu finden was mit dem Chip so alles möglich ist.

Die Software
Ich versuche also einen LDR Sensor einzulesen, die Lichtstärke in Lux in floating Point zu berechnen und auf einem LCD auszugeben. Für die korrekte Berechnung brauche ich dann noch die aktuelle Betriebsspannung. Und für die Ausgabe noch eine Glättung der Messwerte. Die einzelnen Komponenten sammle ich einfach aus vorherigen Projekten zusammen.

LCD: Ausgabe auf einem 4 Zeilen LCD über I2C, allerdings muss ich hier statt der wire.h die Bibliothek Tinywire.h benutzen.

LDR: Als Sensor benutze ich wieder den Spannungsteiler mit 10KOhm und dem LDR auf dem ADC Kanal 3 mit 10 bit Auflösung.

VRef: Die Spannung lese ich als Vcc intern über den ADC ein.

Messwert: Der Messwert wird mit dem ungewichteten Mittelwert geglättet.

ATTiny85
Um den ATTiny85 programmieren zu können braucht man natürlich auch die zugehörigen Bibliotheken (s.unten).

Die Programmierung
Es gibt die Möglichkeit einen Arduino Uno als AVR ISP zu benutzen. Die Option unter „Programmer“ heißt „Arduino as ISP“ (s.unten).

Arduino Uno als ISP
Einen Uno als solchen zu Programmieren ist ganz einfach. Die Software findet sich unter Beispiele->ArduinoISP->ArduinoISP. Einmal installiert muss nur noch die Verbindung zum Ziel gemacht werden (s.unten)

Der Aufbau

Der Sketch

Ergebnis
Es funktioniert! Mit einer Auflösung von 10 bit ist die Ausgabe, trotz Glättung, deutlich „zappeliger“ als mit 16 bit. Aber die Messung scheint einigermaßen gut zu sein. Was den Speicherplatz angeht sind noch ca. 2000 Byte von den acht KByte übriggeblieben. Also ist noch etwas Platz für weitere Aktivitäten.

Anmerkung
Man muss sich erst einmal daran gewöhnen zum Hochladen die Option „Hochladen mit Programmer“ (Ctrl + Shift + U) zu wählen, sonst wird der falsche Prozessor geflasht.

Möglichkeiten
Es ist also einiges machbar mit diesem „winzigen“ acht Pin Prozessor. Er kann locker einen Sensor einlesen, auswerten und eine Aktivität starten. Es gibt nur zwei Grenzen: Der Speicherplatz und die Fantasie.

Ergänzung
Wer’s braucht verbindet GND über einen Pulldown Widerstand und einen Taster auf Pin 1 und kann damit den Prozessor „resetten“.

Links

Arduino als ISP
https://www.arduino.cc/en/tutorial/arduinoISP

ATTiny85 Bibliothek
https://www.kollino.de/arduino/attiny-support-unter-arduino-1-6-installieren/

ATTiny85 programmieren
https://www.kollino.de/arduino/attiny85-programmieren-mit-arduino-uno-oder-usb-programmer/

Spannungsüberwachung mit Atmel Prozessoren
https://blog.softwareentwicklung-als-prozess.de/spannungsueberwachung-mit-atmel-avr-prozessoren

NTC Thermometer
https://blog.softwareentwicklung-als-prozess.de/ntc-thermometer-mit-korrektur

Nachbau eines Luxmeters
https://blog.softwareentwicklung-als-prozess.de/nachbau-eines-luxmeters

Prototyp als Leiterplatte
https://create.arduino.cc/projecthub/ShirishDeshpande/attiny85-45-25-development-board-08cc9a?ref=platform&ref_id=424_trending___&offset=7

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.