Pont de diodes pour Arduino Pro Mini sur Transporter VW

Bonjour la commu !

Pour vous faire un rapide résumé : J'ai remédié à la défaillance de la carte électronique qui gère les butées "fin de rotation" du moteur de gâche rotative (porte latérale droite) de mon Transporter VW.

Mais j'aimerai fiabiliser et optimiser le montage de l'Arduino Pro Mini en place.
Actuellement, l'alim. est faite grâce à une batterie LiPo 4S et un module régulateur de tension de 16V vers 5V.
Pour éviter de charger la LiPo 4S toutes les semaines (!), j'aimerai alimenter le module 5V par l'alim. du moteur de gâche.
Problème, le sens du courant est inversé à chaque changement de sens de rotation de la gâche.

Je pense donc souder en amont du module 5V, un pont de diodes du genre :
B80C1000
ou bien
GBU1006

Qu'en pensez-vous ?

Bonjour,

Je présume que la gâche n'est alimentée que lorsqu'elle est commandée, dans un sens ou dans l'autre, avec du +12V ou du -12V.

Pour ce qui est de transformer cette tension + ou - en tension positive de l'ordre de 10V (et des poussiéres, chute de tension dans les diodes), avec un des 2 ponts de diodes, c'est OK.

Est-ce que le temps de démarrage de l'Arduino avant de démarrer la loop sera assez rapide pour tes besoins, là est la question je crois?

Bonjour,

Je pense qu'une porte logique avec un transistor c'est mieux !

Philippe

Bonjour @jef59

Tu as tout à fait raison :

  • La gâche est alimentée par du +- 12V (presque 14V si l'alternateur tourne)

  • J'ai en effet tenu compte du temps de démarrage de la loop. J'ai choisi de passer le relais alimentant la gâche, en mode NC. Avantage : si le montage crame, la gâche reste fonctionnelle bien que les butées deviennent mécanique au lieu d’électriques.

J'irai au magasin d'électronique cet a-m et je ferai un nouveau post avec le schéma quasi-définitif.

Merci à toi :slightly_smiling_face:

Bonjour @philippe-007

Merci pour pour ton message.
Je vais étudier quels transistors acheter à moins que tu aies déjà une idée du modèle.

@++
Lionel

En fait, n'ayant aucune idée de ton schéma, je ne vois pas vraiment de quoi tu parle à propos de ton relais!

Bonjour @philippe-007

Ça m'intrigue de connaître ta solution STP

Dans le code ci-dessous, j'ai rajouter un buzzer pour entendre le fonctionnement du relais :

// Définition des broches pour le bouton et le relais
const int brocheBouton = 3;  // Broche du bouton
const int brocheRelais = 2;  // Broche du relais
const int brocheBuzzer = 11;  // Broche du buzzer

// Variable pour stocker le nouvel état du bouton
int etatBoutonNew;
// Variable pour stocker l'état du bouton
int etatBouton = HIGH;
// Variable pour stocker l'état actuel du relais
int etatRelais = LOW;

void setup() {
  // Définition des broches en entrée ou en sortie
  pinMode(brocheBouton, INPUT_PULLUP);
  pinMode(brocheRelais, OUTPUT);
  pinMode(brocheBuzzer, OUTPUT);
}

void loop() {
  // Lecture de l'état du bouton
  etatBoutonNew = digitalRead(brocheBouton);

  // Si l'état actuel du bouton est différent de l'état précédent
  if (etatBoutonNew != etatBouton) {
    // Attente d'un court délai pour éviter les rebonds
    delay(40);
    // Lecture de l'état du bouton à nouveau
    etatBoutonNew = digitalRead(brocheBouton);
    // Si l'état du bouton a changé
    if (etatBoutonNew != etatBouton) {
      // Mettre à jour l'état précédent du bouton
      etatBouton = etatBoutonNew;
      // Si le bouton est relâché
      if (etatBoutonNew == HIGH) {
        // Inverser l'état du relais
        etatRelais = !etatRelais;
        // Mettre à jour la sortie du relais
        digitalWrite(brocheRelais, etatRelais);
        // Buzzer en marche
        tone(brocheBuzzer, 500);
        delay(4000);
        noTone(brocheBuzzer);
        // Inverser l'état du relais
        etatRelais = !etatRelais;
        // Mettre à jour la sortie du relais
        digitalWrite(brocheRelais, etatRelais);
      }
    }
  }
}

Je vois.

Et je vois surtout que tu utilise le contact Normalement Ouvert (ou Open) du relais, ce n'est pas un PB d'ailleurs, mais ça contredit

Ou je n'ai pas compris ce que tu voulais dire :crazy_face:

1 Like

Bonjour lionux-fr

Sur le principe, il n'y a certainement pas de problème.
j'ai fait l'essai avec ton programme, quelques conditions sont différentes des tiennes mais ne devraient pas influencer le test:

Un pont de Graetz.
Une alimentation 9V,
L'Arduino alimenté par la broche Vin.

Le pont alimenté +- ou -+ 9V., ton programme fonctionne sans problème.

Question, il n'y a pas de fin de course, c'est uniquement basé sur la durée de l'ouverture ou fermeture de 4 secondes?

Cordialement
jpbbricole

Edit : J'ai supprimé le schéma faux pour faire un peu de nettoyage :wink:
Ci-dessous le lien du bon schéma :
Le schéma presque fini !

Merci à toi pour la validation du pont :+1:

Bonjour @jpbbricole

C'est le bouton poussoir qui symbolise le micro-contact de fin de course :

  1. En butée, le contact est relâché : le circuit des fins de course est ouvert => etatBouton == HIGH

  2. En rotation, une came appui sur le contact : le circuit des fins de course est fermé => etatBoutonNew == LOW

  3. En fin de rotation, la came relâche le contact : le circuit des fins de course est ouvert =>

// Si le bouton est relâché
      if (etatBoutonNew == HIGH) {
        // Inverser l'état du relais
        etatRelais = !etatRelais;
        // Mettre à jour la sortie du relais
        digitalWrite(brocheRelais, etatRelais);

Les 4 secondes correspondent à une temporisation afin que la carte du système détecte bien une résistance infinie et coupe l'alimentation du moteur. D'ailleurs, cette durée ne devrait jamais être atteinte puisque l'Arduino ne sera plus alimenté par une batterie externe.

Cordialement,
Lionel

Bonjour lionux-fr
Merci pour ces précisions, je comprends mieux :wink:

Je pense que tu peux, sans autre, essayer avec un pont de Graetz.

Par contre, pour ce qui est de la résistance de PULLUP (pinMode(brocheBouton, INPUT_PULLUP);) de la broche brocheBouton, je la dédoublerai par une résistance externe de 4,7k environ (ce n'est pas critique), en effet, cette résistance interne de l'Arduino est assez haute , quelques dizaines de kilos, et l'environnement, dans une voiture est assez perturbé, spécialement avec les moteurs électriques et autres selénoïdes.

Cordialement
jpbbricole

1 Like

Voila celui que tu aqs sous la mains c'est un classique en boleun, et la sortie de l'ampli tu commande un mofset, mieux si t'es un bourgeois tu mes un IGBT !
(je te laisse completer les passifs qui servent de filtre et sécu !

Phili^ppe

Par contre, pour ce qui est de la résistance de PULLUP (pinMode(brocheBouton, INPUT_PULLUP);) de la broche brocheBouton, je la dédoublerai par une résistance externe

Merci pour le conseil @jpbbricole
:+1:

J't'adore @philippe-007 ...

Heu, j'ai un poid sur la conscience.

Il y selon moi potentiellement un probléme avec un montage "pont redresseur" vs Batterie.

Je m'explique par un schéma:

Est-ce clair?

1 Like

Bonsoir lionux-fr

J'ai oublié de te dire, concernant ton programme, dans setup(), tu devrai faire tomber le relais, je ne sais pas s'il faut HIGH ou LOW, j'ai pour habitude d'attribuer une variable pour ça:

const int brocheRelaisOn = HIGH;  // Etat pour relais tiré
et dans setup()
	digitalWrite(brocheRelais, !brocheRelaisOn);  // Faire tomber le relais

Attention!!
Cet ensemble, pont de Graetz, Arduino et relais, est un bloc "à part", d'où la remarque pertinente de @jef59:


Ne surtout pas relier le GND de l'Arduino à la masse du véhicule.

Cordialement
jpbbricole

1 Like

En fait, le GND1 du bus VW n'en est pas un : c'est un peu comme un courant alternatif.
A part le pont de Graetz et le moteur de gâche via le relais, je ne peux rien brancher dessus car le courant change de sens selon qu'on veuille ouvrir ou fermer la porte latérale.

J'ai refait le schéma mais le relais est différent du mien (hw-482) qui sera alimenté par le +5V de l'abaisseur de tension :

Merci @philippe-007 pour l'info.
Mais si le pont B80C1000 que je vais acheter à 0.60 € chez le revendeur du coin fonctionne, je ne pense pas chercher plus.