suite logique d'activation de solenoide pneumatique (etape "haut" "bas")

neodelavega:
j’utilise celle tout a gauche en triangle et aulieu de 60* j'ai mis 20* se qui me paresser logique par rapport a se que la personne avais marquer dans son code je refais des teste

alors j'ai modifier CHANGE par RISING car avec change j'obtenez n'importe quoi
avec 20*

et avec réglage logiciel tout a gauche ( en TRIANGLE)

voila se que j'obtiens

pour tout les résultat j’obtiens une variante j'ai marquer les variante maxi et mini

500hertz limite faible = 4408 limite forte = 4460
1000hertz limite faible = 3971 limite forte = 4180
1500hertz limite faible = 3515 limite forte = 3720
12000hertz limite faible = 800 limite forte = 2964

tu test juste le programme tachometer ou tu a integré déjà ça dans ton programme à toi ?
la progression et les ecarts pour 500,1000,1500 semblent ici assez lineaire

non je n'est pas tester sur mon programme final de toute façon la UNO a pas assez de sortie et si je le mais sur ma carte final je pourrez rien faire car actuellement le moteur est pas en état de tourner mais je m’attendes a des écart de 10rpm voir 50rpm

je voulais faire une fonction autoshift aussi

avec cette info je vais faire une interdiction de passer les rapport inférieure a une certaine gamme de tour minute (pas pour protéger le moteur contre moi ^^ car quand on connais par cœur la bonne gamme du regime on se trompe pas mais j'ai plus peur que sa bug ou que sa me compte une double impulsion de rapport inferieur) pour chaque vitesse ou du moins par tranche de 2 vitesse par exemple

et aussi un truc auquel j'avais penser est qui pourrez être sympa inclure une fonction rapport supérieure 100rpm avent le rupteur ou 50 par exemple se qui me fait un passage parfait a chaque rapport

sinon si je suis a la limite des performance de l'arduino (seeeduino) je me contente configurer une simple sortie sur ma gestion programmable pour avoir au moins l'autoshift et tempi pour la protection sur les rapport inférieur a trop haut régime moteur

EDIT: je vais essayer d'autre test et d'autre fonction voir laquelle donne les meilleur résultat

bonjour a tous

j'ai essayer pas mal de réglage sur le dernier code et je n'est rien de bien précis

alors j'ai 2 option

1> tester en réel avec mon UNO de test pour essayer le même code mais cette fois avec la vraie impulsion (pas avec le GBF carte son) directe en sortie ECU

le signal doit sortir en 12V je me suis renseigner est certaine personne parle de mettre un optocoupleur quand pensez vous (pour repasser en signal 5V) ?? au niveau de l'offset ect ?? (la fréquence ne dépassera pas 500 hertz)

2> la 2eme idée je ne les pas trouver sur le net mais c'est mois qui y est penser si je convertie se signal pulser 12V a l'aide d'un montage électronique pour le basculer en signal analogique ?? 0V= 0RPM et 5V = 10 000rpm par exemple quand pensez vous ?? sa serrer plus précis ??

merci bon dimanche !

Bonjour

quelqu’un peut t'il me conseiller sur le choix que je peux faire

si quelqu’un a déjà récupérer un signal en sortie ecu le mieux a faire c'est quoi ??

car artouste m'avez montrer un code baser sur des photodiode mais j'ai beau modifier le code sa ne marche pas comme je veux

si vous pouvez m’éclairer merci

neodelavega:
Bonjour

quelqu’un peut t'il me conseiller sur le choix que je peux faire

...

Bonjour
Il faut que tu fasse un point d'etape ! 8)
ton topic devient illisible et n'incite pas des possibles repondants à se pencher dessus.
meme moi qui le suit pourtant d'un d'un oeil distant mais bienveillant :), je m'y perd :grin:
fait une synthese de l'actualité de situation :
le but, les moyens mis en oeuvre, ce qui est fait, ce qui reste à faire, ce qui est validé, ce qui ne l'est pas, etc

bonjour

tu a totalement raison artouste (en lisant juste la page 9 on pige rien)

pour résumer je suis passer d'une carte UNO a une seeeduino MEGA

le but est de commander une boite séquentiel par palette au volant (il y a 6 électrovanne pneumatique) le code est déjà fini et fonctionnel mai ayant du temps j'ai décider de fiabiliser et de sécuriser mon installation notamment par 2 ajout

le premier crée une entrer pour mettre un BP sous la pédale d'embrayage pour éviter de passer les rapport accidentellement quand le moteur et au ralentie avec le coude ou si on se penche dessus ect... se que j'ai réussie a faire sans trop de soucie comme je commence a comprendre les base du code

le second ajout et c'est lui qui me pose probleme serrer de lire la sortie tachometer (sortie destiner au compte tour) qui sort de mon ECU (gestion programmable du moteur) pour l'injecter dans mon seeeduino est de la modifier pour en sortir une valeur en RPM (tour minute du moteur) je n'est pas le matériel pour lire se signal mais d'apprer se que j'ai vue il s’agit d'un signal de 12V en hertz a 300hertz je suis a 6000rpm se qui équivaut a 3 impulsion par tour de vilebrequin, étant donner que sur un 4T on a 720° pour réaliser le cycle 4T on en déduit que sur les 720° on a 6 impulsion 3 sur le premier 360° (premier tour du cycle) et 3 autre sur le second 360° (2eme et dernier tour du cylce 4T) on en déduit aussi que c'est un 6 cylindre

donc je ne savez pas vraiment par ou attaquer car je n'est jamais exploiter se type de signale est surtout le reproduire (car actuellement le moteur et hors de la voiture donc difficile de faire des teste)

donc ma première question etait de savoir comment le reproduire
artouste ma donc appris que je pouvez le reproduire par une simple carte son d'ordinateur et avec un AOP amplificateur c'est se que j'ai donc fait

d’abord j'ai utiliser la fonction pulsein qui me paraisse la plus approprier mais au final mais essaie se sont enverrez erronée (trop imprécis)

je suis donc revenus ici et artouste ma plutôt conseiller d'utiliser la formule d’interruption qui est bien plus précise en me fournissant aussi un code

j'ai donc injecter le code dans ma UNO (j'utilise ma UNO pour tout les test la puce étant monter sur socket je me soucis guère du nombre de flash)

les résultat on était beaucoup plus précis mais ne suivez pas la logique que je voulez

j'ai utiliser se code:

/*
 * Optical Tachometer
 *
 * Uses an IR LED and IR phototransistor to implement an optical tachometer.
 * The IR LED is connected to pin 13 and ran continually.
 * Pin 2 (interrupt 0) is connected across the IR detector.
 *
 * Code based on: www.instructables.com/id/Arduino-Based-Optical-Tachometer/
 * Coded by: arduinoprojects101.com
 */

volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;


void rpm_fun()
 {
   //Each rotation, this interrupt function is run twice, so take that into consideration for 
   //calculating RPM
   //Update count
      rpmcount++;
 }

void setup()
 {

   Serial.begin(9600);
   //Interrupt 0 is digital pin 2, so that is where the IR detector is connected
   //Triggers on FALLING (change from HIGH to LOW)
   attachInterrupt(0, rpm_fun, CHANGE);


   rpmcount = 0;
   rpm = 0;
   timeold = 0;
 }

 void loop()
 {
   //Update RPM every second
   delay(1000);
   //Don't process interrupts during calculations
   detachInterrupt(0);
   //Note that this would be 60*1000/(millis() - timeold)*rpmcount if the interrupt
   //happened once per revolution instead of twice. Other multiples could be used
   //for multi-bladed propellers or fans
   rpm = 20*1000/(millis() - timeold)*rpmcount;
   timeold = millis();
   rpmcount = 0;
   //Restart the interrupt processing
   attachInterrupt(0, rpm_fun, CHANGE);
   Serial.println(rpm, DEC);
  }

j'ai changer pas mal de fois la ligne:

rpm = 20*1000/(millis() - timeold)*rpmcount;

et aussi

attachInterrupt(0, rpm_fun, CHANGE); (par RISING,CHANGE, ect...)

mais je n'est jamais de bon résultat j'ai une gamme en hertz ou c'est très précis des que j'augmente ou que je diminue le signal sa me mais n'importe quoi

dans la gamme la plus précise j'ai des erreur de 10 a 20 rpm pas plus se qui commence a être intéressant

je voulez donc savoir quelle est la meilleur méthode pour calculer se type de signale

je pensez attendre que ma voiture soit remonter dans 5 ou 6 mois pour tester avec le vraie signal sortant de mon ecu

ou bien a l'aide d'un montage électronique de convertir se signale en hertz en entrer analogique 0-5volt se qui est peut être plus exploitable pour l'arduino ??

pour le logiciel qui créer mon signale j'utilise sa: VB_Generator_standalone

voila si quelqu’un a déjà traiter se type de signal est se type de situation est bien je suis preneur sur la méthode qu'il a employer pour traiter convenablement le signal

en vous remercient par avance si il y a d'autre point a éclaircir merci de me le faire savoir

bonjour je viens de faire une découverte apparemment sur les voiture récente il s'agit d'un signale carrer déjà en 5volt (pas 12V comme je l'avais marquer) qui sort directement de l'ecu j'en déduit donc que je pourrez brancher directement ma sortie a mon seeeduino

neodelavega:
bonjour je viens de faire une découverte apparemment sur les voiture récente il s'agit d'un signale carrer déjà en 5volt (pas 12V comme je l'avais marquer) qui sort directement de l'ecu j'en déduit donc que je pourrez brancher directement ma sortie a mon seeeduino

bonjour
c'est une info facilement verifiable In situ, l'ideal est d'avoir un petit oscilloscope, mais un petit multimetre fera l'affaire

le truc c'est comment ?? car les multimètre lise juste le signal a 50hertz (tension secteur) et de plus la tension ne s'inverse pas sa fait juste des pic sa ne marchera pas non ?

et sinon apparemment personne sur le forum français a la réponse a mon probleme

neodelavega:
le truc c'est comment ?? car les multimètre lise juste le signal a 50hertz (tension secteur) et de plus la tension ne s'inverse pas sa fait juste des pic sa ne marchera pas non ?

et sinon apparemment personne sur le forum français a la réponse a mon probleme

tu reste en calibre DC , tu te mets en tours stabilisés et tu lis la tension pour 1000 2000 6000 :grin:

bonjour a tous

tu reste en calibre DC , tu te mets en tours stabilisés et tu lis la tension pour 1000 2000 6000 smiley-mr-green

je testerez le signal une fois la voiture remonter car actuellement se n'est pas possible

sinon pour en revenir a l’acquisition de mon signal je vais changer de méthode car sa ne marchera pas j'ai fait d’avantage de recherche est j'ai trouver sa:

const int sensorPin = 2;;
const int sensorInterrupt = 0;
const int timeoutValue = 1;
int rpm = 0;

volatile unsigned long lastPulseTime;
volatile unsigned long interval = 0;
volatile int timeoutCounter;

bool blink = false;

void setup()
{
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);    // enable internal pullup (if Hall sensor needs it)
  attachInterrupt(sensorInterrupt, sensorIsr, FALLING);
  Serial.begin(9600);
  lastPulseTime = micros();
  timeoutCounter = 0;
}

void sensorIsr()
{
  unsigned long now = micros();
  interval = now - lastPulseTime;
  lastPulseTime = now;
  timeoutCounter = timeoutValue;
}

void loop()
{
  Serial.print(" RPM ");
  if (timeoutCounter != 0)
  {
    --timeoutCounter;
    float rpm = 60e6/(float)interval;
    Serial.print(rpm, 1);
  }
  Serial.println();
  delay(500);
}

je me suis aussi renseigner sur la partie hardware j'ai vue qu'il était conseiller de rajouter une résistance 22K en entrer pin 2

sa a nettement améliorer mon signal j'ai des erreur de 3 rpm se qui est tout a fait acceptable, de temps en temps j'ai des pic X4 sa multiplie par 4 le résultat que j'ai actuellement

exemple je règle a 4000rpm pendant 30sec je vais avoir 4000 RPM plus ou moins et une fois 16 000rpm puis sa repasse a 4000rpm je suppose que sa vien de mon AOP ou du ogiciel ou de ma carte son

bref j'ai modifier le code j'ai remplacer

float rpm = 60e6/(float)interval;

par

float rpm = 20e6/(float)interval;

j'obtiens la bonne lecture pour une impulsion d'un 6 cylindre

ensuite j'ai intégrer le code dans mon ancien code que j'avais fait pour mon UNO j'ai très vite était embêter avec la ligne delay500 (mise en pause de mon code)

se probleme n'est pas vraiment grave pour les personne qui souhaite faire un simple "compte tour" sur afficheur LCD mais pas pour moi car j'ai le code pour la gestion de ma pompe a eau ventilo,boite de vitesse ect...

je les donc supprimer mais sa me mais une valeur de 40 000 rpm a 50 000 rpm bref sa fait n'importe quoi

donc je pense revenir sur mais première idée

je pense utilisez un TC9401CPD

datasheet: TC9401CPD datasheet(12/20 Pages) MICROCHIP | Voltage-to-Frequency/Frequency-to-Voltage Converters

pour convertir ma fréquence 0hertz 600hertz (0rpm 12 000 rpm) a un signal analog 0-5V sa utilisera moins les ressource de l'arduino

merci.

neodelavega:
donc je pense revenir sur mais première idée

je pense utilisez un TC9401CPD
...
pour convertir ma fréquence 0hertz 600hertz (0rpm 12 000 rpm) a un signal analog 0-5V sa utilisera moins les ressource de l'arduino

merci.

Bonjour
en soit l'idée du CFV est une bonne idée, mais intuitiviment je crains que tu dirige finalement vers une usine à gaz :grin:
difficile à gerer.
Je jeterais un oeil plus tard au datasheet

bonjour artouste

il est pas faux que je me dirige vers une usine a gaz ou j'y suis peut être déjà ?? ^^ (avec les 6 AD595 ect ect ect)

il me reste encore de la place dans ma boite mais c'est sur qu'a dépanner c'est plus complexe mais bon d'un autre coter je me dit que les option que je rajoute ne sont pas vitale a moins que sa peut générer des bug supplémentaire pour ma partie vitale ??

pour l'instant avec le seeeduino et les composant j'ai:

vitale:

boite de vitesse
pompe a eau

le rajout du BP d'embrayage s'il venez a ne plus marcher sa me bloque en position point mort

non vitale:

boost controller
les 6X AD595
les 2 ventilateur qui succède la pompe en cas d'inefficacité
acquisition des RPM sur le seeeduino

s'il venez a ne plus fonctionner le code continuer de fonctionner (plus de autoshift et plus de protection contre les surrégime)

Bonjour

Converion Fréquence/Tension : jamais utilisé les TC9400 mais des LM2907 et LM2917 tout a fait adaptés aux environnements industriels : www.ti.com/lit/ds/snas555b/snas555b.pdf
Alim 12V mais sorties sur emetteur ou collecteur 'ouverts' , donc sortie 0-5V possible. 3,90€ chez Gotronic en DIP 8 ou 14 pins.
C'est pas tout jeune, mais comme le 555 ou le L293 de la même époque c'est du robuste et de "l'intemporel" !!

applications.jpg

al1fch:
Bonjour

Converion Fréquence/Tension : jamais utilisé les TC9400 mais des LM2907 et LM2917 tout a fait adaptés aux environnements industriels : www.ti.com/lit/ds/snas555b/snas555b.pdf
Alim 12V mais sorties sur emetteur ou collecteur 'ouverts' , donc sortie 0-5V possible. 3,90€ chez Gotronic en DIP 8 ou 14 pins.
C'est pas tout jeune, mais comme le 555 ou le L293 de la même époque c'est du robuste et de "l'intemporel" !!

bonjour al1fch
Je ne me souviens pas en avoir utilisé, mais effectivement c'est du quasi increvable longuement eprouvé
et surement plus simple de "tripailles externes" pour l'application souhaitée.

Bonjour al1fch

merci pour ta réponse en effet le LM2907 a l'air bien plus facile a mettre en œuvre que le TC9400 qui fait sapin de noël a coter avec toute ces "guirlandes" autour

même si noël approche je pense m'orienter sur le LM2907 il rendra mon "installation" plus simple a dépanner et plus compréhensible

j'ai regarder le datasheet est la figure 8 semble correspondre a mais besoin

sur la borne 1 il me faut inverser mon signale ? car c'est du +5V que j'envoie hor sur la pin 1 du LM j'ai un signe de masse

je suppose aussi qu'il faudra que je modifie la résistance 10K pour avoir 120 hertz/Volt et non 66hertz/volt

voici la note d'application pour les LM2907 et LM2917 : (juin 76 !!)

-l'entrée 1 est conçue pour etre reliée directement à un capteur inductif (tension alternative d'amplitude 250mV... supporte jusqu'à 28V !)
les figures 4b et 4c montrent le couplage à travers un condensateur.
je n'ai jamais essayé 4d qui peut centrer l'entrée autour de 2,5V par exemple

-le choix des composants R1 et C1 est décrit , avec en plus l'abaque de la figure 10

-Le boitier 14 pins donne accès à l'entrée - du comparateur d'entrée

bonjour merci pour la doc

alors déjà sur la doc je vois qu'il y a le LM2917 et le LM2907 j'ai donc chercher est apparemment le 2917 a une diode zener incorporer alors que le 2907 n'en a pas lequel choisir ?

-l'entrée 1 est conçue pour etre reliée directement à un capteur inductif (tension alternative d'amplitude 250mV... supporte jusqu'à 28V !)
les figures 4b et 4c montrent le couplage à travers un condensateur.
je n'ai jamais essayé 4d qui peut centrer l'entrée autour de 2,5V par exemple

mon signal et en courent continue pas d'inversion de polarité, sur 360° j'ai 3 impulsion de 5V le signale est carrer donc je peut brancher directement ma sortie ECU (tachometer) sur la pin 1 du LM ?

-le choix des composants R1 et C1 est décrit , avec en plus l'abaque de la figure 10

ok vue ! donc pour ma plage d'utilisation C1= 0,1 µF et R1= 1000K correcte ? se qui fait une plage d'utilisation de 1kHz etant donner que pour moi la plage sera 0 hertz a 600 hertz

-Le boitier 14 pins donne accès à l'entrée - du comparateur d'entrée

l’encombrement n'est pas encore un soucis pour moi il me reste encore un peu de place je prendrez donc le 14pins pour avoir plus de réglage

par contre comment déterminer la plage en sortie pour avoir 0-5V ??

merci et bon week !

Bonjour

réponse partielle, (schéma provisoire joint) en attendant le dimensionnement des composants....
-Zener intégrée : inutile si le montage dispose d'une tension régulée de 12V, utile si on veut faire un compte-tours alimenté par la batterie.
-Un condensateur et une résistance permettront d'obtenir sur la pin 1 du LM2907 du [-2,5v, +2,5V] à partir du signal carré [0V, 5V] disponible. le LM2907 veut de l'alternatif sur son entrée 1 si la pin 11 est à la masse.
-si le signal ECU sort en collecteur ouvert il faudra ajouter un pull-up.
-Pont diviseur en sortie pour limiter la pleine échelle à 5V

Question 'subsidiare' : est-tu certain des caractéristiques du signal tachymetrique disponible dans ton cas (0-5V, carré, de fréquence proportionnelle à la fréquence de rotation ???). Si l'info tachymetrique sort sous la forme d'un signal rectangulaire de rapport cyclique variable alors la conversion fréquence/tension ne convient pas.

DipTrace Schematic - 2907.pdf (9.69 KB)

merci pour avoir consacrer du temps pour le schéma

réponse partielle, (schéma provisoire joint) en attendant le dimensionnement des composants....

de quelle donner a tu besoin pour dimensionner correctement les composants ?

-Zener intégrée : inutile si le montage dispose d'une tension régulée de 12V, utile si on veut faire un compte-tours alimenté par la batterie.

je ne dispose pas de 12V réguler sur ma voiture seulement la sortie batterie qui fluctue de 11v j'usqua 14v je voulez mettre un régulateur 12V mais artouste ma dit que se n’était pas possible (ma tension n'est pas assez élevée) par contre j'ai une sortie 9V réguler et les sortie 3.3V et 5V du seeeduino

-Un condensateur et une résistance permettront d'obtenir sur la pin 1 du LM2907 du [-2,5v, +2,5V] à partir du signal carré [0V, 5V] disponible. le LM2907 veut de l'alternatif sur son entrée 1 si la pin 11 est à la masse.

hmmmm ok je vois je n'aurai jamais pensez a sa

-si le signal ECU sort en collecteur ouvert il faudra ajouter un pull-up.

je ne veux pas dire de connerie mais il me semble que c'est en collecteur ouvert malheureusement je ne peut en être sur car je n'est pas d’oscilloscope

-Pont diviseur en sortie pour limiter la pleine échelle à 5V

ok je vois resistance 4K7 et 2K2 = 5V

Question 'subsidiare' : est-tu certain des caractéristiques du signal tachymetrique disponible dans ton cas (0-5V, carré, de fréquence proportionnelle à la fréquence de rotation ???). Si l'info tachymetrique sort sous la forme d'un signal rectangulaire de rapport cyclique variable alors la conversion fréquence/tension ne convient pas.

eh bien le probleme c'est que je suis pas sur a 100% mais j'ai effectuer plusieurs recherche qui confirme que c'est du 5V a se que j'ai compris il y a 2 grand type de signal

les ancien Voltage spike
et les nouveau 5V square wave (se que je dois forcement avoir)

http://dtec.net.au/Tachometer%20Driver.htm
il est ecrit: (like the 5V 'tacho' output from an ECU)

et aussi sa

EDIT: apparemment certaine personne dise avoir mesurer la tension sur l'ECU d'origine du 2JZ-GTE (le moteur que j'ai) est il s'agirez bien d'un signal carrer mais pas en +5V mais plutôt en +12V je suppose que je dois avoir le même type de signal sur mon ECU programmable (je continue mais recherche)