Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_senden_empfangen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hello_mbot_senden_empfangen [2025/02/13 12:08] torsten.roehlhello_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 **"LED_ON"**. Der **Empfänger** schaltet daraufhin die **LED für 500 ms auf Rot** und wartet anschließend **1 Sekunde**, bevor er erneut ein Signal empfängt. //  Der **Sender** sendet alle **3 Sekunden** das Signal **"LED_ON"**. Der **Empfänger** schaltet daraufhin die **LED für 500 ms auf Rot** und wartet anschließend **1 Sekunde**, bevor er erneut ein Signal empfängt. // 
  
 +
 +{{ :inf:msr:infrared.png?450 |}}
 **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="a";+String PROTOCOL_01="a"; // hier immer die Länge 1!
  
 void setup() { void setup() {
Zeile 62: Zeile 64:
  
     uint32_t receivedValue = irReceiver.value;  // Rohwert     uint32_t receivedValue = irReceiver.value;  // Rohwert
-    uint32_t buttonCode = receivedValue >> 16 & 0xff; +    uint32_t buttonCode = receivedValue >> 16 & 0xff;    
-    // oder  DEC to ASCII mit: char code = (char)buttonCode +    switch (buttonCode) { // ASCII als DEC!
-    switch (buttonCode) {+
       case 97: onAction_97();       case 97: onAction_97();
     }     }
Zeile 90: Zeile 91:
 </Code> </Code>
 ==== 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 108: Zeile 109:
  
 ====== Alternative Lösung zum Empfang ====== ====== Alternative Lösung zum Empfang ======
-++++ Eine Alternative zum Empfang von Strings über Infrarot ist im folgenden Codeabschnitt dargestellt. Auf dieser Grundlage lassen sich schnell eigene Protokolle zur Kommunikation über die Infrarot-Schnittstelle erstellen. |+++++ Eine Alternative zum Empfang von Strings über Infrarot ist im folgenden Codeabschnitt dargestellt. |
  
 <Code c linenums:1 | Listing 1:AlternativeEmpfang.ino> <Code c linenums:1 | Listing 1:AlternativeEmpfang.ino>
Zeile 150: Zeile 151:
 == Erklärung zum Quellcode == == Erklärung zum Quellcode ==
  
-Der Code prüft in der loop()-Funktion kontinuierlich, ob eine neue IR-Nachricht empfangen wurde, indem die Funktion isMessage() aufgerufen wird. Wenn eine Nachricht vorhanden ist, wird sie über die serielle Verbindung ausgegeben. Die Funktion isMessage() liest die Nachricht vom IR-Empfänger und überprüft, ob sie nicht leer ist. Die Funktion getMessage() gibt die empfangene Nachricht zurück. Diese Struktur ermöglicht es, die Nachrichten vom IR-Empfänger zu kapseln und effizient zu verarbeiten.+Der Code prüft in der loop()-Funktion kontinuierlich, ob eine neue IR-Nachricht empfangen wurde, indem die Funktion isMessage() aufgerufen wird. Wenn eine Nachricht vorhanden ist, wird sie über die serielle Verbindung ausgegeben.  Die Funktion getMessage() gibt die empfangene Nachricht zurück.
  
 <WRAP center round info 95%> <WRAP center round info 95%>
Zeile 158: Zeile 159:
  
 ++++ ++++
-====== Aufgabe ====== 
- 
  
-Erstelle ein einfaches Protokoll für den Datenaustausch zwischen zwei Arduino-Boards, bei dem nur Zahlen als Befehle verwendet werden. 
hello_mbot_senden_empfangen.1739448488.txt.gz · Zuletzt geändert: 2025/02/13 12:08 von torsten.roehl