Arduino sur moto
bonjour à tous,
je réalise mon premier projet sur arduino uno. je l'utilise pour gérer les clignotants ainsi que l'enclenchement/déclenchement des feux de croisement sur une moto.
j'utilise la batterie de la moto pour alimenter l'arduino, en passant par un régulateur à découpage 5v (alim sur borne 5v).
les actions 12v (clignotant et feu) sont enclencher par des relais 5v (3x).
cela fait maintenant plusieurs jour que j'essaie de faire fonctionner ton ça mais chaque fois que je résous un problème un autre apparaît et la je suis vrmt bloqué:
j'ai d'abord configurer mes entrées avec une pull-up, cela fonctionnait bien jusqu'à ce que finalement à l'enclenchement d'une entrée, les autres s'activent intenpestivement. ne comprenant pas pourquoi et pensant que l'énergie du relais créé une chute de tension sur la carte, je décide de supprimer le pull-up, et d'alimenté mes interrupteur par 5v, sur entrée analogique.tout fonctionne bien. je décide alors de m'attaquer au toggle on/off des feu de croisements. et la les feu fonctionne bien, mais lorsque je l'enclenche, cela enclenche le clignotant gauche. et les relais s'affole lorsque je passe de cligno gauche cligno droite, ce qui ne posait pas de problème auparavant.
je decide de supprimer le code de la partie feu de croisement pour retrouver qqch de stable et là... les clignos s'affole toujours. je suis perdu, je ne comprend vrmt pas le problème, j'espère que qqun saura m'aider!!![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
ci-dessous, mon code:
merci bcp, j'ai vrmt besoin d'aide cela fait une semaine que je cherche chaque soir et je tourne en rond![sad :(](https://forum.arduino.cc/smileys/arduino/sad.gif)
je réalise mon premier projet sur arduino uno. je l'utilise pour gérer les clignotants ainsi que l'enclenchement/déclenchement des feux de croisement sur une moto.
j'utilise la batterie de la moto pour alimenter l'arduino, en passant par un régulateur à découpage 5v (alim sur borne 5v).
les actions 12v (clignotant et feu) sont enclencher par des relais 5v (3x).
cela fait maintenant plusieurs jour que j'essaie de faire fonctionner ton ça mais chaque fois que je résous un problème un autre apparaît et la je suis vrmt bloqué:
j'ai d'abord configurer mes entrées avec une pull-up, cela fonctionnait bien jusqu'à ce que finalement à l'enclenchement d'une entrée, les autres s'activent intenpestivement. ne comprenant pas pourquoi et pensant que l'énergie du relais créé une chute de tension sur la carte, je décide de supprimer le pull-up, et d'alimenté mes interrupteur par 5v, sur entrée analogique.tout fonctionne bien. je décide alors de m'attaquer au toggle on/off des feu de croisements. et la les feu fonctionne bien, mais lorsque je l'enclenche, cela enclenche le clignotant gauche. et les relais s'affole lorsque je passe de cligno gauche cligno droite, ce qui ne posait pas de problème auparavant.
je decide de supprimer le code de la partie feu de croisement pour retrouver qqch de stable et là... les clignos s'affole toujours. je suis perdu, je ne comprend vrmt pas le problème, j'espère que qqun saura m'aider!!
![smiley :)](https://forum.arduino.cc/smileys/arduino/smiley.gif)
ci-dessous, mon code:
code: [select]
// auteur du programme : patrick
// programme écrit le : 19/5/2013.
/* commande clignotant et feu de croisement */
#include <servo.h> // inclusion de la librairie servo
#include <bounce.h> //
const int gauche=2; // constante pour la broche 2
const int reset=3; // constante pour la broche 3
const int droite=4; // constante pour la broche 4
const int feu_on_off=5;
const int feu=10; // constante pour la broche 8
const int cli_g=12; // constante pour la broche 11
const int cli_d=8; // constante pour la broche 10
bool clign_g=false;
bool clign_d=false;
bool washigh = false;
bool beenlow = true;
bool tictac = false;
long previousmillis = 0;
long interval = 450;
//long time=500000;
bounce bouton_feu = bounce(etat_feu,100 );
void setup()
{
serial.begin(9600);
// ------- broches en sorties numériques -------
pinmode (cli_d,output); // broche cli_d configurée en sortie
pinmode (cli_g,output); // broche cli_g configurée en sortie
pinmode (feu,output); // broche feu configurée en sortie
// ------- broches en entrées numériques -------
pinmode (gauche,input); // broche gauche configurée en entrée
digitalwrite(guache,high);
pinmode (droite,input); // broche droite configurée en entrée
digitalwrite(droite,high);
pinmode (reset,input); // broche reset configurée en entrée
digitalwrite(reset,high);
pinmode (feu_on_off,input); // broche feu_on_off configurée en entrée
digitalwrite(feu_on_off,high);
// ********************************************************************************
void loop()
{
//-------------------------------------------------------------------------
//---------phare
//-----------------------------------------------------------------
bouton_feu.update();
if (bouton_feu.read()==low && beenlow) // if switch has been pressed , has been released (beenlow == true)
{
if (washigh) // , if light high last time
{
digitalwrite(feu,low); // toggle light low
washigh = false; // define light not high
}
else // otherwise light low last time
{
digitalwrite(feu, high); // toggle light high
washigh = true; // , define light high
}
beenlow = false; // define switch hasnt been released, prevent light flashing loop runs
}
if (bouton_feu.read()==high) // if switch has been released (and pulled low pulldown resistor)
{
if (washigh) // , if light on
digitalwrite(feu,high); // keep on
else // otherwise light off
digitalwrite(feu,low); // keep off
beenlow = true; // define switch has been released
}
//-------------------------------------------------------------------------
//---------clignotants
//-----------------------------------------------------------------
unsigned long currentmillis = millis();
if (currentmillis- previousmillis > interval)
{
previousmillis = currentmillis;
if (tictac == false)
{tictac = true;
}
else
tictac = false;
}
// tictac = true;
if (digitalread(droite)==low)
{
clign_d=true;
}
if (digitalread(gauche)==low)
{
clign_g=true;
}
if (digitalread(reset)==low)
{
clign_g=false;
clign_d=false;
// time=5000000;
}
//---------gauche
if (clign_g==true && tictac == true && cli_g==low)
{digitalwrite(cli_g, high);
clign_d=false;
}
//---------droite
if (clign_d==true && tictac == true && cli_d==low)
{digitalwrite(cli_d, high);
clign_g=false;
}
}
merci bcp, j'ai vrmt besoin d'aide cela fait une semaine que je cherche chaque soir et je tourne en rond
![sad :(](https://forum.arduino.cc/smileys/arduino/sad.gif)
mets le code entre les balises "code" stp, le bouton avec # .
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Arduino sur moto
arduino
Comments
Post a Comment