Aller au contenu

Classement

  1. Lebowski

    Lebowski

    Membres


    • Points

      3

    • Compteur de contenus

      1 314


  2. Amo

    Amo

    Animateurs


    • Points

      2

    • Compteur de contenus

      3 527


  3. wilde

    wilde

    Membres


    • Points

      2

    • Compteur de contenus

      1 574


  4. carbman

    carbman

    Membres


    • Points

      1

    • Compteur de contenus

      1 746


Contenu populaire

Affichage du contenu avec la meilleure réputation le 17/09/2022 dans toutes les zones

  1. Bah, je trouve l'ensemble équilibré, notamment niveau culasses, remarquable...
    2 points
  2. Amo

    Panne Allumage Récurrente

    Mouais... Le seul souci, c'est qu'au delà de 5 ou 6 pages il est deja compliqué de s'y retrouver mais alors au delà de 30 ???
    2 points
  3. Lebowski

    Panne Allumage Récurrente

    Je pense à un truc vécu, as tu vérifié l'état de tes cosses (boîte à fusibles, alime bobine, ect...)? En allant trifouiller dans la boîte à fusibles pour faire du tri, je me suis rendu compte que certaines cosses d'époque cassaient comme du verre en essayant de les débrancher, du coup je les ai toutes remplacées. Je ne sais plus si ça a déjà était suggéré, mais quand tu tombe en panne, as tu essayé de brancher directement le + de ta bobine sur ta batterie?
    1 point
  4. C'est pas faux ?
    1 point
  5. Ca c'est un étouffoir électromagnétique (les gicleurs sont sur les carbus). Il sert à couper l'air lors de l'arrêt du moteur. Il n'agit que sur le ralenti donc il y a peu de chance que ce soit la cause de la panne
    1 point
  6. On va finir par faire le tour de toutes les pannes possible sur ce moteur, ce post va devenir une référence pour un dépannage ?
    1 point
  7. dduck

    Choix des fusibles

    Sans être un spécialiste, il faut comprendre qu'un fusible trop gros mettra plus de temps à sauter en cas de court circuit ce qui augmente le risque de surincident donc éventuellement ... d'incendie ... Leur taille est fonction du circuit qu'ils protègent
    1 point
  8. Salut à tous ! Grande nouvelle, le problème d'interruption capricieuse est réglé ! Bilan: ça ne venait pas d'un problème de signal mais bien un problème logiciel. (Ca ne m'empêchera pas de passer sur un Pull-up externe à l'avenir) En fait l'ISR n'appréciait l'appel à micros() et le lancement du Timer1 via la librairie Timerone.h. J'ai contourné le problème en configurant manuellement le Timer. Au passage de la cible, je calcule directement la période avec le comptage du Timer1, et le remet à zéro. Le Timer1 peut déclencher des interruptions par comparaison avec une valeur donnée. Sur le schéma ci desssus, la ligne rouge représente la valeur de comptage du Timer. Finalement, c'est beaucoup plus simple ainsi et la loop() est désormais totalement indépendante. Ca va me permettre de revoir toute l'architecture du programme. Voici le bout de code correspondant: volatile int unsigned long overflow_count = 0; volatile int unsigned long T = 0; volatile bool etincelle = 0; volatile int unsigned long D = 0; volatile int unsigned long Davant_rech = 0; /* Version d'essai pour validation fonctionnement par ISR Fait fonctionner le moteur avec une avance fixe Une ISR est déclenchée au passage de la cible: Le Timer 1 est remis à 0 en début de période. 3 ISR sont configurées sur ce timer: -la première quand la valeur Timer atteint la valeur A correspondante à D => l'étincelle est déclenchée -la deuxième quand la valeur Timer atteint la valeur B correspondante à D + Davant_rech => la bobine est mise en charge - la troisième en cas de débordement du Timer (il peut compter jusqu'à 524ms avant de déborder) cette troisième ISR sert à compter les périodes T supérieures à 524ms, elle ne sert donc que pour les régimes inférieurs à 115 tr/min */ void setup() { Serial.begin(115200); pinMode(2, INPUT_PULLUP); pinMode(3, OUTPUT); cli(); // désactive les interruptions EICRA = 0b000000010; // Règle l'interruption broche D2 sur FALLING EIMSK = 0b000000001; // Autorise les interruptions sur D2 TCCR1A = 0b000000000; // Règle le Timer1 TCCR1B = 0b000000011; // Règle le prediviseur Timer1 à 64 => 1 clock = 4µs TIMSK1 = 0b000000111; // Autorise les interruptions par comparaison registre OCR1A, OCR1B, et overflow sei(); // Réactive les interruptions } ISR(TIMER1_COMPA_vect){ // ISR qui déclenche l'étincelle digitalWrite(3, HIGH); } ISR(TIMER1_COMPB_vect){ // ISR qui remet en charge la bobine digitalWrite(3, LOW); } ISR(TIMER1_OVF_vect){ // ISR déclenchée par overflow Timer1 (pour calcul période T) overflow_count++; // Compte le nombre de débordements TCNT1 = 0; // Remet Timer 1 à 0 } ISR(INT0_vect){ // ISR déclenchée par le passage de la cible T = overflow_count*65535 + TCNT1; // Calcul la période en cycles horloges TCNT1 = 0; // Remet le Timer à 0 overflow_count = 0; // Remet le compteur overflow à 0 pour le prochain calcul T = T * 4; // Convertit les cycles d'horloge en unité de temps (un cycle = 4µs) D = T / 180 * 50; // Calcule le délai avant étincelle (pour respect avance allumage) Davant_rech = T * 3 / 10; // Calcule le délai avant recharge bobine (pour respect Dwell) OCR1A = (D/4-2); // Fixe le seuil d'interruption OCR1B = ((D + Davant_rech)/4-2); } void loop() { } Affaire à suivre !
    1 point
×
×
  • Créer...