RaspFR :: Forum

Forum de la communauté francophone de Raspberry PI.

Vous n'êtes pas identifié(e).

Annonce

Canal irc: #raspfr sur zeolia.net

#1 17-08-2017 16:32:09

Teranmoc
Membre
Inscription : 10-10-2013
Messages : 293

Allumage automatique des antibrouillards d'une voiture

Bonjour,


Il y a quelques années, j'avais réalisé une modification sur mon véhicule afin d'allumer les feux anti brouillards en même temps que les feux de route. Vous allez me dire (et à raison) que rouler avec des feux antibrouillards est interdit si les conditions météorologiques sont favorables et ça aveugle les personnes arrivant en face. Cependant, si ils sont synchronisés avec les feux de route, ils se coupent en même temps que ces derniers.

La modification initiale consistait à mettre un fil de la commande des feux de routes (après le fusible) vers le relais de commande des feux antibrouillards. Par la suite, j'y est ajouté un interrupteur pour couper l'activation si nécessaire.
Or, vous l'aurez compris, même pour un appel de phare de jour ou de nuit et même si la voiture ne roule pas, les antibrouillards s'allumeront.

L'idée m'est donc venu d'utiliser un Arduino pour contrôler cet allumage selon quatre critères :

  1. Il faut que les feux de route soient actifs

  2. Il faut qu'il fasse nuit, donc que les feux de croisements soient mis

  3. Il faut que la voiture roule (contact mis donc)

  4. Et enfin que le système soit actif via un interrupteur


Si tout est ok, alors les antibrouillards s'allumeront après 5 secondes (nécessaire car en roulant, les feux de route sont allumés et éteint assez régulièrement).

A partir de ces critères, on peux constater qu'il faut 3 entrées et une sortie.
L'alimentation du système se fait sur les feux de croisement pour économiser une entrée et un relais.
Du fait que le système ne requière que 4 broches, il est possible d'utiliser un AtTiny85.

Le code source de l'Arduino est le suivant :

/*
 * Module permettant la gestion des anti brouillards selon l'état des feux de croisements et d'un timer
 * Version AtTiny 85
 */

// Définition des pins de sorties
const int relais = 3;

// Définition des pins d'entrées
const int apc = 2;                // le contact est-il mis ?
const int btn = 0;                // interrupteur du système
const int stateRoadLights = 1;   // état des feux de route

// Variables
long previous = 0;
long current = 0;

#define ON LOW
#define OFF HIGH

void setup() {
  pinMode(relais, OUTPUT);
  pinMode(btn, INPUT_PULLUP);
  pinMode(apc, INPUT_PULLUP);
  pinMode(stateRoadLights, INPUT_PULLUP);
  digitalWrite(relais, OFF);
}

void loop() {
  
  if((digitalRead(apc) == LOW) && (digitalRead(btn) == LOW)) { // le contact est mis et le bouton est sur ON
    current = millis();
    if(digitalRead(stateRoadLights) == LOW) {
      // au bout de 5 secondes, les AB s'allument
      if((current - previous) >= 5000) {
        previous = current;
        digitalWrite(relais, ON);
      }
    }
    else {    // si ils sont coupés ou autres, on reset le compteur
      previous = millis();
      current = 0;
      digitalWrite(relais, OFF);
    }
  }
  else { // le système est coupé
    previous = millis();
    current = 0;
    digitalWrite(relais, OFF);
  }
}

Le code initialise les 3 entrées (avec la résistance de pull up activée) et la sortie du relais.

Quelques photos :
13037920170320231956.jpg
Premier prototype fonctionnel

29022420170320232007.jpg
Les entrées :

  • +12V : alimentation en provenance des feux de croisement (converti en 5V via un régulateur LM7805 et masse commune avec le véhicule)

  • Btn : bouton de mise en marche / arrêt du système

  • APC : détection de la mise en marche du moteur. Il s'agit du +12V après contact

  • FR : feux de route


Les feux de route et le +12V après contact activent chacun d'eux un relais 12V pour avoir un contact sec.

38259220170320232012.jpg
La sortie vers le relais de commande des feux antibrouillards.

68915520170322193752.jpg
Comme il est possible de le voir sur les trois dernières photos, les connecteurs sont des prises Jack femelles


46653220170322213149.jpg
Le prototype câblé sur le véhicule. Tout marche parfaitement et conforme.

55461420170512202319.jpg
La carte éléctronique fraichement fabriquée. Elle contient le régulateur de tension LM7805, une diode antiretour, deux condensateurs, le microcontrôleur et 6 borniers.

68695420170517183700.jpg
Les borniers soudés :

  • A gauche : le bornier d'entrée du +12V

  • A droite : les trois borniers d'entrées pour le bouton, le +12 après contact et les feux de routes

  • En bas : un bornier pour fournir un +5V au relais de sortie (les deux broches sont communes) et un bornier pour la masse et la broche de commande du relais de sortie


24594320170605225537.jpg
Comparaison avec la carte définitive et le prototype.


Fabrication du boitier
77996420170724194626.jpg

30237020170724195014.jpg

80339920170725200747.jpg

97182120170725200758.jpg

96114720170725213158.jpg
Le boitier est installé dans le véhicule, la fixation est réalisée avec du velcro sur la moquette. J'ai choisi de le positionner sous le siège conducteur.

79377320170725213207.jpg
L'alimentation, l'état du +12V après contact et des feux de routes proviennent de la boite à fusible (après les fusibles).

Une vidéo de fonctionnement va arriver wink

Voila pour mon premier projet abouti avec une Arduino big_smile
Tout le projet est disponible librement smile
Si vous avez des suggestions ou des questions à propos de la conception ou de la réalisation, n'hésitez pas  glasses


Anciennement vodkaorange wink
Forum français et communauté sur les caméras embarqués et dashcam : Dashcam-France.fr
Blog notes - Github

Hors ligne

Pied de page des forums