Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_infrared

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_infrared [2025/02/03 15:20] torsten.roehlhello_mbot_infrared [2025/02/27 08:36] (aktuell) – [Code extrahieren] torsten.roehl
Zeile 1: Zeile 1:
 ====== Hello mBot Infrared ====== ====== Hello mBot Infrared ======
-//Dieses Arduino-Programm empfängt Infrarotsignale (IR) vom mBot Infrarot-Empfänger und gibt den erkannten Tastencode und Button-Namen über die serielle Schnittstelle aus. Es verarbeitet Signale von einer IR-Fernbedienung, erkennt verschiedene Tasten (z. B. A, B, Left, Right, 0–9) und zeigt die Werte im Serial Monitor an.//+//Dieses **Arduino-Programm** empfängt Infrarotsignale (**IR**) vom mBot Infrarot-Empfänger und gibt den erkannten Tastencode und Button-Namen über die serielle Schnittstelle aus. Es verarbeitet Signale von einer IR-Fernbedienung, erkennt verschiedene Tasten (z. B. A, B, Left, Right, 0–9) und zeigt die Werte im **Serial Monitor** an.//
  
 +{{ :inf:msr:mblock_ir.jpg?200 |}}
 +Die Makeblock IR-Fernbedienung.
  
 +===== Quellcode (engl. Sourcecode) =====
 <Code c linenums:1 | Listing 1:MinimalesProgramm.ino> <Code c linenums:1 | Listing 1:MinimalesProgramm.ino>
 #include <MeMCore.h> #include <MeMCore.h>
Zeile 24: Zeile 27:
     Serial.print("Button: ");     Serial.print("Button: ");
     switch(value) {     switch(value) {
- case IR_BUTTON_A: Serial.println("A");break; + case IR_BUTTON_A:        Serial.println("A");      break; 
- case IR_BUTTON_B: Serial.println("B");break; + case IR_BUTTON_B:        Serial.println("B");      break; 
- case IR_BUTTON_C: Serial.println("C");break; + case IR_BUTTON_C:        Serial.println("C");      break; 
- case IR_BUTTON_D: Serial.println("D");break; + case IR_BUTTON_D:        Serial.println("D");      break; 
- case IR_BUTTON_E: Serial.println("E");break; + case IR_BUTTON_E:        Serial.println("E");      break; 
- case IR_BUTTON_F: Serial.println("F");break;+ case IR_BUTTON_F:        Serial.println("F");      break;
  case IR_BUTTON_SETTING : Serial.println("Setting");break;  case IR_BUTTON_SETTING : Serial.println("Setting");break;
- case IR_BUTTON_LEFT: Serial.println("Left");break; + case IR_BUTTON_LEFT:     Serial.println("Left");   break; 
- case IR_BUTTON_RIGHT: Serial.println("Right");break; + case IR_BUTTON_RIGHT:    Serial.println("Right");  break; 
- case IR_BUTTON_UP: Serial.println("Up");break; + case IR_BUTTON_UP:       Serial.println("Up");     break; 
- case IR_BUTTON_DOWN: Serial.println("Down");break; + case IR_BUTTON_DOWN:     Serial.println("Down");   break; 
- case IR_BUTTON_0: Serial.println("0");break; + case IR_BUTTON_0:        Serial.println("0");      break; 
- case IR_BUTTON_1: Serial.println("1");break; + case IR_BUTTON_1:        Serial.println("1");      break; 
- case IR_BUTTON_2: Serial.println("2");break; + case IR_BUTTON_2:        Serial.println("2");      break; 
- case IR_BUTTON_3: Serial.println("3");break; + case IR_BUTTON_3:        Serial.println("3");      break; 
- case IR_BUTTON_4: Serial.println("4");break; + case IR_BUTTON_4:        Serial.println("4");      break; 
- case IR_BUTTON_5: Serial.println("5");break; + case IR_BUTTON_5:        Serial.println("5");      break; 
- case IR_BUTTON_6: Serial.println("6");break; + case IR_BUTTON_6:        Serial.println("6");      break; 
- case IR_BUTTON_7: Serial.println("7");break; + case IR_BUTTON_7:        Serial.println("7");      break; 
- case IR_BUTTON_8: Serial.println("8");break; + case IR_BUTTON_8:        Serial.println("8");      break; 
- case IR_BUTTON_9: Serial.println("9");break;+ case IR_BUTTON_9:        Serial.println("9");      break;
  default:break;  default:break;
  }  }
  }  }
 + delay(200);
 } }
 </Code> </Code>
 +
 +==== Code extrahieren ====
 +
 +Der folgende Code-Snippet extrahiert den //Button-Code//, sodass er direkt verwendet werden kann.
 +<Code c linenums:1 | Listing 1:snippet>
 +uint32_t  getCode(){
 +   uint32_t value = ir.value;   
 +   value = value >> 16 & 0xff;
 +   return value;
 +}
 +</Code>
 +
 +Die Funktion extrahiert das 3. Byte eines 32-Bit-Werts (''ir.value''), wobei angenommen wird, dass die Variable ''ir'' existiert. Der Wert wird um 16 Bits nach rechts verschoben und anschließend mit 0xff maskiert, um das 3. Byte zu extrahieren. Dieser Wert wird dann zurückgegeben.
 +
 +
  
hello_mbot_infrared.1738596020.txt.gz · Zuletzt geändert: 2025/02/03 15:20 von torsten.roehl