Membre trés attaché
Date d'inscription: décembre 2011
Localisation: FRANCE , Montelimar
Messages: 978
Thanks: 770
Thanked 1 647 Times in 579 Posts
Pouvoir de réputation: 34
|
bonjour
petit deterrage de post ,
j 'ais essayer de generer un signal phm et acc avec un ardunio .
n'etant pas tres fort en programmation ,j'ais modeliser une roue de 60 dent avec les dents et les creux dans un tableau avec 2 colonnes ,la premiere colone represente le regime et le pmh ,l'autre le signal acc .
ardunio vient lire le tableau a la suite et affiche les donnees sur 2 leds.
le signal pmh est appliquer a un transformateur pour generer un signal inductif et semi sinusoidal (merci a notre ami capalti pour son tuto).
essaie sur un ecu edc15c2 1broche .
l'essais est concluant ,le regime moteur est afficher sur mon diag et la syncronisation effectuer .
ca affiche 489tr/m syncro oui .
le probleme parceque il est la ,c'est quant j'essaye de monter dans les tours ,la syncro est perdu.
par contre ,si je descend dans les tours ,la syncro suit .
je me dis c'est ma position du flag acc qui n'est pas bon ,ou j'ais louper quelques chose
le programme .
int pinLed[2]={12,13}; // Tableau listant les donnees ( 2 sorties 12 et 13 )
//Tableau à double entrée listant l’état (booléen 1 allumé, 0 éteint) des LED à chaque séquence
boolean affichage[120][2]={
1,0, // dent 1
0,0, // creux 1
1,0, // dent 2
0,0, // creux 2
1,0, // dent 3
0,0, // creux 3
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0, // dent 10
0,0, // creux 10
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,// dent 17
0,0, // creux 17
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0, //
1,0, // dent 30
0,0, // creux 30
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0, // dent 40
0,0, // creux 40
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0, // dent 47
0,0,
1,1,
0,1, // acc ok jusq ua 489tr/m
1,0,
0,0,
1,0, //dent 50
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
1,0,
0,0,
0,0, //dent 58 pmh
0,0, // creux 58 pmh
0,0, // pmh
0,0, //pmh
1,0, // dent 60
0,0 //creux 60
};
void setup() {
for (int i=0;i<2;i++)
{
pinMode(pinLed[i],OUTPUT);
digitalWrite(pinLed[i],LOW);
}
}
void loop() {
for (int i=0;i<120;i++) // boucle de séquence d'affichage
{
for (int p=0;p<2;p++) // boucle pour chaque donnees
{
boolean etat=affichage[i][p]; // on va chercher l'état pour les donnees
digitalWrite(pinLed[p],etat); // on met la donnee concerné à l'état
}
delayMicroseconds(1000); // pause d'affichage
// on passe à la séquence suivante
}
// fin des séquences et on repart au début de la boucle()
}
deja c'est pas mal ,mais j'aimerais arriver a plus de tr/m .
cordialement
|