Show Posts
Pages: 1 ... 11 12 [13] 14 15 ... 19
181  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: November 02, 2012, 04:34:01 am
Ben alims séparées, à part de ne pas mettre le relais de commande du démarreur sur la carte, je ne vois pas ce que je peux faire de plus ?
Pour le point de masse, c'est le moins batterie, repéré -batt sur la carte, qui donne sur un plan de masse. Est-ce que cette disposition n'est pas bonne ?
182  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 31, 2012, 09:10:43 am
Oui, exactement. Si le moteur tourne, l'alternateur débite.

À partir du moment ou je ne détecte plus la tension, c'est que soit le moteur a calé, soit il tourne à trop bas régime car l'alimentation en carburant est défectueuse, soit l'alternateur a cramé.

soit il tourne à trop bas régime parce qu'il est entrain de démarrer ? ou l'opto-coupleur n'a pas encore commuté

j'aurais tendance de mettre une petite tempo sur un problème de ce genre...

Non, car pour passer à l'état suivant et couper le démarreur, c'est que la détection de tension a déjà été faite.

Et oui il y a la tempo, de toutes manières. Je l'ai justement rajoutée quand j'ai constaté le soucis, sans succès.

183  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 31, 2012, 08:59:54 am
Oui, exactement. Si le moteur tourne, l'alternateur débite. L'accouplement est direct, il n'y a pas de courroie ou de flector.

À partir du moment ou je ne détecte plus la tension, c'est que soit le moteur a calé, soit il tourne à trop bas régime car la panne sèche arrive, soit l'alternateur a cramé.

Dans les trois cas il convient de couper l'alimentation du moteur et de passer en erreur.

Sinon ma conception, c'était fait en une semaine je ne considère pas vraiment ça comme abouti smiley-razz
184  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 31, 2012, 04:34:21 am
Ben je ne vois pas en quoi cela poserait problème ? A partir d'un certain régime, la tension produite est suffisante pour activer l'optocoupleur, à partir de ce régime il n'y a plus de risque d'arret du moteur si le démarreur ne tourne plus, donc je coupe le démarreur.
En fait l'alternateur produit quasiment immédiatement du 230V mais c'est la fréquence qui augmente avec le régime moteur.
Le fait est que ça fonctionne parfaitement en mode "manuel" (démarrage depuis l'entré e_local) alors que ça ne foire que dans le cas du démarrage depuis l'entrée e_ext.

La seule différence entre ces deux entrées dans le code, c'est que l'entrée locale active un flag puis n'est plus lue, alors que l'entrée ext est lue tout le temps et que si elle tombe cela coupe le moteur. Mais dans ce cas ça ne devrait pas faire remonter un défaut de "calage moteur", ça devrait juste le couper puis redémarrer.

Du coup je me suis dit il y a peut-être une perturbation de l'entrée e_run qui me fait détecter un calage, alors j'ai rajouté une tempo sur cette détection de calage, ce qui n'a rien changé.

Je crois que tu n'avais pas la dernière version du code, je la joins à ce post. Attention, elle est passablement en vrac, c'est fruit de modifications dans tous les sens en désespoir de cause à des heures inavouables...

Sur la suggestion de barbudor, suis en train de re-dessiner une nouvelle carte en utilisant directement un atmega328 en boitier DIL, comme ça déjà je vais éliminer les soucis d'alimentation liés aux deux régulateurs en cascade, et le soucis de liaison série qui se perds, vu que j'utilisera alors un convertisseur USB/TTL externe.
Je crois que tant que ça n'est pas fait, il sera difficile de comprendre ce qui se passe, vu que je n'ai de toutes façons plus le matériel sous la main pour faire des essais.

En tout cas, merci de t'interresser à mon problème smiley
185  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 31, 2012, 03:26:44 am
non. le fonctionnement du moteur et donc le calage est détecté par e_run. Quand le moteur tourne, l'alternateur produit du 220V, et active l'optocoupleur.

e_alim, ça sert à détecter si l'interrupteur général est sur on ou pas, pour couper l'auto-maintien de l'alim.
186  International / Français / Re: réaliser une temporisation on: October 31, 2012, 02:52:18 am
pardon, employé comme ça, ça ne va pas marcher !! il faut pour que ça marche avoir une variable globale temps_courant de type unsigned long, à mettre à jour au début de ta fonction loop, avec la ligne suivante :

Code:
unsigned long temps_courant; //variable globale, à déclarer en haut de ton fichier

loop() {
temps_courant = millis(); //mise à jour de la valeur à chaque passage dans loop()

etc;
etc;
etc;
etc;
}

il aurait été possible d'utiliser millis() directement dans la fonction tempoMS, mais j'ai procédé de la sorte car dans mon programme j'utilise plusieurs fois la fonction, à des endroits différents, et il me fallait avoir à chaque passage dans la boucle la même origine des tempos.

Cela dit, cette fonction est extrêmement basique, sans doute ferait-tu meilleur usage de la librairie de Barbudor.
187  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 30, 2012, 04:59:35 pm
Et voila le schéma avec cette fois les modifs faites en live en pleine nuit. Je me rends compte en le dessinant à tête reposée que les capas de découplage ne sont pas forcément aux endroits les plus critiques, il en manque sur les entrées par exemple. Mais bon, en pleine nuit après 2 nuits blanches...

188  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 30, 2012, 04:57:15 pm
Je reposte ici le résumé de la situation que je viens d faire dans l'autre topic :

Bon alors il faut expliquer un peu à quoi sert tout ça : le but est d'avoir un fonctionnement automatique de groupe électrogène diesel. L'arduino doit donc sur demande externe (contact sec) faire démarrer le moteur, puis surveiller qu'il n'y a pas de défaut (calage, non démarrage, perte de pression d'huile) et réagir en conséquence.

Au départ, j'avais un reboot de l'arduino dès l'activation de démarreur Il s'est avéré que c'était dû à une grosse chute de tension de la batterie, ça s'est donc résolu par l'ajout d'une grosse capa (10 000µ) et d'une diode sur l'alim de la carte.
Ensuite, j'ai eu des détections farfelues au niveau des entrées, j'ai donc rajouté des capas de découplage un peu partout pour essayer de virer les pulses qui, je suppose, se baladent inopportunément, venant soit du démarreur, soit de l'alternateur de charge. Cela a semblé résoudre le problème, mais pas dans tous les cas.

Et c'est précisément le cas qui foire qui devrait être le mode le plus utilisé du système : la commande de démarrage externe.
Avec la commande locale, ça fonctionne (presque) à chaque fois.
Avec la commande externe, ça merde à chaque fois : le moteur démarre, puis l'arduino le coupe et signale "défaut calage" comme si le moteur avait calé de lui même. Comme le programme fonctionne quand je teste la carte sur le bureau avec des poussoirs pour simuler les capteurs, je suppose que le soucis vient du matériel et non du soft, mais je ne peux en être sur, pour une raison très claire :  quand la prise USB est raccordée sur la carte, d'une part, ça fonctionne (ce qui tendrait à suspecter un soucis sur l'alim, mais pourtant sa surveillance à l'oscillo ne laisse rien paraitre de suspect), et d'autre part : au moment ou sans l'USB, ça déconne, la liaison USB se réinitialise, et donc le temps de relancer la console sur le nouveau port, j'ai perdu le log qui me serait utile.

C'est ce décrochage de l'USB qui me fait dire "perturbations EM", mais sans doute suis-je à coté de la plaque.

J'ai du coup essayé d'utiliser le FTDI d'une autre nano grillée dont j'ai supprimé l'atmega comme convertisseur USB/TTL, que j'ai raccordé sur les pins TX, RX, et GND de la nano en place. Et bien rien, ça ne communique pas. http://arduino.cc/forum/index.php/topic,129661.0.html

189  International / Français / Re: réaliser une temporisation on: October 30, 2012, 03:52:07 pm
Par exemple dans ton cas, en utilisant ma fonction, tu aurais un truc dans le genre :

Code:
static boolean flag=0,flag2=0;
static unsigned long T1=valeur_init,T2=valeur_init2;


//ici dans ton code tu modifie T1 ou T2 si besoin.


if (condition)
  flag = true;

if (flag)
{
  if (tempoMS(T1,O) { flag2=true;
      digitalWrite(ta_sortie, true); }
 
  if (flag2)
    if (tempoMS(T2,0) { flag = flag2 = false;
digitalWrite(ta_sortie, false); }
}

ce code est à mettre dans une fonction qui sera appelée depuis la fonction loop(), ou directement dans loop(), selon ton programme.
Comme il n'est pas bloquant, tu peux continuer à faire autrechose (par exemple lire T1 et T2 depuis ton interface graphique) à chaque passage dans loop(), à condition que cet autrechose ne soit pas bloquant non plus, sinon les temps T1 et T2 ne seront pas respectés.
190  International / Français / Re: réaliser une temporisation on: October 30, 2012, 03:42:27 pm
Bon, bah finalement, je la donne, elle est très simple, ça peut peut-être servir quand même :

Code:
byte tempoMS(unsigned long duree) {
  //comme son nom l'indique... fournit une temporisation en ms
 
  //le premier appel avec "duree" lance la tempo, retourne false
  //ensuite retourne false si "duree" (en ms) n'est pas écoulée, puis true lors de son
  //premier appel après écoulement de la durée "duree"
  //l'appel suivant relance la tempo.
 
  //un appel avec "duree" à 0 termine la tempo et retourne true.


  //TODO idée pour simplifier : virer le reset auto quand le temps est écoulé,
  //uniquement reset manuel -> permet des appels avec temps différents depuis le même état de la machine
 
  static unsigned long temps_debut = 0;
  static boolean tempo = false;
   
  if (!duree) { tempo = false;
return true; }
     
  if (!tempo) { tempo = true;
temps_debut = temps_courant;
return false; }
  else
    if (temps_courant > (temps_debut + duree)) {
      tempo = false; //remet à 0 le flag tempo si durée écoulée pour permettre le lancement suivant
      return true;
    }
    else return false;
}
191  International / Français / Re: réaliser une temporisation on: October 30, 2012, 03:24:32 pm
haaaa ben voila une lib qui m'aurait simplifié la vie si je l'avais vue avant le début de mon projet de groupe automatique smiley-razz
J'étais venu voir ce sujet en me disant que j'allais proposer ma fonction de tempo non bloquante, mais finalement...
192  International / Français / Re: Capas de découplage ? on: October 30, 2012, 03:14:30 pm
Bon alors il faut expliquer un peu à quoi sert tout ça : le but est d'avoir un fonctionnement automatique de groupe électrogène diesel. L'arduino doit donc sur demande externe (contact sec) faire démarrer le moteur, puis surveiller qu'il n'y a pas de défaut (calage, non démarrage, perte de pression d'huile) et réagir en conséquence.

Au départ, j'avais un reboot de l'arduino dès l'activation de démarreur Il s'est avéré que c'était dû à une grosse chute de tension de la batterie, ça s'est donc résolu par l'ajout d'une grosse capa (10 000µ) et d'une diode sur l'alim de la carte.
Ensuite, j'ai eu des détections farfelues au niveau des entrées, j'ai donc rajouté des capas de découplage un peu partout pour essayer de virer les pulses qui, je suppose, se baladent inopportunément, venant soit du démarreur, soit de l'alternateur de charge. Cela a semblé résoudre le problème, mais pas dans tous les cas.

Et c'est précisément le cas qui foire qui devrait être le mode le plus utilisé du système : la commande de démarrage externe.
Avec la commande locale, ça fonctionne (presque) à chaque fois.
Avec la commande externe, ça merde à chaque fois : le moteur démarre, puis l'arduino le coupe et signale "défaut calage" comme si le moteur avait calé de lui même. Comme le programme fonctionne quand je teste la carte sur le bureau avec des poussoirs pour simuler les capteurs, je suppose que le soucis vient du matériel et non du soft, mais je ne peux en être sur, pour une raison très claire :  quand la prise USB est raccordée sur la carte, d'une part, ça fonctionne (ce qui tendrait à suspecter un soucis sur l'alim, mais pourtant sa surveillance à l'oscillo ne laisse rien paraitre de suspect), et d'autre part : au moment ou sans l'USB, ça déconne, la liaison USB se réinitialise, et donc le temps de relancer la console sur le nouveau port, j'ai perdu le log qui me serait utile.

C'est ce décrochage de l'USB qui me fait dire "perturbations EM", mais sans doute suis-je à coté de la plaque.

J'ai du coup essayé d'utiliser le FTDI d'une autre nano grillée dont j'ai supprimé l'atmega comme convertisseur USB/TTL, que j'ai raccordé sur les pins TX, RX, et GND de la nano en place. Et bien rien, ça ne communique pas. http://arduino.cc/forum/index.php/topic,129661.0.html

En fait je crois que ce sujet fait doublon, vu que je me retrouve à expliquer deux fois la même chose.
Je n'aurais pas du le créer, il serait sans doute plus clair pour tout le monde de continuer la discussion sur le post d'origine : http://arduino.cc/forum/index.php/topic,125887.0.html
193  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 30, 2012, 02:25:02 pm
oui, y'a tout sauf les capas que j'ai rajouté en live

alors l'alim, en fait, c'est simple : quand j'ai une demande de démarrage, que ce soit via l'entrée EXT (contact sec) ou LOCAL (contact sec entre +(borne 1) et local), alors via les diodes D6 ou D7 cela charge le condensateur C4, Ce qui crée un courant dans R8 qui rends positive la gate de Q5, le relais colle et alimente la carte. Ensuite l'arduino prends le relais et alimente direct la gate de Q5, provoquant l'auto-maintien de l'alim. C4 est là pour faire une temporisation le temps que l'arduino boote et alimente lui même Q5.
R9 sert à décharger C4  en l’absence de EXT ou LOCAL, pour que le système refoncionne à la prochaine demande.

Le but de ça, c'est que quand le système est en veille il se coupe totalement de la batterie pour ne pas la décharger inutilement, vu que cela peut être amené à rester en veille plusieurs semaines, voire mois.

J'ai ensuite un timout dans le programme, pour que si aucune nouvelle demande n'arrive, l'alim se coupe. En l'occurence après 2 minutes en fonctionnement normal, et 2h si il y a un défaut grave à afficher.

Et non, le reboot ne vient pas de là, enfin plus maintenant que j'ai rajouté un condo de 10000µ et une diode sur l'alim.

Maintenant, ce n'est plus l'arduino qui reboote mais juste le FTDI (ou en tout cas la liaison USB coupe) ce qui m'empèche de voir ce qui merde à ce moment précis.
Je pense que j'ai encore à ce moment des impulsions qui se baladent suite à l'amorçage de l'alternateur ou un truc comme ça, et que mes capas n'ont pas court-circuité, et qui me provoquent les soucis.

En plus comme le matériel est chez le client, pour le moment je ne peux plus faire de tests avant d'avoir réalisé une nouvelle carte et l'avoir montée sur un autre groupe...
194  International / Français / Capas de découplage ? on: October 30, 2012, 12:53:39 pm
Bonsoir

pour un projet où je dois utiliser un arduino proche d'un moteur diesel, j'ai de gros problèmes de perturbations EM lors de l'activation/arret du démarreur.

J'ai essayer de rajouter des capas de 100nF plastique un peu partout sur les alims et les lignes de données sensibles pour virer ces perturbations, mais sans grand succès.

Avez-vous des méthodes plus efficaces ou des valeurs précises de capa pour cet usage à me conseiller ?

Le schéma concerné est là : http://arduino.cc/forum/index.php?action=dlattach;topic=125887.0;attach=28335



La description du projet est ici : http://arduino.cc/forum/index.php/topic,125887.msg974621.html#msg974621
195  International / Réalisations et Projets Finis / Re: Commande automatique de groupe électrogène - machine à états et autres questions on: October 30, 2012, 12:44:48 pm
Bon sinon pour savoir de quoi on parle, voila le schéma de mon système (fichier joint)
(il manque dessus les capas de découplage que j'ai rajouté un peu partout)

Pages: 1 ... 11 12 [13] 14 15 ... 19