Hilfe zur Schriftgrößenänderung
DE EN

Ortsverband Hürth (G50)

Anmeldung

Passwort vergessen?

Geben Sie Ihre Mitgliedsnummer und Ihr Passwort ein, um sich an der DARC-Website anzumelden:

28.02.2010

Kurs zur Einführung in die Programmierung von Microcontrollern

Vorstellung der LCD-Steuerung durch den Kursleiter Hans-Peter Prast (DL2KHP)
Vorstellung der LCD-Steuerung

Seit November 2009 veranstaltet der OV Hürth (G50) einen Einführungskurs in die Programmierung von Microcontrollern, speziell am Beispiel der Prozessoren der Atmel ATmega-Familie, da diese performant und gleichzeitig kostengünstig sind.

Hintergrund ist die Übernahme der Funkbake DB0JW vom OV Eschweiler (G05) durch den OV Hürth (G50), da diese vor einiger Zeit an ihrem ehemaligen Standort, einer Grundschule in Eschweiler, abgebaut werden musste. Vor dem Aufbau an einem neuen Standort wurde vom OV Hürth beschlossen, die Technik zu erneuern und die Bake in moderner, platz- und energiesparender Technik aufzubauen. Das neue Konzept hierfür basiert auf den Microcontrollern der ATmega-Serie. Und so wurde aus der Not eine Tugend geboren und aus dem Bakenprojekt ein Microcontroller-Kurs, dem sich 10 Teilnehmer angeschlossen haben.

Die ersten Programmierschritte sollten auf jeden Fall in einer maschinennahen Sprache erlernt werden, so dass hier die Entscheidung auf Assembler mit der kostenlos erhältlichen Entwicklungsumgebung Atmel AVR Studio 4 fiel. Trotz des dort eingebauten Simulators war von Anfang an klar, dass für die Ergebniskontrolle und die bessere Anschauung eine Test-Hardware benötigt wird.

Zur "Grundausstattung" der Teilnehmer wurde daher ein Evaluations-Board mit Atmel ATmega16 bzw. ATmega32 angeschafft, so wie ein USB In-System Programmer (ISP):

ATMEL Evaluations-Board V2.0.1 (Pollin, 14,95 €)

myAVR mySmartUSB MK2 Programmer und Bridge (myAVR, 28 €)

Einige Teilnehmer haben ergänzend auch noch ein Erweiterungsboard mit Display, Audioschnittstelle etc. angeschafft:

ATMEL Addon-Board V1.0 (Pollin, 24,95 €)

Aufmerksame Kursteilnehmer

An den ersten Kursabenden wurde den Teilnehmern zunächst in theoretischer Form das Basiswissen der ATmega-Controller vermittelt. Hier ging es um Struktur, Speicher, Register, Taktung, Ports, Timer etc. der Controller. In einem zweiten theoretischen Teil wurden dann der Assembler-Befehlssatz und die Herangehensweise zum Entwurf der eigentlichen Software behandelt.

Simpel-I/O

Simpel-I/O: Als Demonstrationsbeispiel diente dabei ein simples Input/Output-Programm, welches die drei Taster auf dem Evaluationsboard abfragen und bei Betätigung die beiden LEDs bzw den Summer mit verschiedenen Audiofrequenzen ansteuern sollte.

Schnell erwuchs aber bei den Teilnehmern der Wunsch, auch etwas praxisbezogenere Besipiele und konkrete Anwendungen anzugehen. Zu diesem Zweck hat Hans-Peter Prast (DL2KHP) einige kleine elektronische Schaltungen entworfen, anhand derer der Umgang mit diversen Aufgabenstellungen einstudiert werden konnte. Hierzu zählen:

Include-Dateien

Bei den Projekten, die mit Interruptsteuerung arbeiten, ist sehr schnell aufgefallen, dass die Mircrocontroller innerhalb der ATmega-Serie (z.B. ATmega16, ATmega32 usw.) sich zwar sehr ähneln, aber sich dennoch mehr als nur in der Speichergröße unterscheiden. Nicht einheitlich sind unter anderem die Reihenfolge (und somit Priorität) der Interruptvektoren.

Da einzelne Teilnehmer zum Teil unterschiedliche Microcontroller einsetzen, haben wir uns entschlossen, den Interrupt-Sprungverteiler in eingene Include-Dateien auszulagern, die dann in die jeweiligen Projekte eingebunden werden.

Die entsprechenden Dateien müssen von *.txt nach *.inc umbenannt werden und z.B. im Verzeichnis des jeweiligen AVR Studio-Projektes liegen.

  • intv13.txtInterrupt-Sprungverteiler für ATtiny13786
  • intv16.txtInterrupt-Sprungverteiler für ATmega161,23 K
  • intv32.txtInterrupt-Sprungverteiler für ATmega321,23 K

PWM-Steuerung

Schaltplan PWM-Steuerung 06.11.2009
Schaltplan PWM-Steuerung
Platinenlayout Bauteilseite 06.11.2009
Platinenlayout Bauteilseite
Platinenlayout Lötseite 06.11.2009
Platinenlayout Lötseite

PWM-Steuerung auf Basis eines ATtiny13: Erfassung eines Messwertes von einem Potentiometer am Analogeingang. Die Spannung von 0 ... 1,1 Volt am Analogeingang 1 soll in ein PWM-Signal von 0 bis 100% am Ausgang PB0, Pin 5 umgewandelt werden. Eine an PB1 angeschlossene LED soll ausgeschaltet sein, wenn der PWM-Wert 0 ist und soll leuchten wenn 100% erreicht werden. Dazwischen soll die LED blinken.

Herausführen des PWM-Ausgangssignales über einen MOSFET-Leistungstransistor (IRLIZ34N). Aufbau der Schaltung auf einer Streifenrasterplatine.

LCD-Ansteuerung

Schaltplan LCD-Ansteuerung 24.02.2010
Schaltplan LCD-Ansteuerung
Platinenlayout Bauteilseite 13.02.2010
Platinenlayout Bauteilseite
Platinenlayout Lötseite 13.02.2010
Platinenlayout Lötseite

LCD-Ansteuerung auf Basis des Evaluationsboardes: Erfassung eines Temperatur-Messwertes über einen Temperatursensor KTY23-5. Die am Sensor KTY23-5 anliegende Spannung wird über den Analogeingang PA0 gemessen und angepasst auf den Bereich 0 ... 30°C. Der Wert muss von Binär nach ASCII gewandelt und dann in das Display geschrieben werden. Die Display-Hintergrundbeleuchtung kann über zwei Tasten in der Helligkeit gesteuert werden (PWM-Signal, außer beim Addon-Board, da hier fest verschaltet).

Zur einfacheren Anbindung des LCD dient eine selbstentworfene Platine, die mit dem 40-poligen Pfostenstecker des Evaluationsboardes verbunden werden kann. Alternativ kann das Addon-Board genutzt werden, wenn die entsprechenden Brücken gesteckt werden.

Schrittmotor-Steuerung

Schaltplan Schrittmotor-Steuerung 24.02.2010
Schaltplan Schrittmotor-Steuerung
Platinenlayout Bauteilseite 13.02.2010
Platinenlayout Bauteilseite
Platinenlayout Lötseite 13.02.2010
Platinenlayout Lötseite

Schrittmotor-Steuerung für uni- und bipolare Schrittmotoren: Steuerung von zwei Schrittrmotoren. Motor 1 wird per Encoder gesteuert. In Betriebsart 1 folgt der Motor dem Encoder schrittweise. In Betriebsart 2 wird die Drehrichtung und Geschwindigkeit gesteuert. Die Steuerung von Motor 2 erfolgt analog über zwei Taster, links - rechts und langsam - schnell. Ein Druck auf den Encoder schaltet die Betriebsart um und stoppt den laufenden Betrieb (Notaus).
Auch hierfür wurde eine kleine Platine entworfen.

Zum Ausprobieren können z.B. die folgenden Schrittmotoren dienen:

Bipolarer Schrittmotor AEG S026/48 (Pollin, 3,50 €)

Unipolarer Schrittmotor HOWARD Ind. 1-19-4201 (Pollin, 2,95€)

Technische Daten der verwendeten Schrittmotoren
EigenschaftAEG S026/48HOWARD Ind. 1-19-4201
TypBipolarUnipolar
Betriebsspannung5 V DC24 V DC
Strangstrom1 A160 mA
Strangwiderstand5 Ω140 Ω
Schrittwinkel7,5°3,6°
AnschlussbelegungA: rot Strang 1a
B: braun Strang 1b
C: grün Strang 2a
D: weiß Strang 2b
+Vcc: schwarz

 

 

Diese Seite wird im Verlauf des Kurses regelmäßig aktualisiert und fortgesetzt.