hello_mbot_senden_empfangen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hello_mbot_senden_empfangen [2025/02/13 11:39] – torsten.roehl | hello_mbot_senden_empfangen [2025/02/17 12:48] (aktuell) – [Hello mBot Senden/Empfangen] torsten.roehl | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
Der **Sender** sendet alle **3 Sekunden** das Signal **" | Der **Sender** sendet alle **3 Sekunden** das Signal **" | ||
+ | |||
+ | {{ : | ||
**Einsatzmöglichkeiten: | **Einsatzmöglichkeiten: | ||
* Grundlagen der **IR-Kommunikation** zwischen Robotern | * Grundlagen der **IR-Kommunikation** zwischen Robotern | ||
Zeile 21: | Zeile 23: | ||
MeIR irSender; | MeIR irSender; | ||
MeRGBLed led(0, 2); | MeRGBLed led(0, 2); | ||
- | String PROTOCOL_01=" | + | String PROTOCOL_01=" |
void setup() { | void setup() { | ||
Zeile 62: | Zeile 64: | ||
uint32_t receivedValue = irReceiver.value; | uint32_t receivedValue = irReceiver.value; | ||
- | uint32_t buttonCode = receivedValue >> 16 & 0xff; | + | uint32_t buttonCode = receivedValue >> 16 & 0xff; |
- | + | switch (buttonCode) { // ASCII als DEC! | |
- | switch (buttonCode) { | + | |
case 97: onAction_97(); | case 97: onAction_97(); | ||
} | } | ||
Zeile 90: | Zeile 91: | ||
</ | </ | ||
==== Erklärungen zum Quellcode ==== | ==== Erklärungen zum Quellcode ==== | ||
- | + | //Dieses Beispiel erfordert, dass die gesendeten Strings eine Länge von 1 haben. Empfangen werden sie, indem das Zeichen als ASCII-Wert interpretiert wird (im Dezimalformat). Damit ist dieses Beispiel bewusst als ein einfaches, exemplarisches Beispiel gedacht. Sie sind herzlich eingeladen, eigene Erweiterungen und Verbesserungen zu implementieren. Informieren Sie sich im Internet auch über das ASCII-Format. | |
+ | // | ||
== 1. Programme hochladen == | == 1. Programme hochladen == | ||
* Sender-Programm auf **mBot 1** laden | * Sender-Programm auf **mBot 1** laden | ||
Zeile 106: | Zeile 107: | ||
- | ===== Level 2 Überschrift ===== | ||
- | Der Code prüft in der loop()-Funktion kontinuierlich, | ||
+ | ====== Alternative Lösung zum Empfang ====== | ||
+ | ++++ Eine Alternative zum Empfang von Strings über Infrarot ist im folgenden Codeabschnitt dargestellt. | | ||
+ | |||
+ | <Code c linenums:1 | Listing 1: | ||
+ | #include < | ||
+ | |||
+ | MeIR irReceiver; | ||
+ | |||
+ | String msg = ""; | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | irReceiver.begin(); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | if ( isMessage() ) { | ||
+ | String s = getMessage(); | ||
+ | Serial.print(" | ||
+ | Serial.println(s); | ||
+ | } | ||
+ | // Weiterer Code (action...) | ||
+ | Serial.println(" | ||
+ | |||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Funktionen | ||
+ | */ | ||
+ | bool isMessage() { | ||
+ | msg = irReceiver.getString(); | ||
+ | return ( msg.length() > 0 ) ? true: false; | ||
+ | } | ||
+ | |||
+ | String getMessage() { | ||
+ | return msg; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | == Erklärung zum Quellcode == | ||
+ | |||
+ | Der Code prüft in der loop()-Funktion kontinuierlich, | ||
+ | |||
+ | <WRAP center round info 95%> | ||
+ | Eine Kommunikation mit Strings ist für ein Protokoll nicht unbedingt die eleganteste Methode, da keine '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ++++ | ||
hello_mbot_senden_empfangen.1739446785.txt.gz · Zuletzt geändert: 2025/02/13 11:39 von torsten.roehl