projects:2013:avr_101
Unterschiede
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 18:12] – alex | projects:2013:avr_101 [2013-08-06 12: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: | ||
| + | * {{: | ||
