Premier panel

Fabrication de cockpit et divers ( palonnier , panels ..) c est ICI
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 320
Inscription : 26 juin 2014

Re: Premier panel

#26

Message par Hombre »

Bonjour,

En fait j'utilise une sortie traduite avec analogWrite en une échelle qui va de 0 à 5 V sur un barregraphe. De ce signal j'aimerais afficher une valeur de 0 à 100 avec des afficheurs 7 segments. Mais entre l'arduino et les afficheurs je ne trouve pas le type de décodeur ou les circuits pour la mise en oeuvre?
Comme pour un vumètre; mais une lecture pas sur un galva mais sur des afficheurs!

Ou bien alors travailler avec mon analogWrite et le travailler dans une table dans arduino de façon à l'utiliser avec un Max7219. Je crois que c'est faisable!
Avatar de l’utilisateur

Topic author
Vmf214
Nouvelle Recrue
Nouvelle Recrue
Messages : 87
Inscription : 12 décembre 2017

Re: Premier panel

#27

Message par Vmf214 »

Ca m'a l'air compliqué, j'ai jamais utilisé d'analogWrite hors d'une bibliothèque toute faite.
Tu as déjà un composant et il attend du PWM ? Il va te falloir un expert ou un module plus simple.

Sinon le Max7219 à l'air chouette.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 320
Inscription : 26 juin 2014

Re: Premier panel

#28

Message par Hombre »

Oui le max 7219 est superbe pour les digits 7 segments ou matrices. Mais à toi de realiser ton programme pour les faire fonctionner. J'ai pu réaliser pas mal d'afficheurs pour le 2000, commme les radios, l'INS et d'autres choses.
Bon je vais travailler un peu ce week sur mon problème
Cdt
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 320
Inscription : 26 juin 2014

Re: Premier panel

#29

Message par Hombre »

J'ai repris ma partie auquel j'ai affecté un bargraphe pour l'AOA qui elle fonctionne bien. Puis je reprends "AoaPosChangeValue " pour l'affecter sur des afficheurs 7 segments. Le problème c'est que lorsque j'arrive dans le jeu en vol, je suis à une valeur dans l'avion inférieur à 07 AOA. Sur mon afficheur il affiche 07, normal mais il ne varie pas du tout lorsque je modifie l'angle de l'avion.
Ce que j'ai écrit me semble bon mais pourquoi la valeur 07 reste afficher et ne varie pas? Elle reste figer???

Tu as une idée

Voici


Code : Tout sélectionner

void onAoaPosChange(unsigned int AoaPosChangeValue) { unsigned int firstDigit; unsigned int secondDigit; analogWrite(sortieAnalogique, AoaPosChangeValue/77); if (AoaPosChangeValue == 0){firstDigit=0;secondDigit=0;} else if ( AoaPosChangeValue > 4537){firstDigit=0;secondDigit=7;} else if ( AoaPosChangeValue < 5242){firstDigit=0;secondDigit=7;} else if ( AoaPosChangeValue > 5243){firstDigit=0;secondDigit=8;} else if ( AoaPosChangeValue < 5897){firstDigit=0;secondDigit=8;} else if ( AoaPosChangeValue > 5898){firstDigit=0;secondDigit=9;} else if ( AoaPosChangeValue < 6552){firstDigit=0;secondDigit=9;} else if ( AoaPosChangeValue > 6553){firstDigit=1;secondDigit=0;} else if ( AoaPosChangeValue < 7208){firstDigit=1;secondDigit=0;} lc.setDigit(5,1,firstDigit,false); lc.setDigit(5,0,secondDigit,false); } DcsBios::IntegerBuffer aoaPosBuffer(0x6024, 0xffff, 0, onAoaPosChange);
Avatar de l’utilisateur

Topic author
Vmf214
Nouvelle Recrue
Nouvelle Recrue
Messages : 87
Inscription : 12 décembre 2017

Re: Premier panel

#30

Message par Vmf214 »

c'est que tu as une salade au niveau de tes else if :yes:
ils correspondent à tous les cas possibles et ne se cascadent pas :

cas pour AoaPosChangeValue=2 :
c'est

Code : Tout sélectionner

else if ( AoaPosChangeValue < 5242){firstDigit=0;secondDigit=7;}
qui est pris en compte, les autres else if ne seront pas testés et donc pas exécutés.

cas 4538 a 65535
c'est

Code : Tout sélectionner

else if ( AoaPosChangeValue > 4537){firstDigit=0;secondDigit=7;}
En gros ton code ne gère que les cas affichage 0 et 7 tout le temps.

Il faudrait que tu fasses une division pour arriver de suite à ton secondDigit ou alors tu fais des 'et' logique

Code : Tout sélectionner

if (AoaPosChangeValue == 0){firstDigit=0;secondDigit=0;} else if ( AoaPosChangeValue > 4537 && AoaPosChangeValue < 5242 ){firstDigit=0;secondDigit=7;} else if ( AoaPosChangeValue > 5243 && AoaPosChangeValue < 5897){firstDigit=0;secondDigit=8;} else if ( AoaPosChangeValue > 5898 && AoaPosChangeValue < 6552){firstDigit=0;secondDigit=9;} else if ( AoaPosChangeValue > 6553 && AoaPosChangeValue < 7208){firstDigit=1;secondDigit=0;}
Par contre la doc indique un renvoi de valeur de 0 a 65535, tu es sûr de tes plages entre 5898 et 6552 c'est bien 09 ?

Bon courage
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 320
Inscription : 26 juin 2014

Re: Premier panel

#31

Message par Hombre »

Les 2 digits fonctionnent bien. pas de soucis pour ça.
Les valeurs prisent sont justes. Mais le problème comme tu l'as dit c'est qu'il s’arrête à la première valeurs!
Ou bien la carte ne peut lire des valeurs qui fluctuent trop vite?
Avatar de l’utilisateur

Topic author
Vmf214
Nouvelle Recrue
Nouvelle Recrue
Messages : 87
Inscription : 12 décembre 2017

Re: Premier panel

#32

Message par Vmf214 »

Mes changements dans les else if avec les && ne fonctionne pas ?
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Avatar de l’utilisateur

Hombre
Apprenti-Mécano
Apprenti-Mécano
Messages : 320
Inscription : 26 juin 2014

Re: Premier panel

#33

Message par Hombre »

trouvé....
Répondre

Revenir à « Cockpit & mod perso »