problem rc receiver signal

exactly. All the other code required the servo to read exactly 14335.

Again, run the code yourself!

sorry guys i can't get my head round this.. i thought if i use val > 14335 it would work for any value greater than 14335 regardless of wether the value moves slightly.

pulseIn(rcpin, INPUT);

shouldn't this be

pulseIn(rcpin, LOW);

I think INPUT is defined as 0 anyway but just to clarify the code shouldn't it be LOW?

KeithRB:
exactly. All the other code required the servo to read exactly 14335.

I never saw any code of the OPs of the form ( (14335 ? val) ?? (val ? 14335)), other than your reply to OP which I thought was a typo and Arrch's misreading of it. Did OP edit his 14335/14535s in the original post?

Again, run the code yourself!

Agreed

Guys thanks for all your help on this, it's late here in the UK so calling it a day. i'll run the code and try and get a better understanding. fantastic forum and thanks for helping me out.

Cheers

mustang493:
sorry guys i can't get my head round this.. i thought if i use val > 14335 it would work for any value greater than 14335 regardless of wether the value moves slightly.

Hard to get your head around because you've gotten a lot of ideas, and some from every one of us has been wrong in one way or the other :slight_smile:
You could probably understand better if you broke it up like this?

  if (val > 15555){
     // joystick is FORWARD
  }
  else if (val < 14444) {
     // joystick is REARWARD
  }
  else {
     // joystick is NEUTRAL
  }

I changed the numbers so we would quit misreading 14335/14535 :slight_smile:

I changed the numbers so we would quit misreading 14335/14535

Actually, this is a perfect illustration of why magic numbers are a bad idea.

#define LOW_VAL 14335
#define HIGH_VAL 14535

if(val < LOW_VAL)
{
}
else if(val > HIGH_VAL)
{
}
else
{
}

means you correct an error/erroneous value in one place, and the logic is far easier to see.

Arrch:

 if ( 14335 < val || val < 14535) {

Can be simplified to

if ( val != 14335) {

So you want the LED to be off at that value, and on otherwise? Seems a bit loft to expect it to be EXACTLY that value.

Actually I think that code simplifies to

if (val < 14535) {

Which is still in error, but not that error :slight_smile:

PaulS:
Actually, this is a perfect illustration of why magic numbers are a bad idea.

Absolutely!