met nrf24 een integer versturen

Hoi,

Op http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo staat een voorbeeld van een transmitter en reciever.
Dit werkt prima.

Ik wil echter geen analoge waardes doorsturen, maar slechts een 0 of een 1 van een schakelaar.

Dus dacht ik deze code:

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  joystick[0] = analogRead(JOYSTICK_X);
  joystick[1] = analogRead(JOYSTICK_Y);
  
  radio.write( joystick, sizeof(joystick) );

}//--(end main loop )---

even te vervangen door deze:

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  int sch_state = digitalRead(schakelaar);
  
  radio.write(sch_state);

}//--(end main loop )---

Maar dat geeft conversieproblemen volgens de error.

Waarom kan dat niet? Of hoe krijg ik dat wel werkend?

Groet
Johan

Je moet ook de lengte van de variabele meegeven. Als je kijkt bij de joystick heb je dit:

radio.write( joystick, sizeof(joystick) );

De eerste parameter is het adres van de variabele. De 2e is de lengte.

Dus als je een int wil doorgeven moet je dit doen:

radio.write(sch_state, sizeof(sch_state));

Bedankt. Ik ga het eens proberen.

Ik kwam er ook al niet zo uit wat die sizeof functie nu precies deed.
Hoe geeft de functie sizeof de lengte dan door? Ik zie geen andere parameters dan de variable zelf.

heel vroegah.... op school hadden ze het over functies in wiskunde....

bijvoorbeeld: f(x) = x^2 + 3x +3

Als je dan voor x een waarde invulde kreeg je een resultaat.

In C/C++ zou je deze functie schrijven als:

int f_x(int x) {
   return x*x + 3*x + 3;
}

hierbij:
geeft de int voor f_x aan dat er een int wordt teruggegeven.
int x = de parameter
het statement return xx + 3x + 3; geef thet resultaat terug.

sizeof(x) geeft een unsigned integer lengte terug. Let wel dat niet alle compilers dit als int terug geven. Maar dan moet je echt in de Arduino core en GCC libraries duiken :slight_smile: