Je débute dans la programmation de l'arduino, et je me suis lancé dans la conversion d'un pad xbox360 en télécommande de voiture R/C en utilisant un shield USB+arduino mega. J'ai pas mal progressé, j'arrive à piloter les servos de la voiture.
Par contre je bloque sur la création d'une fonction trim:
Range Pad: 0 - 1023
Le truc est que si je fais bêtement ValeurPad+trim cela modifie les fins de courses. Je souhaiterai que la course totale reste entre 0-1023 et avoir uniquement le centre qui bouge. J'ai essayé avec la fonction Map mais je n'y arrive pas... =(
Ce que je cherche à faire:
Avec range Pad: 0 - 1023 et trim=0 -> Valcentre = 1023/2
Avec range Pad: 0 - 1023 et trim=+50 (exemple) -> Valcentre = 1023/2 +50 mais range toujours entre 0-1023 et en utilisant toute la course du pad
Un dessin plutot qu'un long discours:
Avec range Pad: 0 - 1023 et trim=0 -> Valcentre = 1023/2
Avec range Pad: 0 - 1023 et trim=+50 (exemple) -> Valcentre = 1023/2 +50 mais range toujours entre 0-1023 et en utilisant toute la course du pad
Un dessin plutot qu'un long discours:
Est ce que je peux faire ça avec une fonction ?
Merci pour votre aide,
Marc
Bonsoir
je ne suis pas sur d'avoir bien compris ta question
mai si tu veux ajouter/retrancher une valeur de trim sur une gamme centrée à 512 +/- trim tu peux mapper les 2 zones
pour un trim de +50 tu test si tu es =< à 562 (512+50)
X= map(val, 0, 562, 0, 512);
si tu es > 562
X= map(val, 563, 1023, 513, 1023);
starefly:
je fais l'opération suivante :
int robert;
robert=511*512/511;
Serial.println(robert);
et à l'écran en tant que résultat j'ai "-1" ??? A quoi est-ce du ?
Dépassement de capacité. Un int est compris entre -32768 et +32767.
511*512 = 261632 ce qui est largement au-dessus de la plage des int.
Par contre si tu utilises un long qui est dans la plage -2147483648 et +2147483647 alors tu devrais trouver un résultat exploitable (cad 512).
long robert;
robert=511*512/511;
Serial.println(robert);
Par contre :
int robert;
robert=511/511*512;
Serial.println(robert);
Fonctionne
Il y a lieu de faire une petite révision sur les ordres de priorité des opérations
@+