Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projects:2013:avr_101 [2013-01-22 13:52] – [Projekkurzinfos] alex | projects:2013:avr_101 [2013-08-06 10:40] (aktuell) – alex | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== uC Einführungsworkshop ====== | ||
+ | Es soll ein Workshop bzw. eine kleine Workshopserie als Einführung in die Programmierung von AVR Mikrocontrollern ausgearbeitet werden. | ||
+ | ===== Projektkurzinfos ===== | ||
+ | ? contact | ||
+ | : [[user: | ||
+ | ? begin | ||
+ | : 2013-01-03 | ||
+ | ? status | ||
+ | : planning/ | ||
+ | ? skillz (source) | ||
+ | : Vorbereitung erfordert für den Lehrenden Ahnung von Schaltung aufbauen, AVR programmieren in C, Makefiles schreiben, Teileilisten machen, Bausätze vorbereiten, | ||
+ | : Workshop durchführen needs Erklärbärfähigkeit, | ||
+ | ? skillz (drain) | ||
+ | : Der Lernende muss als Voraussetzung mitbringen: sicherer Umgang mit Editor und Kommandozeile, | ||
+ | |||
+ | ===== Ideen ===== | ||
+ | Für die Einführung ist der [[http:// | ||
+ | * [tux, 2012-04-03] Wie wir heute festgestellt haben, ist der [[http:// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Im Laufe der Vorbereitungen stellte sich heraus, dass man die Thematik in mehrere Workshops gliedern sollte. Einführung in die Mikrocontrollerprogrammierung kann mit nahezu gleichem Quellcode auf Steckbrett, gelöteter Schaltung (Lochraster, | ||
+ | |||
+ | Den Aufbau einer der Schaltungsvarianten kann man in je einen Extra-Workshop packen. Der Umfang ist mit LED und Poti mehr als ausreichend für einen Einführungsworkshop. | ||
+ | |||
+ | ==== Alternative Beispielschaltung mit 7-Segment-Anzeige ==== | ||
+ | {{: | ||
+ | |||
+ | Hinweis: Wegen $grund ist an PB4 (Pin 3) der Pull-Up-Widerstand nicht wirksam. Deshalb wurde ein externer Widerstand (10kOhm) von Pin 3 nach Masse gelegt. | ||
+ | |||
+ | Der AT90S2343 wurde gewählt, weil er im Bastelbestand noch vorhanden war. Letztendlich sollte auch hier ein ATtiny25 zum Einsatz kommen. Folgende Varianten sind dann möglich: | ||
+ | * Der 4bit-Hex-Codierer wird durch ein Poti ersetzt. Der Stellwert wird am ADC-Eingang ermittelt. | ||
+ | * Einer der frei werdenden Ports kann dann wieder für den Reset des Zählers verwendet werden (d.h., wieder zwei Leitungen zum Zähler, aber eine robustere Schaltung). Diese beiden Schaltungsvarianten mit Vor- und Nachteilen können durchaus auch im Rahmen eines Workshops behandelt werden. | ||
+ | * Das Poti lässt sich auch durch einen widerstandsbasierten Sensor ersetzen, z.B. einen Photowiderstand. Auf der Anzeige erscheint dann ein Lichtlevel. | ||
+ | * Mit einer höheren Taktung lässt sich das Flackern der 7-Segment-Anzeige wahrscheinlich völlig unterbinden. (Konsequenzen verschiedener Taktungen können ebenfalls Teil eines Workshops sein.) | ||
+ | |||
+ | ===== Bauteile ===== | ||
+ | Im Prinzip sind die Teile sehr ähnlich, egal welche Schaltung man benutzt. Leichte Abweichungen vielleicht beim Arduino. Interessant für die gelöteten Schaltungen wäre vielleicht noch ein vorgeschalteter Spannungsregler. | ||
+ | |||
+ | ==== Schaltung auf Steckbrett ==== | ||
+ | * ATtiny25/ | ||
+ | * ein bis drei LED oder eine RGB-LED (bspw. [[https:// | ||
+ | * ein paar Widerstände und Kondensatoren | ||
+ | * ein Poti | ||
+ | * ein Adapter zum Anstecken des Programmers | ||
+ | * kleine low-current LED als Betriebsspannungsanzeige | ||
+ | |||
+ | ==== Schaltung auf Lochraster ==== | ||
+ | Kann man die selben Teile nehmen wie auf dem Steckbrett. | ||
+ | |||
+ | ==== SMD-Schaltung ==== | ||
+ | Setzt das Projekt [[projects: | ||
+ | |||
+ | ===== Lerneinheiten ===== | ||
+ | In zwei Stunden lässt sich das nicht abfeiern, daher Unterteilung in mehrere Blöcke. Möglich wären … | ||
+ | |||
+ | - alles bis »Hello World« wie bspw. Steckbrett aufbauen, Platine löten, Arduino auspacken als parallel mögliche Einheiten | ||
+ | - Steckbrett aufbauen | ||
+ | - Schaltung löten | ||
+ | - Grundlagen Stromkreise | ||
+ | - »Hello World« aka LED blinken lassen mit vorbereitetem Makefile und uC Flashen durch die Teilnehmer, der Teil wurde bereits für die [[https:// | ||
+ | * Struktur eines C-Programms | ||
+ | * Zugriff auf Ports des uC | ||
+ | * Datenblatt lesen in Kürze | ||
+ | * kompilieren und flashen | ||
+ | * ggf. Einbindung der '' | ||
+ | - LED dimmen mit PWM | ||
+ | * kurze Theorie zu LED dimmen, Strom, Spannung, PWM | ||
+ | * Vorstellung Timerbaustein des uC | ||
+ | * Interrupts und ISR | ||
+ | * einfache PWM mit Timer und ISR | ||
+ | * Lookuptable für schickes Dimmen | ||
+ | - Einlesen von Daten von außen | ||
+ | * Grundlagen AD-Wandler | ||
+ | * genauere Beschäftigung mit uC-Registern | ||
+ | * Poti anschließen, | ||
+ | - Combine all previous stuff with RGB! | ||
+ | * HSV | ||
+ | * was tun bei common anode? | ||
+ | * Optimierung der PWM | ||
+ | |||
+ | ===== Ressourcen/ | ||
+ | * Datenblatt: http:// | ||
+ | * Application Notes | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * Follow-Up: [[projects: | ||
+ | * {{: |