besoin d aide svp pour projet émulation nano v3 thrustmaster.

bonjour ,

désolé de vous déranger,j espère être au bonne endroit,j aurais besoin de vos lumières svp…
je fait du sim racing,course auto sur pc,d habitude sur simhub un logiciel créé par un français qui est déjà configuré…
la j ai voulu tenté un tuto pour mettre un vrai volant de voiture sur mon t500rs :
http://rr-m.org/blog/emulating-thrustmaster-t500-gt-wheel-electronics-with-arduino/#more-445

le téléversement se déroule bien,les soudure et câblage son ok,mais j ai la moitié des boutons qui ne fonctionnent pas,tout ceux sur le byte 1 port D…
le directionnel pad sur byte 2 port C est reconnu comme bouton poussoir et non comme la croix directionnelle…
j ai essayé de changer des valeurs au hasard ,comme je n y connait rien en codage,j ai reussi a faire clignoter les bouton,mais ça sert a rien …lol
je viens vers vous avec l espoir que peut être une âme charitable voudrais bien m aidé???
je vous joint le fichier ino en fichier…

je m excuses encore du dérangement occasionné…
merci de m avoir lu.

t500_gt_wheel_emu_13buttons.ino (5.24 KB)

ps: je suis pas très doué en anglais,et utilise le traducteur de google en général...

j ai déjà avec simhub,4 tm1638 dual et single color,sur des nano v3.
2 motor drive l 293d sur 2 uno r3..
2 arduino micro bour emuler des bouton box..

mais simhub a déjà les sketch et les librairie intégré. du coup j ai juste a choisir ma carte avec l option que je lui donne et c est automatique...

pour compléter un peu j ai un décalage de bouton ,après des test,les pin a-0-1-2-3 qui devrait être le dpad son des bouton 12-13-7-8.
le pin a4 devrait etre le bouton 8 mais du coup il est num 9
le pin a5 devrait etre num13 mais se retrouve n5
le d8 bouton 10 et du coup n2 et le pin d9 bouton 7 et n6.

par ailleurs je vois bien a la fin du sketch que ca veut me dire quelques chose mais je vois pas :

/* This doesn’t work with T500RS base - we need to shift 1 bit left before data transfer
wheelState[0] = PIND >> 3; // T500 GT byte1 - take bits 3-7 from PORTD
wheelState[1] = (PINC & B00111111) | ((PINB & B00000011) << 6); // T500 GT byte2 - take bits 0-5 from PORTC + the rest from PORTB Bxxxxxx11
*/

// everything is shifted 1 bit left - compared to this sketch description
wheelState[0] = ((PIND & B11111000) >> 2 ) | ((PINB & B00000010) >> 1); // T500 GT byte1 - take bits 3-7 from PORTD + Bit 1 from B
wheelState[1] = ((PINC & B00111111) << 1) | ((PINB & B00000001) << 7) | B0000001; // T500 GT byte2 - take bits 0-5 from PORTC + Bit 0 from B

j ai ça mais j ai changé les valeurs sans succès :

//#include "pins_arduino.h" // not necessary in 1.6.3?

byte wheelState [8];
volatile byte pos;

void setup (void) {
DDRB |= B00001011; // digital pins 8,9,11 used as inputs with a pull-up to +VCC
PORTB |= B00001011;

DDRC |= B00111111; // pins 14-19 (A0 - A5) also used as digital inputs
PORTC |= B00111111; // pulled-up to +VCC via internal 100k resistors

DDRD |= B11111011; // digital pins 0,1,3,4,5,6,7 used as inputs
PORTD |= B11111011; // pulled-up to +VCC via internal 100k resistors

wheelState[0] = B00111111; // T500 GT wheel first data byte - 5 buttons
wheelState[1] = B11111111; // second data byte - 8 buttons
wheelState[2] = B11111111; // this and below - not used, but wheelbase reads all 8 bytes...
wheelState[3] = B11111111;
wheelState[4] = B11111111;
wheelState[5] = B11111111;
wheelState[6] = B11111111;
wheelState[7] = B11111111;

:slightly_smiling_face:

Désolé, moi j'y connais rien sur ce sujet : si tu n'as pas de réponse, c'es probablement parce que peu de gens connaissent le sujet ici. Essaye de poster sur le forum anglosaxon...

Oui merci de ta réponse ,c’est très sympa...