Aller au contenu

phdv61

Expert gestion électronique
  • Messages

    7 252
  • Inscription

  • Dernière visite

  • Réputation : Jours gagnés

    134

Tout ce qui a été posté par phdv61

  1. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  2. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  3. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  4. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  5. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  6. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  7. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  8. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  9. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  10. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  11. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  12. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  13. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  14. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  15. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  16. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  17. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  18. Bon anniversaire, camarade de l'ile. Ton camarade né à Lille.
  19. beaucoup plus simple. Tu récupères le signal PMH ( impulsion entre +-4 et +-12). Tu redresses avec une diode, puis un pont de résistances pour amener la tension en dessous de 5V. Tu conditionnes avec un transistor pour avoir un beau signal carré. et tu rentres dans la broche D2 sous interruption, montante ou descendante. Il te reste à mesurer le temps sur quelques déclenchements ( j'en prends 8), et tu as tes tr/mn. // variables pour la routine d'interruption & le calcul des tr/mn (RPM) volatile unsigned long front_precedent_uS = 0; volatile float temps_entre_fronts_descendants_uS= 0.0; volatile int tick=0; float RPM = 700.0, previous_RPM = 700.0; // cette valeur basse permet de détecter l'absence d'info compte-tour. //à mettre dans "setup" front_precedent_uS = micros(); // on initialise ici la référence de "temps zéro" utilisée par la routine d'interruption -> 0 = broche D2 attachInterrupt(0, falling, FALLING); // MISE en ROUTE de la routine d'interruption qui calculera les tr/mn // à mettre dans "loop" // CALCUL des TR/MN (RPM) dont on a besoin pour corriger le MAF. en micro-secondes donc pour 750tr/mn = 12,5Hz = 50 /4. 50Hz = 20ms donc RPM = (15 000 000 / temps micros) v = double ( (15000000.0 / temps_entre_fronts_descendants_uS) ); // temps_entre_fronts_descendants_uS donne le temps en micro-secondes entre deux interruptions if (v > 6000.0) v = 750.0; // il y a eu une erreur de mesure ( et donc des IT très rapprochées !) .On affiche un RPM de 750 juste sur le graphe else if (v<600.0) v = 600.0; // et on ne modifie donc pas la variable RPM, qui contient donc l'ancienne mesure. Ainsi, pas de souci avec le MAF else { previous_RPM = RPM; // on retient la valeur précédente, RPM = float (v); // et on met à jour la mesure courante } // Et enfin ... la routine sous interruption void falling() { // sur front descendant à 750tr/mn (12,5Hz) avec 4 bossages, la fréquence lue est donc de 50Hz, soit une récurrence de 20ms. // à 3000tr/mn (50 Hz ) avec 4 bossages, la fréquence lue est donc de 200Hz, soit 5ms. assez rapide donc // 8 déclenchements représentent donc entre 40ms(3000RPM) 60ms(2000RPM) et 160ms(750 RPM) Cela suffit. On garde le CPU pour autre chose.... unsigned long x = micros(); // on prend note, en premier, du temps courant, correspondant à l'IT tick++; // et donc, nous avons eu un front de plus // pas besoin de masquer l'interruption. Car le calcul suivant est très rapide... Mais on aurait pu... if (tick>=8) // 8 fronts, alors le moment est venu de calculer les RPM. Attendre 8 fronts successifs permet de lisser la mesure. un peu bruitée au ralenti... { unsigned long duree; if (x> front_precedent_uS ) duree = x - front_precedent_uS; // attention, micros() revient à zéro toutes les 70 minutes. on le prend en compte juste dessous else duree = 4294967295 - front_precedent_uS + x; temps_entre_fronts_descendants_uS = float ( (duree*1.0) / (tick*1.0)) ; // on calcule le temps moyen entre chaque déclenchements de l'IT, soit 7,5ms environ à 2000tr/mn. front_precedent_uS = x; // on retient le temps du dernier front pour le prochain calcul tick=0; // et enfin on ré-initialise le compteur de fronts } } Dernières choses : 1/ ATTENTION DE LAISSER LA BUTEE, même dévissée, car elle empêche les aubes de toucher les parois en cas de problème de vide. 2/ la meilleure gestion de la GV n'est PAS LINEAIRE. On ouvre les aubes lentement au début, pour permettre à la turbine de prendre de la vitesse. On ouvre ensuite plus rapidement jusque environ mi-ouverture, car c'est avec une demi-ouverture que le turbo GV a la meilleure efficacité A l'approche de la pression max de consigne, on ouvre les aubes plus rapidement pour réguler sur la pression max Enfin, oui, l'ECU gère les aubes en haut des tours pour avoir 4V max d'air sur le débitmètre. C'est aussi pour cela qu'il faut s'en affranchir.
  20. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  21. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  22. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  23. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  24. Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.,Pour avoir accès au contenu des discussions, vous devez être inscrit sur le forum.
  25. Mieux vaut tard que jamais. Bon anniversaire ! En espérant pouvoir faire ta connaissance en chair et en os un de ces jours, comme celui de tous les membres actifs et moins actifs...
×
×
  • Créer...

Information importante

Ce site web utilise les cookies pour améliorer votre expérience de navigation.