Bouton poussoir et MOSFET

Bonjour à tous!

C’est mon premier passage sur ce forum, je viens solliciter vos lumière pour un problème qui n’est surement pas grand chose, mais je tourne autour sans trouver :sob:

Plus sérieusement, je suis sur un petit projet sur ma moto, j’ai quasiment terminé, ma question ne portera pas du tout sur la programmation, mais plus quant à une question de cablage

Ma moto, possède une sécurité pour ne pas démarrer la béquille non repliée. Si la béquille n’est pas repliée, le passage de la 1ière, ou n’importe quelles autre vitesse différentes du neutre, fait que le contacteur de la béquille (qui est un bouton poussoir au final), laisse passer un signal de 12V qui coupe le moteur

C’est une sécurité que je souhaite conserver

Alors alors, mon petit projet utilise le capteur qui est après ce contacteur, avec une arduino, je pilote un MOSFET que j’ouvre très très brièvement, pour couper mon allumage 60ms.

Du coup, pas de problème, mes micros coupures fonctionnent, sauf que, j’ai directement remis ce contacteur en parallèle avec le MOSFET juste à l’arrivée du signal 12V

Mais le truc que je ne comprends absolument pas du tout, en laissant la béquille dépliée, et en mettant la 1ière, pas moyen que la moto se coupe d’elle même :frowning: Je me doute que ce n’est pas parlant, donc voici deux petits schémas en pièce jointe

1 → circuit de sécurité d’origine (la sécurité fait qu’il est impossible de couper la moto en laissant la béquille)

2 → après bidouille

Si vous n’êtes pas motard, je vous ai surement perdu :wink:

Voila donc un résumé, il faudrait:

  • que si la béquille est n’est pas repliée, que le 12V passe et coupe la moto
  • que si la béquille est repliée, pas de 12V, sauf si j’envois ce 12V par mon arduino en ouvrant le MOSFET

Voila, si je n’ai pas été clair n’hésitez pas à me le faire savoir, et un grand merci de votre aide

T.

bequille d'origine.JPG

Plus simplement, il faut que je met ce bouton quelque part et que quand j'appuie dessus, mon système sent les 12V (ça avait l'air simple à faire :p)

Merci à vous!

un truc m'échappe

Ma moto, possède une sécurité pour ne pas démarrer la béquille non repliée. Si la béquille n'est pas repliée, le passage de la 1ière, ou n'importe quelles autre vitesse différentes du neutre, fait que le contacteur de la béquille (qui est un bouton poussoir au final), laisse passer un signal de 12V qui coupe le moteur

C'est une sécurité que je souhaite conserver

et après

1 -> circuit de sécurité d'origine (pas moyen de couper la moto en laissant la béquille)
2 -> après bidouille

a fonctionne ou pas en étant remis origine?
oui
non==> vérification du contacteur faite sur la béquille?

infobarquee:
un truc m'échappe
et après
a fonctionne ou pas en étant remis origine?
oui
non==> vérification du contacteur faite sur la béquille?

Oui d'origine et remit d'origine ça marche très bien

Bonsoir;

Etant donné que ton arduino sort du 0-5V, et que tu souhaite un signal 12V pour ta moto, je te propose ce schéma en pièce jointe.

:confused: PAR CONTRE IL Y A UNE ERREUR DE MA PART: :o

Quand 0V en sortie, Q1 bloqué, Q2 passant, 12V si béquille repliée.
Quand 5V en sortie, Q1 passant, Q2 bloqué, pas de 12V si béquille repliée.

Il faut é Transistor “opposés”, un canal P et un canal N, pour adapter les niveaux.

Avec un seul canal P relié au +12V et commandé par une tension 0 ou 5V, il serrat TOUJOURS passant à moins d’avoir une sortie arduino en 0-12V.

Ca c’est du brut schéma, aprés risque de s’ouvrir le débat concernant l’isolation ou non de arduino par rapport à des sigaux provenant du 12V de la moto.

C’est une question qui ne serait pas stupide, là je ne propose qu’un basique schéma d’adaptation de niveaux, on peut si utile opto-coupler la commande de Q1 via un opto-coupleur pour isoler learduino du 12V moto …

Merci pour ton schéma, je vais me pencher dessus demain matin

En tout cas un grand merci d'avoir pris de ton temps pour le dessiner !

Bonne soirée

En gros vous voulez un ET logique en 12v d’un signal 5v et d’un signal 12v.

Si un arduino doit piloter quelque chose il faut donc un de conversion 12v vers 5v, (béquille) un bout de code qui gère l’algo (si plus compliqué qu’un simple bouton, genre mot de passe ou présence d’un certain tag NFC etc) et ensuite laisser passer le signal 0 ou 12v comme s’il venait du capteur de la béquille (je suppose que là il y a besoin de puissance)

Je m’explique pour plus de clarté, en gros je fini de fabriquer un Shiter, c’est à dire un systeme qui coupe très très momentanément le moteur (60ms) seulement au passage des vitesses

Pour se faire j’utilise mon contacteur de béquille

Lorsque que la moto est démarrée, en neutre et béquille au sol, l’ECU reçoit un signal 0V = pas de problème
Mais lorsque que j’enclenche la 1ière, si la béquille est toujours au sol, l’ECU reçoit cette fois-ci un signal 12V = problème = coupure du moteur. Maintenant si la béquille est repliée, le circuit est ouvert, donc l’ECU reçoit 0V et laisse le moteur tourner

J’utilise donc ce système pour mes micro-coupures, je me suis repiqué dessus, sauf que mon arduino en 5V, contrôle le MOSFET, pour qu’il envoie très brièvement 12V toujours via ce système. En gros, c’est comme si la béquille (qui est schématiquement le bouton, s’ouvrait 60ms)

Cette partie si fonctionne parfaitement, toute la partie software est ok

Le seul problème, c’est que maintenant, ce système de béquille d’origine, ne fonctionne plus. Dans ma tête, en remettant juste ce bouton (béquille) à l’entrée et à la sortie du système, elle agirait comme un shunt tout simplement, si elle est dépliée, les 12V passent du coup coupure (exactement le schéma en PJ)

Sauf que cette partie shunt ne marche pas. Tout le reste est intégralement ok, j’ai juste du faire une erreur de câblage

Je résume:

  • Béquille dépliée + vitesse engagée → la moto voit 12V = sécurité → coupure (ce que je veux récupérer)
  • Béquille pliée + vitesse engagée ->0V = ok pour rouler

Mon système:

  • Moto en mouvement, pin arduino à l’état HAUT = MOSFET circuit ouvert → 0V
  • Moto en mouvement, pression sur mon bouton poussoir de vitesse, pin arduino passe à l’état BAS 60ms = MOSFET circuit fermé-> 12V pendant 60ms puis MOSFET ouvert de nouveau = microcoupure de moto pour passage sans embrayer

La partie micro-coupure MOSFET marche parfaitement, comment juste câbler mon bouton poussoir de béquille d’origine, pour que béquille dépliée (rangée) la moto voit 0V, et que béquille au sol, elle voit 12V?

Le schéma en PJ est le système tel quel actuellement, je suis convaincu que c’est juste une histoire de câblage au mauvaise endroit

Et précision supplémentaire, en remettant le système d’origine, PJ n°2, ça marche parfaitement comme d’origine

Merci d’avoir pris de votre temps pour lire mon pavé :smiley:

bequille d'origine.JPG

Bonsoir;

Perso je ne suis pas convaincu du tout que le schéma “circuit” marche pour les raisons suivantes:
1/ appui sur le BP à droite = court circuit du 12V au GND
2/ D8 est mit au GND par le BP en bas vers la gauche quand ce BP est activé, que se passe t’il si D8=5V?
3/ qu’est sensé faire la branche D8 - BP du bas?

Bref, il y a surement une erreur de retranscription dans ton schéma et fort de tes convictions tu n’a pas vu cette erreur qui nous empêche de comprendre ton schéma.

Peux tu STP expliciter davantage ton schéma?

Quand à moi, je suis, restons modeste, assez convaincu de ma proposition envoyée quelques posts plutôt.

A+

Le bouton au pin8 est en mode pullup, ce qui explique cette disposition particulière

Le pin 9, qui contrôle le MOSFET, est à l'état HAUT constamment

Quand le bouton du pin8 est pressé, le pin 9 passe momentanément à l'état BAS (60ms), pour faire la coupure d'allumage

Je me suis mal exprimé pour mon montage, la partie de gauche est OK, mais, je voudrais justement, que la partie droite, soit au final prioritaire et envoie ou non 12V sans tenir compte de la partie de gauche

Dès que j'ai accès à mon PC je poste le code ici, je suis tout à fait d'accord que ça sera plus parlant pour vous

J'essaye d'abord de faire marcher ma méthode qui me semble moins propre que la tienne, uniquement parce que je ne dispose pas des pièces sous la main

Donc bien pour préciser, c'est le bouton "béquille d'origine" qui me pose problème (coté droit)
Je veux que si le bouton est fermé -> béquille au sol, la moto capte ses 12V, repliée -> 0 V, plus aucune incidence, et la le MOSFET peut intervenir

En tout cas merci de ton intérêt

Le code:

/******************************************************
                     Quick Shifter                    *
  rev 6                                               *
  14/09/2017                                          *
                                                      *
                                                      *
  Patch Note: - Add Anti-rebond bouton                *
              - Version avec MOSFET                   *
              - Ouverture de la Gate qu'au Shift      *
*******************************************************/

//Constantes
const int pinBouton = 8;
const int pinShift =  9;

//Vérification de l'état du bouton
int etatBouton = 0;            //Variable pour l'état actuel du bouton poussoir
int dernierEtatBouton = 0;     //Variable pour l'état précédent du bouton poussoir

void setup() {
  Serial.begin(9600);

  //Configuration des Entrées/Sorties
  pinMode(pinShift, OUTPUT);
  digitalWrite(pinShift, HIGH);     //Niveau HAUT = fermé dès le début
  pinMode(pinBouton, INPUT_PULLUP);



}
void loop() {
  //Lecture de l'état du bouton
  etatBouton = digitalRead(pinBouton);


  //Allume le pin 9 quand le bouton n'est pas pressé et l'éteint quand pressé

  if (etatBouton != dernierEtatBouton) {  // compare l'état actuel du bouton poussoir à l'état précédent mémorisé

    //Donc quand le bouton est enfoncé
    if (etatBouton == LOW)
    {
      delay(65);
      digitalWrite(pinShift, LOW);
      //Coupure d'allumage de "xx" ms
      Serial.println("Coupure allumage");
      delay(70); // <-- durée de la coupure!
      Serial.println("Reprise allumage");
      Serial.println();
    }

    digitalWrite(pinShift, HIGH);
    delay(200);                     // Durée avant la prochaine utilisation



    if (dernierEtatBouton = etatBouton) { //mémorise l'état actuel du bouton poussoir
      Serial.println("Shifter Ready");    //Bouton passé en Haut en Bas puis de Bas à Haut
      Serial.println("_____________");    //Système Anti-Rebond validation pour prochaine utilisation
    }
  }
}

Ce que je souhaite faire avec les micros-coupure fonctionne, je l’ai monté hier sur la moto, je voudrais juste récupérer mon système de coupure en cas d’oubli de la béquille (la partie qui ne devait pas me poser de problème :stuck_out_tongue: )

ATTENTION: Si quelqu’un tombe sur ce sujet par hasard en voulant fabriquer un QS aussi, ne reprenez surtout pas le circuit ni le programme tel quel! Je peux sur la mienne, car mon contacteur de béquille coupe l’allumage et non l’injection, de plus le circuit tourne sous 12V. Ne faites pas n’importe quoi avec ça, sous risque de tout bonnement détruire votre moteur! Choppez toujours le schéma électrique de votre meule au-préalable

Brasiligun:
Le bouton au pin8 est en mode pullup, ce qui explique cette disposition particulière

En tout cas merci de ton intérêt

OK, j'ai loupé une info, je n'avais pas capté que pin8 était une entrée, là je vois mieux.

Par contre, le BP à droite n'est pas branché entre 12V et 0V tout de même?

On va y arriver, SI SI, pour l'instant je vois là un truc pas claire dans le câblage de ce BP s'il est branché tel quel entre +12V et 0V.

Ceci dit je vois ce que tu souhaite, laisse tomber la partie electronique de mon schéma et concentre toi sur la partie contact.

Imagine que ta béquille ait un BP avec 1 contact NO et 1 contact NF.

Pour la partie droite de ton schéma tu utiliserais la contact NO et pour la partie gauche, en série sur la sortie D9, tu met le NF.

Comme cela quand tu replie ta béquille, a doite le NO se ferme et laisse passer le 12V où tu veux (et où je n'ai pas compris qu'il devait aller).

Et sur la partie gauche, le NF s'ouvre, et quoi qu'il se passe sur la sortie, le MOS n'est pas piloté

AINSI TA BEQUILLE (à droite) DEVIENT PRIORITAIRE SUR TON SYSTEME ELECTRONIQUE (à gauche)

Tu vois ce que je veux dire?

tu peux aussi mettre le NF en serie sur le Drain de ton MOSFET canal N si tu prefferre.

Et si tu n'a pas d'inter double contact disponible tu peux relayer à savoir avec ton BP à droite commander l'alimentation d'un relais 12V double contact, un NO et un NF.

Quand tu relève ta béquille, tu ferme le BP, alimente le relais, ouvre le NF (pour commande MOS) et ferme le NO pour ta moto ...

D’accord super idée le relais ou l’interrupteur double étage !

Et hélas si dans ma grande honte j’ai testé le bouton de cette manière, et je pense a quelque chose du coup! Est-ce que de cette manière je n’ai pas juste fait un méga court-circuit tout simplement! Et du coup, en mettant une résistance quelconque juste entre le 12V et mon interrupteur ça ne résoudrait pas le problème ? (comme sur le schéma)

En tout cas, si ça marche, quand je quitterai la phase prototype je risque très fortement de passer sur ta 1ière proposition ;D

Un grand merci en tout cas!

Rapport d'aujourd'hui, avec une résistance de 270ohms j'arrive à sortir 7V environ côté béquille, mais ce n'est mas assez pour le seuil de détection qui est d'environ 10V

J'abandonne pour l'instant cette simple solution et je vais me pencher son ton schéma qui m'a l'air bien plus sérieux

Voir schéma SVP

Boite NOIRE.pdf (121 KB)

Je ferai des photos demain de la fiche, je suis tout à fait d'accord que ce n'est pas facile ni claire

C'est directement une fiche avec 2 fils, un vert (12V) qui part de cette fiche, qui va au bouton poussoir (contacteur de béquille), et un noir (0V) qui sort du coup de ce bouton, et qui repart sur le le second fil de cette fiche

D'origine, si la béquille est repliée, le bouton est enfoncé, le capteur de béquille à comme tension 0 V, à travers cette fiche (bouton ouvert) du coup le 12V du vert ne "passe" pas

Maintenant, si une vitesse est enclenchée mais que la béquille est au sol, depuis cette fiche, le fil vert délivre 12V et le bouton du coup n'est pas enfoncé. Du coup le capteur reçoit 12V et le moteur se coupe

Le fil noir est une masse, 0V

Ça c'est le système de sécurité d'origine, j'ai refait l'essai aujourd'hui, j'ai viré mon contacteur de béquille, et j'ai tiré un fil depuis le fil vert (qui sort 12V), je l'ai relié à un bouton poussoir, puis en sorti de ce bouton j'ai relié le deuxième fil au fil noir de cette fiche

Ce simple bouton remplace totalement mon contacteur d'origine

Pour plus de clarté dans mon projet, quand la sécurité est active, elle coupe l'allumage de la moto

Ce que je souhaite faire, c'est au travers de cette fiche via une Arduino, c'est envoyé un 12V pendant 60ms pour provoquer une micro coupure d'allumage et conserver ma sécurité en cas d'oublis de la béquille

Il faut donc, que la moto voit un 12V si la béquille est au sol, 0V si la béquille est rangée

Et que via des signaux envoyés par l'arduino, que j'envoie des 12V pendant 60ms au passage des vitesses, même quand la béquille est repliée (0V)

J'espère avoir apporté les précisions que tu voulais, j'ai fait des essais cette après-midi, la phase micro-coupures contrôlées fonctionnent, je n'arrive juste pas à récupérer ma sécurité

Je suis ouvert à toute les propositions, je bricole dans mon coin mais j'apprends toujours :stuck_out_tongue:

Un grand merci de ton aide

T.

Hello;

J’en reviens à une proposition déja en partie proposée avec quelques explications en piéce jointe

Autre hypothése.pdf (1.06 MB)

Je n’ai pas encore pu aller désosser ma moto. En attendant, une petite image du contacteur et de sa fiche pour que ça soit plus parlant

Par rapport à ton schéma c’est ça d’origine, du coup tu as sûrement raison c’est possible que ça ne soit pas une masse

Du coup reste à trouver la solution pour mettre en corrélation la sécurité d’origine et mon système

Dans mes essais je l’ai considéré comme une masse. Pour la partie micro coupure ça a fonctionné, donc:

Fil noir + masse arduino + masse bouton de microcoupures = fonctionnement des microcoupures contrôlées

Mais lorsque j’ai mis un bouton poussoir (Bp sécurité) entre le vert (12V) et ce noir, plus rien ne fonctionné, peut être parce que je l’avais justement reliée à la masse de l’arduino

Donc: fil noir + masse bouton microcoupures + masse arduino + masse bouton sécurité = plus aucune réaction même de la part de la partie micro coupures

Demain je remonte le système vite fait, et je ferai une petite vidéo des coupures contrôlées, que ça soit plus parlant

Encore une fois, merci de ton investissement et bien vu quand au fait que c’est n’est sûrement pas une masse. Mais si c’est ça il va falloir que je comprenne comment me débrouiller :stuck_out_tongue: On s’approche !

contacteur.jpg

Tu pourras donc confirmer par mesure en ohmetre, BP débranché, si le contact du BP est bien fermé quand la moto est sur béquille, donc ouvert quamd la béquille est repliée.

Si c'est bien le cas 1 montage avec 1 relais serait encore plus simple et approprié.

J'envoie le schéma plus tard...

J’ai retrouvé ça, c’est le N°10 (contacteur béquille), qui agît sur le N°26 (Relai de sécurité béquille)