Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Propeller 8 Kern Controller - C Programmierung

  • Weitere Vorschläge zum Thema mit den Boards: Arduino UNO - BASIC Stamp
  • Raspberry Pi: Wer über ein Propeller Board verfügt, kann auch mit Hilfe des RasPi die beschriebenen Propeller-Übungen ausführen. Wie das geht wird hier beschrieben.

Station 6 - Licht messen

In unserem täglichen Umfeld gibt es viele Anwendungen, die mit Lichtmessung zu tun haben. Oft fallen sie uns aber nicht mehr auf, weil es bereits selbstverständlich geworden ist, sich auf diese automatisch arbeitenden kleinen Helfer zu verlassen.

 

Kameras schalten zum Beispiel automatisch auf Blitzlichtnutzung um, wenn die Umgebungshelligkeit nicht mehr ausreichend ist; in Autos wird die Außenbeleuchtung automatisch eingeschaltet, sobald man in einen Tunnel einfährt oder die Abenddämmerung einsetzt. Straßenlaternen in den Großstädten gehen automatisch an, sobald eine Mindesthelligkeit unterschritten wird.

 

Dafür verantwortlich sind häufig Phototransistoren, die in speziellen Schaltungen so sensibel eingestellt werden können, dass schon kleinste Helligkeitsunterschiede erkannt werden und Kondensatoren, die sich wie kleine wiederaufladbare Batterien verhalten.

Courtesy of Parallax Inc.

Du wirst hier zum ersten mal etwas über ein sogenanntes RC-Zeitglied erfahren, damit ist die Zeit gemeint, die ein Kondensator (C) benötigt, bist er eine bestimmte Ladungsmenge über einen Widerstand (R) abgegeben hat.

 

Wir werden mit verschiedenen Widerstandswerten und Kondensatoren arbeiten; auf diese Art und Weise bekommst du einen ersten Zugang zu RC-Zeitschaltungen.

 

Mit Hilfe der Programmiersprache C wird es gelingen, einen Kondensator aufzuladen und anschließend die Zeit zu bestimmen, die der Kondensator benötigt, bis er sich über einen Widerstand wieder entladen hat.

1 - Kondensatoren

Abbildung 1 Schaltbild Elektrolyt-Kondensator (links) und Bauteilzeichnung (rechts)

Abbildung 1 zeigt das Schaltsymbol und eine mögliche Bauform eines Kondensators. In diesem Fall handelt es sich um einen sogenannten elektrolytischen Kondensator (kurz: Elko).

Wieviel Ladung ein Kondensator speichern kann (kurz: wie groß seine Kapazität ist) wird in der Einheit Farad  angegeben. Je größer dieser Wert ist, desto größer ist die gespeicherte Ladungsmenge.

Bei den Elektrolyt-Kondensatoren wird der Kapazitätswert auf das zylindrische Gehäuse aufgedruckt. Typischerweise kann dort zum Beispiel stehen: 3300 µF. Der griechische Buchstabe µ steht für die sehr kleine Zahl 1/1000000 oder 1-millionstel. 3300 µF entspricht damit einem Kapazitätswert

In dieser Station werden wir sowohl mit gepolten wie mit ungepolten Kondensatoren arbeiten. Bei ungepolten Kondensatoren muss nicht auf die Polung geachtet werden; keramische und Folienkondensatoren zählen dazu. Die folgende Abbildung zeigt unterschiedliche Bauformen ungepolter Kondensatoren und ihr Schaltsymbol.

Abbildung 2 - Schaltzeichen Kondensator, verschiedene Bauformen ungepolter Kondensatoren

Ziele

 

Wenn du Station 6 durchgearbeitet hast, bist du in der Lage ...

  • verschiedene Kondensatortypen auseinanderzuhalten und gepolte von ungepolten Kondensatoren zu unterscheiden.
  • die Wirkungsweise eines Kondensators zu erklären.
  • die Arbeits- und Wirkungsweise eines Fototransistors und eines LDR zu erklären.
  • das Datenblatt eines Fototransistors und eines LDR zu lesen und ihm Informationen zu entnehmen.
  • einfache elektronische Schaltungen mit Kondensator, Widerstand, LDR und Fototransistor aufzubauen, zu verstehen und zu erklären.
  • eine RC-Schaltung zu erklären und Entladezeiten eines Kondensator zu bestimmen.
  • eine RC-Abfrage in C zu programmieren
Beschreibung Prop-C

Zeitmessung in einem

RC-Glied

rc_time(<Port>, 0 oder 1)

Beispiel:

int Zeit = rc_time(9,1);
  • rc_time(8, 1)

Der I/O Pin P8 wird als Eingang deklariert und die Zeit in Mikrosekunden (µs) gemessen, bis der Pegel an P8 von 1 auf 0 gefallen ist.

2 - Zeitmessung mit Elektrolytkondensator

Aufgabe
  • Baue die Schaltung nach Abbildung 1 auf.
  • Gib das Programm 06_01.c ein.
  • Führe mit einem gepolten Kondensator mit einer Kapazität von 3300 µF und verschiedenen Widerständen Zeitmessungen durch und notiere die Ergebnisse in einer Tabelle.
  • Tausche den 3300 µF Elko gegen einen 1000 µF Elko aus und gehe wie in Teilaufgabe 1 vor.

Schaltungsaufbau und Schaltskizze

Abbildung 3 - Courtesy of Parallax Inc.
Abbildung 4 - Schaltskizze; für R2 werden nacheinander die angegebenen Werte eingesetzt

Das Programm 06_01.c

Programm 06_01.c

Meine Messwerte - 1. Messung

Wie arbeitet die Schaltung?

Liegt am Ausgang von P9 eine 1, dann wird der Kondensator C über den Widerstand R1  aufgeladen. Die Ladezeit muss ausreichend lang sein, damit sich der Kondensator vollständig aufladen kann. Wird dann der Ausgang P9 auf Eingang umgeschaltet, entlädt sich der Kondensator über den Widerstand R2.

 

Je größer der Widerstandswert von R2, desto langsamer erfolgt die Entladung und desto größer ist die gemessene Entladezeit. Man spricht in der Physik von einem sogenannten RC-Glied. Das Produkt aus den Werten von R2 und C ergibt einen Zeitwert, die sogenannte Zeitkonstante τ.

Allgemein gilt für die Berechnung der Zeitkonstante die Formel:

In unserer Schaltung berechnet sich das Produkt aus R2 und C zu:

Für praktische Zwecke kann man annehmen, dass die Ladezeit tL für einen Kondensator durch  

  • tL = 5 * τ
    
    

beschrieben wird. Für die oben berechneten Zahlbeispiele wird der Kondensator nach ca. 160 ms immer aufgeladen sein. Wird dann der Ausgang "hochohmig" geschaltet (er wird zum Eingang), entlädt sich der Kondensator C über R2. Eine nahezu vollständige Entladung erfolgt in ca. 5 x τ.

Bei einem Widerstand mit einer Toleranz von 1 % oder weniger, lässt sich eine unbekannte Kapazität C mit dieser RC-Schaltung gut bestimmen.

Wie arbeitet das Programm 06_01.c?

Zeile 12 und 13

Der Variablen zeit vom Typ int  wird der Wert 0 zugewiesen und Ausgang P9 des Propeller-Kontrollers auf 1 gesetzt (Zeile 13).

 

Zeile 14

Auf dem Terminal erscheint ein Text. Die Ladezeit beträgt 20.000 ms.

 

Zeilen 17 - 21

Die while-Schleife wird im Millisekundentakt (pause(1)) durchlaufen, solange wie am Eingang von P9 der Propeller-Controller eine 1 feststellt; die Variable zeit wird dabei jedesmal um eins erhöht.

Die Schleife wird beendet, wenn der Kontroller am Eingang eine 0 feststellt.

 

Der Eingang eines Controllers erkennt den Spannungswert 1 nicht erst, wenn die volle Betriebsspannung - bei uns wären das 3,3 Volt - anliegt. Dem Datenblatt ist zu entnehmen (DC-Characteristics), dass eine 1 zwischen Vss und 0,6 Volt und eine 0 zwischen Vdd und 0,3 Volt erkannt wird.

Meine Messwerte - 2. Messung

In der folgenden Schaltung wird eine RC-Zeitmessung mit einem ungepolten Kondensator mit einer ca. 300.000-mal geringeren Kapazität als in Übung 1 durchgeführt. Dazu benutzen wir die C-Bibliotheksfunktion rc_time(<port>,<startpegel>).

3 - Zeitmessung mit ungepoltem Kondensator

Aufgabe
  • Gib das Programm 06_02.c ein und speicher es mit Save Project As ... unter dem Namen 06_02 ab.
  • Baue die Schaltung nach Abbildung 5 auf dem Steckbrett auf. Beginne mit dem Kondensator vom Typ 103.
  • Starte das Programm und notiere für jeden Widerstandswert den im Terminal angezeigten Zeitwert. Bevor du einen neuen Widerstand in die Schaltung einbaust, muss jedesmal der PWR-Schalter auf 0 gestellt werden.
  • Wiederhole die Messungen mit dem Kondensator vom Typ 104.

Schaltungsaufbau und Schaltungsskizze

Abbildung 5 - Courtesy of Parallax Inc.

Das Programm 06_02.c

Wie arbeitet das Programm 06_02.c?

Zeile 12

der Ausgang 9 des Propeller-Controllers wird auf 1 gesetzt.

Zeile 13

Der Kondensator wird 200 ms aufgeladen.

Zeile 14

die Entladezeit für den aufgeladenen Kondensator an P9 wird bestimmt und anschließend im Debug Terminal ausgedruckt.

Die Wirkungsweise der Schaltung wurde bereits in Übung 1 besprochen. Die Zeitkonstante τ errechnet sich aus den vorgegebenen Werten der Bauteile zu:

Meine Messwerte

Aufgabe
  • Tausche den Kondensator gegen einen vom Typ 104 und miss mit den gleichen Widerständen erneut die Entladezeiten. Bestimme die Kapazität des unbekannten Kondensators durch Abschätzung.

Meine Messwerte

Aus der gemessenen Entladezeit τ und dem jeweiligen Widerstandswert lässt sich mit Hilfe der Formel

die Kapazität des unbekannten Kondensator ermitteln.

Die Kapazität meines Kondensators vom Typ 104 hat einen Wert von ca.  ______________________ µF

4 - Lichtmessung mit einem LDR

Aufgabe
  • In der folgenden Übung 3 wird der Widerstand R2 aus den vorherigen Übungen durch einen LDR ersetzt.
  • Baue die Schaltung nach Abb. 6 auf.
  • Entnimm dem Datenblatt des LDR, zwischen welchen Widerstandswerten der LDR bei unterschiedlichem Lichteinfall schwankt.
  • Starte das Programm 06_02.c.
  • Bestimme die Entladezeit für einen vom Tageslicht beleuchten und für einen mit dem Finger abgedunkelten LDR.
  • Trage die Werte in eine Tabelle ein.
Abbildung 6 - Courtesy of Parallax Inc.

Meine Messwerte

5 - Lichtmessung mit einem Fototransistor

Fototransistoren haben häufig nur zwei Anschlüsse; sie werden als Emitter (E) und Kollektor (C) bezeichnet. Fototransistoren können sowohl ein lichtdurchlässiges wie ein schwarzes IR-durchlässiges Epoxy-Gehäuse haben; sie werden ausschließlich über das einfallende Licht auf der Basis (B) gesteuert, die wie ein Ventil wirkt und den Strom zwischen Kollektor und Emitter regelt.

Abbildung 7
Aufgabe
  • Baue die RC-Schaltung mit Fototransistor aus Abb. 8 auf.
  • Gib das Programm 06_03.c ein und speicher es unter 06_03.c ab.
  • Informiere dich über das Datenblatt des Fototransistors über seine Leistungsdaten:
  • a) Welche Betriebsspannung ist zulässig?
  • b) Wie hoch ist der maximale Stromverbrauch?
  • Starte das Programm.
  • Miss die Entladezeiten des Kondensators C in Abhängigkeit vom Lichteinfall.

Schaltungsaufbau und Schaltskizze

Abbildung 8 - Courtesy of Parallax Inc.

Programm 06_03.c

Wie funktioniert das Programm 06_03.c?

Erkläre Zeile für Zeile, was in dem Programm passiert.

 

Zeile 14 _____________________________________________________________

______________________________________________________________________

Zeile 15 _____________________________________________________________

______________________________________________________________________

Zeile 16 und 17 ______________________________________________________

______________________________________________________________________
Druckversion | Sitemap
© Reinhard Rahner - Gettorf