Hello, I want to use an Uno in an RC galley to control the oars. Idea is that the Uno receives two servo PWM streams from the RC Rcvr (call them "throttle" and "rudder") then generates four PWM streams to control four servos which drive the oars; one on each side to drive the sweeping back and forth, and another one on each side to raise/lower the oars.
I put together a little shield to interface all this for a prototype. It has 3-pin connectors for the four servos, and for connections from the RC Rcvr. I'm using servo extension cords to connect the Rcvr to the Arduino's shield's connectors. It is these cords which pass +5V from the arduino to the Rcvr via their red wire (currently the Arduino gets its +5V from the laptop USB cable).
I have selected PortB2:0 as inputs from the Rcvr (I added a third connector for future use). These are pins 16, 15, 14 on the 328. I copied the little example routine to read a PWM input pulse width and print the result on the monitor. All I ever get is zero, once a second, indicating it is timing out waiting to see a pulse.
I'm a little handicapped because I don't have access to an oscilloscope, but my multimeter reads the DC level on the input as 0.27V and 0.46V with the RX transmitter stick at its two end points. This is consistent with 1msec and 2msec pulses of amplitude between 4V and 5V, which should be large enough for the Uno to see. All three ports behave the same. I'm sure it's something silly; is there something else I have to declare in order to use PulseIn? Do I have to "enable" Port B somehow? Or have I picked pins unsuitable for this function?
It would be lovely to have a scope even for half an hour! I should mention that I verified continuity from the three 3-pin connectors to the board SIP connector; and also from the Atmega pins to its SIP connector; but I haven't actually measured it all the way through because with the shield plugged into the Arduino I can't probe the Atmega pins.
Any suggestions would be gratefully received.