No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Thomas Buck 7177532a4a add PPMDecoder fork 11 months ago
..
examples add PPMDecoder fork 11 months ago
src add PPMDecoder fork 11 months ago
.gitattributes add PPMDecoder fork 11 months ago
LICENSE add PPMDecoder fork 11 months ago
README.md add PPMDecoder fork 11 months ago
keywords.txt add PPMDecoder fork 11 months ago
library.properties add PPMDecoder fork 11 months ago
ppm_img.PNG add PPMDecoder fork 11 months ago

README.md

PROJECT_PHOTO

PPM Decoder

Arduino library for decoding PPM receiver signal

Features

  • Small size and easy to use
  • Non-Blocking operation using interrupts
  • Precise resolution of signal measuring (+- 0.5us)
  • Fast PPM to PWM (0-255) and Servo (544-2400us) conversion
  • Compatible with all ATMega328 16Mhz or 8Mhz Arduino boards

How to use

#include<PPM.h>                        // include library
void begin(PPM_PIN, MAX_CHANNELS);     // init in void setup() // works only with pin 2(PD2) or pin 3(PD3)
bool available();                     // returns 0 if there is no valid pulses from receiver
uint16_t get(CHANNEL_NUMBER);            // get channel value in us
uint8_t getPWM(CHANNEL_NUMBER);        // get pwm (0-255) channel value
uint16_t getServo_us(CHANNEL_NUMBER);  // get Servo value (0-180)deg for using with Servo.writeMicroseconds() in range (544-2400)us

Example

#include <PPM.h>

#define CHANNELS 8    // max ppm channels
#define PPM_PIN 2    // receiver ppm pin

void setup() {
  ppm.begin(PPM_PIN, CHANNELS);
  Serial.begin(115200);
}

void loop() {

  for (uint8_t i = 1; i <= CHANNELS; i++) // print all channel values
  {
    Serial.print(ppm.get(i));
    Serial.print('\t');
  }
  Serial.println();
  delay(10);

}