Zum Inhalt wechseln


Tutorial info

  • Added on: 02. Okt. 2016 10:39
  • Views: 2996
 


* * * * *
0 Ratings

Empfängersignal in Arduino Verarbeiten

Wie man ein PWM Signal mit dem Arduino verarbeiten kann.

Geschrieben von brused on 02. Okt. 2016 10:39

Um ein PWM Signal mit einem Arduino-Board auszulesen benötigen wir ein Empfänger der das Signal bereit stellt, ein Arduino Board das mit dem Empfänger verbunden wird und etwas Software die wir

selbst schreiben werden.

Wichtig ist, das dass Arduino Board und der Empfänger sich die Erdung (-) teilen. Ansonsten wird das Signal nicht korrekt verarbeitet.

Zusätzlich benötigen wir die Library RCReceive.

 

#include "makros.h"
#include "RCReceive.h"

RCReceive rcReceiver;

byte RC_IN      = 11; //PB3

 

Hier legen wir fest, das die Signalleitung mit dem Pin 11 des Arduino verbunden wird.

 

Im Setup wird die RCReceive Library initialisiert mit dem Pin der Signalleitung.

void setup() {
  rcReceiver.attach(RC_IN);
}

 

 

Im Anschluß wird dann im Loop das Signal gelesen und ggfl. weiterverarbeitet.

 

In dem Folgenden Beispiel wird ein 3-Stufiger Schalter abgeprüft.

 

void loop() {
  rcReceiver.poll();

  if (rcReceiver.hasNP() && !rcReceiver.hasError()) {
    int pwm_time = rcReceiver.getMsValue();

    /*
       Schalter steht auf oberer Stellung +100%
    */
    if ( pwm_time < 2000 && pwm_time > 1800 ) {
      // Etwas tun
    } else
      /*
         Schalter steht auf Mittelstellung
      */
      if ( pwm_time >= 1400  && pwm_time < 1600)
      {
        // Etwas tun
      } else
        /*
           Schalter steht auf unterer Stellung. -100%
        */
        if ( pwm_time >= 1000 && pwm_time < 1200 )
        {
          //Etwas tun
        }
  } else if (rcReceiver.hasError()) {
    // Fehlerbehandlung failsafe oder sowas...
  }
}

 

Das ganze kann man natürlich auch mit dynamischen Gebern programmieren.

 

Ich hoffe damit etwas Licht ins Dunkle der PWM-Signalverarbeitung mit Arduino gebracht zu haben.