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

1 - Sendermodul konfigurieren

Laut Datenblatt verfügt ein XBee über sechs ADCs (Analog-Digital-Wandler): AD0 (20), AD1 (19), AD2 (18), AD3 (17), AD4 (11) und AD5 (15). In Klammern ist jeweils die Pinzahl am XBee angegeben. Der am Eingang ADx anliegende Spannungspegel wird in einen 10-Bit Datenwert umgewandelt. Ein Spannungspegel von maximal 3,3V wird in 1023 (0x3FF) Spannungsstufen (entspricht 10 Bit) und die 0 aufgeteilt. Die an Pin 14 anliegende Referenzspannung gibt dabei den maximalen Spannungswert an.

Als Referenzspannung nehmen wir in dieser Übung die 3,3V vom Arduino- bzw. Propeller-Board; ein 10k-Potenziometer liefert das analoge Spannungssignal für den ADC-Eingang.  

Die Schaltung - Senderbaustein

Abbildung 1 - XBee mit Potenziometer - Spannungsversorgung über Arduino-UNO oder Propeller-Board

Einstellungen der Sender-Konfiguration

Material

1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)

1x  Steckbrett

1x  Potenziometer, 10kOhm

1x  Netzteil mit 3,3V - z. B. Arduino-UNO und Propeller Board of Education

1x  USB Verbindungskabel

diverse Steckdrähte

1x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnliches (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)

Aufgaben
  • Baue die Sender-Schaltung nach Abbildung 1 auf dem Steckbrett auf.
  • Setze das XBee-Module Sender in das XBee-USB-Board ein und schließe das USB-Kabel an.
  • Starte das Programm X-CTU auf dem PC.
  • Setze das Modul mit Default auf die Werkseinstellungen zurück.
  • Ändere im Verzeichnis Networking & Security MY - 16-Bit Source Address in 815
  • Ändere im Verzeichnis Networking & Security DL- Destination Address in 4711
  • Im Verzeichnis I/O Settings ändere DO - DIO0 auf  2 - ADC.
  • Im Verzeichnis I/O Settings ändere IT - Samples in TX = 02.
  • Im Verzeichnis I/O Settings ändere Sample Rate in 03E8.
  • Übertrage die Änderungen mit dem Befehl Write in das XBee Modul.

2 - Empfängermodul konfigurieren

Die Schaltung - Empfängerbaustein

Abbildung 2 - Empfänger-Baustein, zunächst ohne externe Beschaltung

Einstellungen der Empfänger-Konfiguration

Material

1x  XBee-USB Adapter Board (z. B. von Fa. Parallax)

1x  Steckbrett

1x  Netzteil mit 3,3V - z. B. Arduino-UNO und Propeller Board of Education

1x  USB Verbindungskabel

1x  XBee Modul XB24 802.15.4 PCB Antenne oder ähnlichen (die Produktlinie von XBee ist neu aufgelegt worden; das Nachfolgemodell des XB24 ist der XBee S2C 802.15.4 mit PCB Antenne)

Aufgaben
  • Baue die Schaltung nach Abbildung 2 auf dem Steckbrett auf.
  • Setze das XBee-Modul Empfänger in das XBee-USB-Board ein und schließe das USB-Kabel an.
  • Starte das Programm X-CTU auf dem PC.
  • Setze das Modul mit Default auf die Werkseinstellungen zurück.
  • Ändere im Verzeichnis Networking & Security MY - 16-Bit Source Address in 4711
  • Ändere im Verzeichnis Networking & Security DL- Destination Address in 815
  • Ändere im Verzeichnis Networking & Security P0 PWM0 Configuration in PWM Output [2].
  • Im Verzeichnis I/O Line Passing ändere IA I/O Input Adress in FFFF.
  • Übertrage die Änderungen mit dem Befehl Write in das XBee Modul.

3 - Interpretation der empfangenen Daten

Die Übertragungsdaten werden im Terminalfenster von XCTU näher betrachtet. Dazu wird der Mittelabgriff des Potenziometers in eine beliebige Position gedreht und die vom Sender übermittelten Daten aufgenommen. In dem von mir durchgeführten Fall sehen die Daten wie folgt aus:

Die Bytefolgen wiederholen sich nach 16 Bytes (2 Samples pro Datenübertragung). Die Bedeutung der einzelnen Bytes in den umrandeten Rechtecken kennen wir bereits:

  • 7E       Beginn der Übertragung
  • 00 0C  Anzahl der übertragenen Datenbytes
  • 83        Vorgabewert für eine 16-Bit Moduladressierung
  • 08 15   16-Bit Sender-Adresse
  • 2C       Signalstärke des Funksignals am Empfänger (nicht konstant; kann sich verändern)
  • 00        Statusbyte
  • 02        Anzahl der Proben
  • 02 00   Aktivsignal Bytes. Identifikation aktiver I/O Pins beim Sender
  • 01 E4  Datenpaket 1 - erste Datenprobe
  • 01 E4  Datenpaket 2 - zweite Datenprobe
  • 65        Prüfsumme

 

Die Aktivsignal-Bytes lassen sich über die nachfolgende Tabelle dechiffrieren. In HighA steht die Zahl 2 (binär 0b00000010) und in LowA die Zahl 0 (binär 0b00000000).

Aus der Tabelle ist zu entnehmen, dass nur der analoge Port A0 als Eingang aktiv ist, und alle digitalen I/O Ports D0 - D7 inaktiv sind. Es werden somit keine digitalen Signale vom Sender übertragen. An den Empfänger werden mit jeder Übertragung zwei 10-Bit Messproben gesendet. In dem hier vorliegenden Beispiel sind es zweimal 01 E4, das entspricht der Hexadezimalzahl 0x01E4 (binär: 0000 0001 1110 0100).

Der binären Zahl 0b1111001000 entspricht im Dezimalsystem die Zahl 484. Da ein 10-Bit AD-Wandler 1024 verschiedene Zustände zwischen 0 und 3,3V annehmen kann, entspricht einem Wert von 484 bei einer Referenzspannung von 3,3V ein Spannungswert von 484/1024 * 3,3Volt. Das ergibt einen Spannungswert von 1,7 Volt, voilá.

4 - LDR-Daten übertragen und verstehen

Mit einer leichten Abwandlung in der Sender-Schaltung lassen sich die gemessenen Spannungswerte in Abhängigkeit vom Lichteinfall mit Hilfe eines LDR übertragen. Dazu wird das bereits auf dem Steckbrett aufgebaute Potenziometer als Festwiderstand genommen (Schleifer in Mittelstellung) und ein LDR hinzugefügt.

Versuchsaufbau mit LDR

Abbildung 3 - Sendermodul mit LDR und Festwiderstand (10k-Poti in Mittelstellung)

Diese Schaltung wirkt wie ein Spannungsteiler mit variablem Widerstand (LDR). Fällt wenig Licht auf den LDR, ist sein Widerstandswert hoch und die Spannung am AD0 Eingang des XBees steigt an, fällt dagegen viel Licht auf den LDR nimmt sein Widerstand stark ab, und entsprechend sinkt der Spannungswert am Messeingang. Zwei Messungen sollen das bestätigen.

Betrachte für die Auswertung die beiden gerahmten Datenbereiche. Sie umfassen wieder 16 Byte. Die beiden Datenpakete stehen vor dem letzten Byte in der gerahmten Reihe; das sind

bei viel Lichteinfall       00 6F und 00 69

bei wenig Lichteinfall   01 60 und 01 5F.

Die Bytes 0x00 6F werden in das unten stehende binäre Raster eingetragen.

Die daraus abzulesende 10-stellige Binärzahl 0b0001101111 entspricht im Dezimalsystem der Zahl 111, während die zweite Binärzahl 0b0001101001 der Zahl 105 entspricht. Umgerechnet in einen Spannungswert ergeben sich die Werte: 0,36 V und 0,34 V.

Für die beiden anderen Werte 0x01 60 und 0x01 5F ergeben sich nach der gleichen Umrechnungs-methode Spannungswerte von 1,13V in beiden Fällen.

5 - LED Steuerung der Empfänger-Schaltung mit PWM

Auf der Empfänger Seite schließen wir jetzt noch eine LED an, die um so heller leuchten soll, desto mehr Licht auf den LDR auf der Sender-Seite fällt. Dazu muss die LED mit Vorwiderstand von 220 Ohm an einen PWM-Ausgang des XBees angeschlossen werden. Es gibt davon zwei, wie ein Blick in das Datenblatt des XBees verrät, die über die Pin 6 und 7 angesteuert werden können. Dabei steuert die am Empfänger eintreffende Spannungsgröße das Tastverhältnis (Arduino UNO - LED, Abschnitt 7) der Puls-Weiten-Modulation oder PWM (Grundlagen - Pulsweite-Pulsfolge, Abschnitt 3) und damit die Helligkeit der angeschlossenen LED. Im Versuch benutzen wir Pin 6 (PWM0-RSSI).

 

Die LED-Empfänger-Schaltung mit PWM-Steuerung

Abbildung 4 - XBee-Empfänger mit LED und Vorwiderstand von 220 Ohm an Pin 6 (PWM0).

Ergebnis

Auf der Sender-Seite kann die Empfindlichkeit der Licht-Sensorschaltung durch Veränderung des Widerstandes über den Mittelabgriff des Potenziometers verändert werden. Stelle die Empfindlichkeit so ein, dass die LED bei abgedunkeltem LDR (Daumen drauf halten!) gerade noch leuchtet.

Je nach Lichteinfall kann man jetzt eine unterschiedlich stark gedimmte LED beobachten. Es dauert immer ein oder zwei Sekunden, bis sich der Effekt einstellt, da die Sample-Rate auf 1s bei zwei Proben eingestellt wurde. Durch ändern der Rate am Sender-Modul kann die Reaktionszeit verkürzt werden.

Die meisten der hier durchgeführten Experimente gehen zurück auf Vorschläge von J. A. Titus, die er in seinem Buch The Hands-on XBee Lab Manual veröffentlicht hat.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf