Amesis Project Forum
Se connecter avec FaceBook Gmail ou Twitter en cliquant sur "Connexion", ou t'enregistrer sur le forum !

Rejoignez le forum, c’est rapide et facile

Amesis Project Forum
Se connecter avec FaceBook Gmail ou Twitter en cliquant sur "Connexion", ou t'enregistrer sur le forum !
Amesis Project Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Serveur Discord
Rechercher
Résultats par :
Recherche avancée
Derniers sujets
Super Сasual Dating - Verified DamselsJeu 18 Avr - 16:09zxhornet
Bora tdi moteur ajm 115 besoin d aide Mer 17 Avr - 19:37maximejulio56
Lecture et écriture calculateurDim 14 Avr - 11:22Pguy01
206 hdi 1,4 reprogMer 10 Avr - 10:13jojom47
Clio 2 1.5dci 100chMer 10 Avr - 0:59Matt
Reprog TDI 115Sam 6 Avr - 1:30nasnas54
présentation Dim 31 Mar - 14:16hakibou
Stage 1 gratuit ! C'est par iciMar 26 Mar - 11:34Drisslacoste
Les posteurs les plus actifs de la semaine
Aucun utilisateur
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité :: 1 Moteur de recherche

Aucun

Voir toute la liste

Aller en bas
avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Démarrage start/stop Arduino

Jeu 15 Oct - 18:06
Bonjour tout le monde;  je vous fais part d'une petite expérience avec l'Arduino : pour ma part je suis débutant en la matière, je n'ai rien fais de bien extraordinaire jusque là mais, je me suis quand même lancé dans un projet bien plus compliqué que prévu.

Suite à un problème de calculateur et autre panne électronique sur mon TT de 1999 j'ai décidé de remplacer la clé de contact par un bouton start / stop.

après de longue heures de travail, de recherche et une vingtaine version de mon code je suis arrivé a quelque chose d'assez correct (présence de quelque bugs encore par ci par là mais dans l'ensemble ça fonctionne plutôt bien)

Le cahier des charges :

- L'Arduino doit s'allumer et s'éteindre quand on déverrouille et verrouille les portières pour ne pas tirer de trop sur la batterie
- première pression sur le bouton => mise du contact (neiman position 2)
- deuxième pression le moteur doit se lancer (le démarreur tourne tant qu'on reste appuyer sur le bouton)
- lorsqu'on relâche le bouton le démarreur s'arrête
- pression sur le frein plus le bouton start stop coupe le moteur et le contact sauf autoradio (faisceau 86s (neiman position 1))
- à l'ouverture de la portière conducteur le contact se coupe totalement (neiman position 0)


Travaux effectués :

- Installation d'un bouton start / stop sur le volant branché sur les cosses libre du contacteur tournant du volant
- Installation d'un capteur d'ouverture de porte dans la carrosserie
- Relais 12v connecté sur la pédale de frein

Le matériel :

- Une Arduino nano
- une carte 4 relais pilotable par l'Arduino
- 4 relais de puissance qui remplacent les connections mécanique de la clé de contact dans le barillet
(ces relais n'étant pas tous obligatoire je ferais surement une modification dans l'avenir)

Voilà pour les grandes lignes je posterais ensuite le code que j'utilise actuellement dans la carte pour le démarrage pour ceux qui voudrais le réutiliser, sachez que je débute dans le codage, mon code est loin d'être parfait et je continu sans cesse de l'améliorer.
Pour les intéressés je pourrais vous envoyer ou reposter les mise à jours.
J'ajouterais également le schéma de câblage que j'utilise pour le projet.

romu et YERO Soumanou aiment ce message

avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Jeu 15 Oct - 18:09
/* version 5.2 = utilisation relais NO/NC sur pédale de frein
Contacteur de pédale de frein borne NO relié à un relais => C = masse ; NO = freinA ; NC = freinR */

// etat = position fictive du Neiman => 0 = pas de contact ; 1 = autoradio seul (86s) ; 2 = +12v après contact (calculateur, accéssoirs...) 3 = démarreur
byte etat = 0; // état : 0 = position 0 ; 1 = position 1 ; 2 = position 2 ; 3 = position 3 ; 4 = position 2 (voiture démarré) ; 5 et 6 = transitoire ;
byte C = 0; // option en cas de calage du moteur ou raté au démarrage

// int ? = 2 fil disponible sur calculateur démarrage V1.1 (arduino nano)
// int ? = 3 fil disponible sur calculateur démarrage V1.1 (arduino nano)

int cP15 = 4; // relais 12v calculateur
int c86s = 5; // reais 12v autoradio
int c75 = 6; // relais 12v contact de décharge x
int c50 = 7; // relais 12v démarreur

int freinR = 8; // conatcteur de pedale de frein relachée (borne NC)
int freinA = 9; // contacteur de pedale de frein enfoncée (borne NO)
int porte = 10; // contacteur ouverture de porte conducteur
int start = 11; // bouton start & stop


void setup()
{
pinMode(cP15, OUTPUT);
pinMode(c86s, OUTPUT);
pinMode(c75, OUTPUT);
pinMode(c50, OUTPUT);
pinMode(freinR, INPUT_PULLUP); // (LOW = circuit fermé ; HIGH = circuit ouvert)
pinMode(freinA, INPUT_PULLUP);
pinMode(start, INPUT_PULLUP);
pinMode(porte, INPUT_PULLUP);

digitalWrite(cP15, HIGH); // (HIGH = relais ouvert ; LOW = relais fermé)
digitalWrite(c86s, HIGH);
digitalWrite(c75, HIGH);
digitalWrite(c50, HIGH);
}

void loop()
{ // état = 0 (position 0)

// lorsque l'on appuye sur le bouton start avec le conatct en position 0, celui-ci passe en position 2
if((digitalRead(start) == LOW) && (etat == 0))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(cP15, LOW);
digitalWrite(c86s, LOW);
digitalWrite(c75, LOW);
delay(3500); // empêche de démarrer trop vite avant que les calculateurs ne soient innitialisés plus mise en pression circuit carburant
etat = etat + 2;
} // état = 2 (position 2 moteur à l'arrêt)

// lorsque l'on appuye sur le bouton start avec le contact en position 1, celui-ci passe en position 2 prêt à démarrer (redémarrage)
if((digitalRead(start) == LOW) && (etat == 1) && (digitalRead(freinR) == LOW))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(cP15, LOW);
digitalWrite(c75, LOW);
delay(1000); // empêche de démarrer trop vite pour que la pompe à carburant se remêtte sous pression
etat = etat + 1;
} // état = 2 (position 2 moteur à l'arrêt)

// lorsque l'on appuye sur le bouton start pédale de frein enfoncé avec le contact en position 2 (moteur à l'arrêt) le contact passe en position 1
if ((digitalRead(freinA) == LOW) && (digitalRead(start) == LOW) && (etat == 2))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(c75, HIGH);
digitalWrite(cP15, HIGH);
etat = etat + 4;
} // état = 6 (transitoire)
if((digitalRead(start) != LOW) && (etat == 6))
{
delay(300);
etat = etat - 5;
} // état = 1 (position 1)

// lorsque l'on appuye sur le bouton start pédale de frein relaché avec le contact en position 2, le démarreur se lance
if ((digitalRead(freinR) == LOW) && (digitalRead(start) == LOW) && (etat == 2))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(c75, HIGH);
digitalWrite(c50, LOW);
C = 0;
etat = etat + 1;
} // état = 3 (position 3)

// lorsque l'on relache le bouton start le démarreur s'arrête le moteur tourne
if ((digitalRead(start) != LOW) && (etat == 3))
{
digitalWrite(c50, HIGH);
digitalWrite(c75, LOW);
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
etat = etat + 1;
} // état = 4 (position 2 voiture démarrée)

// lorsque l'on appuye sur le frein et le bouton start alors que le moteur tourne (position 4), le contact passe en position 1 (seul l'autoradio fonctionne)
if ((digitalRead(start) == LOW) && (etat == 4) && (digitalRead(freinA) == LOW))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(cP15, HIGH);
digitalWrite(c75, HIGH);
etat = etat + 1;
} // état = 5 (transitoire)

// relachement du bouton après arrêt moteur
if ((digitalRead(start) != LOW) && (etat == 5))
{
delay(300); // tempo pour contourner l'effet rebond du bouton poussoir
etat = etat - 4;
} // état = 1 (position 1)

// Le contact passe en position 0 à l'ouverture de la porte conducteur
if ((digitalRead(porte) == LOW) && (etat == 1))
{
delay(1000); // tempo pour contourner l'effet rebond du bouton poussoir
digitalWrite(c86s, HIGH);
delay(3000);
etat = etat - 1;
} // état = 0 (position 0)

}

romu, tontonguiguiche, suprajim, deltamike et YERO Soumanou aiment ce message

Amesis Project Admin
Amesis Project Admin
Sous Admin
Messages : 78
Points : 121
Date d'inscription : 15/05/2020
Localisation : France
https://sites.google.com/view/amesis-project/accueil?authuser=1

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Dim 18 Oct - 0:49
Génial !!!!! Tu as des photo ?? 9a pète mec. Il faudrait que tu le mète en ligne dans le GitHub, comme ça des gent pourrait améliorer ton code ou en profité. Fait toi un compte et ajoute moi.
https://github.com/AmesisProject

Tu pourais même y ajouter mon demarrage à distance. Regarde :

romu aime ce message

avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Mer 21 Oct - 12:25
Oui j'y avait bien évidemment pensé c'est d'ailleurs prévu dans un second temps..

Petit édit depuis que la TT est en peinture, jai eu une illumination :
J'ai repensé mon schéma de câblage ce qui m'a permis de simplifié grandement le code.
Dès qu'elle sera de retour en fin de semaine, je posterai une vidéo ainsi que le nouveau code avec le schéma de câblage.

En attendant de compléter le système de démarrage avec une activation par distance en bluetooth, j'ai un autre projet en cours afin de compléter le démarrage sans clé à savoir une ouverture / fermeture centralisé par NFC avec une bague en guise de clé. (je posterai un nouveau sujet)

YERO Soumanou aime ce message

Amesis Project Admin
Amesis Project Admin
Sous Admin
Messages : 78
Points : 121
Date d'inscription : 15/05/2020
Localisation : France
https://sites.google.com/view/amesis-project/accueil?authuser=1

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Mer 21 Oct - 22:33
ça déchire l'idée de la bag. Vas y envoie de la photo et vidéo

romu et YERO Soumanou aiment ce message

avatar
romu
Sous Admin
Messages : 2
Points : 4
Date d'inscription : 14/11/2020

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Dim 15 Nov - 2:04
g pas capter l'histoire des codes mais je vais te suivre de près neo

YERO Soumanou aime ce message

avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Dim 15 Nov - 18:31
Bonjour tout le monde, voici les dernières nouvelles, après plusieurs jours de tests concluants voici ce que ça donne :
Démarrage start/stop Arduino 41ecd510
Démarrage start/stop Arduino 66979a10
Démarrage start/stop Arduino Circui10

Je vous enverrez la vidéo dans quelque jour j'attends une nouvelle pompe de direction assistée.

pour le nouveau code Arduino il est beaucoup plus simple est fonctionne parfaitement
(Attention à bien alimenter la borne C du relais radioff par un cable qui vient directement de la batterie a travers un thermo-fusible)

/* version 6.2 :
Calculateur de démarrage V2 (prise démontable ; boitier imprimer en 3D)
Alimentation Arduino par Borne 15 et 30 grace au bouton start ; coupure par la portière (utilisation d'une diode entre la borne 15 et VIN)
Contrôle de la pompe à carburant par Arduino
utilisation relais NO sur pédale de frein (contacteur de pédale de frein borne NO relié à un relais => C = masse ; NO = frein) /*

/* int = 7 - 9 ; fils disponible sur calculateur démarrage V2
int = 6 ; fil dispo (pas raccordé sur prise) */

/* Bornes : 30 = +12V / 31 = masse / 15 = +12V après contact / 75 = +12V après contact des accéssoirs */

int coupure = 2; // Relais pour couper le contact de la borne 15 (C = 30 / NC = 15)
int radioff = 3; // Relais d'auto-alimentation de l'Arduino et de la Radio (C = 30 / NO = VIN + 86s)
int pompe = 4; // Relais poutr contrôle de la pompe à carburant (C = GND / NO = "J19"-)
int demarreur = 5; // Relais pour switch entre démarreur et la borne 75 (C = 30 / NC = "R4"+)

int start = 12; // bouton start & stop
int frein = 11; // contacteur de pedale de frein
int porte = 10; // contacteur ouverture de porte conducteur


void setup()
{
// contrôle du module 4 relais Arduino
pinMode(coupure, OUTPUT);
pinMode(radioff, OUTPUT);
pinMode(pompe, OUTPUT);
pinMode(demarreur, OUTPUT);

// (HIGH = circuit ouvert ; LOW = circuit fermé)
pinMode(frein, INPUT_PULLUP);
pinMode(start, INPUT_PULLUP);
pinMode(porte, INPUT_PULLUP);

// état des relais arduino (HIGH = relais NO ; LOW = relais NC)
digitalWrite(coupure, HIGH);
digitalWrite(radioff, LOW); // alimentation de l'arduino par la batterie en direct pour éviter un reset de l'arduino du à la perte de puissance au démarrage
digitalWrite(pompe, HIGH);
digitalWrite(demarreur, HIGH);

delay(4000); // mise en pression du circuit carburant et innitialisation du calculateur pendant 4 secondes
digitalWrite(pompe, LOW); // coupure pompe à carburant
}


void loop()
{
// lorsqu'on appuye sur le bouton start pédale de frein relachée le démarreur et la pompe à carburant se lance
if(digitalRead(start) == HIGH && digitalRead(frein) == HIGH)
{
delay(300); // empêche l'effet rebond du bouton poussoir
digitalWrite(pompe, HIGH);
while(digitalRead(start) == HIGH) // garde le démarreur actif tant que le bouton start est enfoncé
{
digitalWrite(demarreur, LOW);
}
delay(300); // empêche l'effet rebond du bouton poussoir
digitalWrite(demarreur, HIGH);
delay(2000); // pause du programme pour laisser le temps au démarreur de s'arrêter
secu();
}

// lorsqu'on appuye sur le frein et le bouton start en même temps le contact se coupe sauf la radio
if(digitalRead(start) == HIGH && digitalRead(frein) == LOW)
{
delay(300); // empêche l'effet rebond du bouton poussoir
digitalWrite(coupure, LOW);
delay(300); // empêche l'effet rebond du relais
while(digitalRead(start) == HIGH)
{
// Empêche de remettre le contact si le bouton start reste enfoncé
}
delay(300); // empêche l'effet rebond du bouton poussoir
digitalWrite(coupure, HIGH);
digitalWrite(pompe, LOW);
off();
}
}


void secu()
{
// empêche de relancer le démarreur moteur en marche
digitalWrite(radioff, HIGH);
do
{
delay(100);
}
while(digitalRead(frein) != LOW || digitalRead(start) == LOW);
digitalWrite(radioff, LOW);
delay(300); // empêche l'effet rebond du bouton poussoir
}


void off()
{
// Permet d'étteindre la Radio et l'Arduino à l'ouverture de la porte conducteur
while(digitalRead(start) == LOW && digitalRead(porte) == HIGH)
{
// attend qu'on appuye sur le bouton start pour relancer le moteur ou que la porte s'ouvre pour couper la radio et l'Arduino
}
delay(300); // empêche l'effet rebond du bouton poussoir
if (digitalRead(porte) == LOW)
{
digitalWrite(radioff, HIGH);
}
else
{
digitalWrite(pompe, HIGH);
delay(4000); // remise en pression du circuit carburant et innitialisation du calculateur
digitalWrite(pompe, LOW);
}
}
avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Dim 15 Nov - 18:37
Pour plus d'infos n'hésitez pas à me demander si vous avez des questions.

Je vais ouvrir 2 nouveaux sujets dans les jours à venir :
- le premier comme prévu sur l'ouverture fermeture avec une bague NFC
-le deuxième concerne une modification sur les phares avant avec utilisation de LED adressables (feu diurne, nocturne et clignotant dynamique).

romu aime ce message

avatar
Neo
Sous Admin
Messages : 9
Points : 13
Date d'inscription : 11/09/2020
Age : 31
Localisation : Marne la Vallée

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Jeu 3 Déc - 19:02
Bonjour à tous comme prévu petite vidéo du démarrage
https://uptostream.com/y0z9wmv543qo
Amesis Project Admin
Amesis Project Admin
Sous Admin
Messages : 78
Points : 121
Date d'inscription : 15/05/2020
Localisation : France
https://sites.google.com/view/amesis-project/accueil?authuser=1

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Mar 5 Jan - 23:53
tu veux pas qu,on mette ca sur github ?

luce46M57 et YERO Soumanou aiment ce message

avatar
manu70
Sous Admin
Messages : 1
Points : 1
Date d'inscription : 03/12/2021

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Sam 4 Déc - 11:15
je suis bouche bée bravo génial
avatar
suprajim
Sous Admin
Messages : 3
Points : 7
Date d'inscription : 20/11/2022

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Dim 20 Nov - 16:14
Bonjour, la vidéo n'est plus dispo! Sad

luce46M57, deltamike et YERO Soumanou aiment ce message

Contenu sponsorisé

Démarrage start/stop Arduino Empty Re: Démarrage start/stop Arduino

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum