Read RC reciver

I want to controll a robot with a RC remote. The remote sends signals to the reciver that in turn sends PWM signals to the different speed controllers and servos.
I want my arduino to read the PWM signals.
Do you have an idea how to make this happen?

Doing a quick search, I found this for reading PWM from Arduino: http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/

Doing a search in XOD & XOD libraries, I don’t see any existing nodes or libraries that handle interupts or PWM input, so I don’t think anything has been written yet that will help you out.

It would probably be pretty easy to write a node using pulseIn if you can spare the wasted CPU cycles. The node for ultrasonic range finding does pretty much the same thing using while loops to wait for pin to go high, then low. You might need 3 while loops to make sure you measure the full length of the high cycle (wait for low, then high & record timestamp, then low & record 2nd timestamp). You would need to repeat this for each channel you want to read from the receiver, using a different pin for each channel. If you only have 2 channels to read, then the 2nd option in the above article might provide what you need.

1 Like

XOD will introduce some sort of event loop. You would be able to ask which pins were switched when. That’s the future. Until it would be implemented @gweimer advice is sufficiently viable.

I’m interested in this also for a Radio Controlled BattleShip project. I’ve used the PulseIn function in a hand-coded version, but it is very jittery because it does not use interrupts.

It would be great if someone had the ability to convert this code into a useable node for RC Control purposes, and could greatly increase the utility of XOD in the process.

https://ryanboland.com/blog/reading-rc-receiver-values/

1 Like