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

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)

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

la doc avec sa formule : Vout = Vcc. F . R1 . C1 . k
k vaut typiquement 1
Vcc : si un 9V régulé est disponible il est possible de prendre un composant sans zener et d'alimenter en 9V

choisir ensuite un couple R1C1 :
exemple R1 = 100k, C1 = 100nF ==> Vout = 5,4V pour F=600Hz

Pas de composant sous la main mais une petite simulation sous LTSpiceIV donne :
5,4V pour 600Hz 2,7V pour 300Hz 1,35V pour 150Hz ....
(pour accélerer les calculs j'envoie une sinusoide décalée (sommet à 5V, creux à 0V, moyenne à 2,5V)

pdf joints : schéma simulé et courbes

schéma LM2907-14 600Hz.pdf (6.48 KB)

LM2907-14 sortie pour 600Hz.pdf (126 KB)

LM2907-14 sortie pour 300Hz.pdf (108 KB)

Vcc : si un 9V régulé est disponible il est possible de prendre un composant sans zener et d'alimenter en 9V

oui j'avais utiliser un LM7809 avec en entrer un condensateur 1 µF et un autre 1µF en sortie

choisir ensuite un couple R1C1 :
exemple R1 = 100k, C1 = 100nF ==> Vout = 5,4V pour F=600Hz (et bien entendu 9V pour 1kHz)

sa me semble bien sa nous donne:

600/5,4x5 = 555,55 hertz = 5Volt

(555,55x2)x10 = 11 111 RPM max pour ne pas dépasser 5 volt et détruire le seeeduino

théoriquement il et impossible de le détruire si je ne dépasse pas 11 100 rpm ? ou vos t'il mieux mettre un circuit de protection ou cas ou, pas mon moteur mais une erreur qui produit par exemple 1Khz = 9V et la pus de seeeduino ??

ps: a 11 100 rpm sa me laisse une marge plus que raisonnable pour les possibilité de ma preparation moteur je ne pense pas en venir j'usqua ici

Pas de composant sous la main mais une petite simulation sous LTSpiceIV donne :
5,4V pour 600Hz 2,7V pour 300Hz 1,35V pour 150Hz ....
(pour accélerer les calculs j'envoie une sinusoide décalée (sommet à 5V, creux à 0V, moyenne à 2,5V)

oui c'est judicieux sa évite de manipuler des composant est de les griller avec une fausse manip ou un mauvais calcul je garde le nom du logiciel au chaud

pour les 2 dernière pièces jointe tu voulez me montrez le temps de latence d'aprer se que j'ai compris ?? pendant un laps de temps de quelque ms les valeur sont fausse c'est bien sa ??

pour le signal qui se retrouve en +12V aulieu de +5V sa ne change rien ?

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.

j'ai pas exactement compris se que tu voulez dire par la tu veux dire que la frequence ne bouge pas mais que le rapport cyclique lui change ?? (impulsion plus long ou plus courte ??)

si c'est sa non elle ne change pas c'est toujours le même type d'impulsion (déclenchement des bobine d'allumage) il y a que la fréquence qui augmente par rapport au régime moteur (nombre de déclenchement de bobine par minute)

théoriquement il et impossible de le détruire si je ne dépasse pas 11 100 rpm ? ou vos t'il mieux mettre un circuit de protection ou cas ou, pas mon moteur mais une erreur qui produit par exemple 1Khz = 9V et la pus de seeeduino ??

Un circuit de protection (zener par exemple) est recommandé même si dans les conditions normales d'utilisation la sortie ne dépasse pas 5V. Il faut prévoir l'anormal' , limprobable qui finit par arriver.....

pour les 2 dernière pièces jointe tu voulez me montrez le temps de latence d'aprer se que j'ai compris ?? pendant un laps de temps de quelque ms les valeur sont fausse c'est bien sa ??

.
Le simulateur effectue içi les calculs à partir de la mise sous tension ( = condensateurs déchargés).
(J'aurai pu démarrer avec des condensateurs initialement chargés mais ça complique inutilement.)
On voit donc la mise en route. Un changement de fréquence en entrée sera reporté en sortie avec un petit retard.
Ci joint une simulation a fréquence variable en entrée. Je ne sais pas si ce retard (20 à 30ms) est acceptable dans le contexte.
On peut réduire ce retard avec comme conséquence d'augmenter l'amplitude de l'ondulation sur Vout. C'est donc un compromis.

pour le signal qui se retrouve en +12V aulieu de +5V sa ne change rien ?

En première approche la réponse est Oui. (+/- 6V et +/- 2,5V sont dans la plage de tension admise en entrée.
Mais rien ne vaut ensuite les constatations 'en vrai' sur maquette avec le vrai signal d'entrée.

'ai pas exactement compris se que tu voulez dire par la tu veux dire que la frequence ne bouge pas mais que le rapport cyclique lui change ?? (impulsion plus long ou plus courte ??)

Ne connaissant pas du tout les signaux pouvant sortir des divers ECU j'imaginais que la sortie aurait pu être du type rectangulaire a fréquence constante avec un état haut (ou bas) dont la durée 'porte' l'information RPM. Si ce n'est pas les cas autant oublier !

LM2907-14 perso FM.pdf (226 KB)

neodelavega:
sa me semble bien sa nous donne:

600/5,4x5 = 555,55 hertz = 5Volt

(555,55x2)x10 = 11 111 RPM max pour ne pas dépasser 5 volt et détruire le seeeduino

Bonsoir
selon les infos d'al1fch, regarde quelle est la tension d'alim la plus basse necessaire au CFV pour que
Vout à 600 Hz soit la plus proche de Vref arduino sans depasser Vlimit, c'est à ces conditions que securité et resolution seront reunies :grin:

Bonjour

Le simulateur effectue içi les calculs à partir de la mise sous tension ( = condensateurs déchargés).
(J'aurai pu démarrer avec des condensateurs initialement chargés mais ça complique inutilement.)
On voit donc la mise en route. Un changement de fréquence en entrée sera reporté en sortie avec un petit retard.
Ci joint une simulation a fréquence variable en entrée. Je ne sais pas si ce retard (20 à 30ms) est acceptable dans le contexte.
On peut réduire ce retard avec comme conséquence d'augmenter l'amplitude de l'ondulation sur Vout. C'est donc un compromis.

je ne pense pas que se soit très grave je m'ettrais le déclenchement a 7000rpm par exemple (rupteur 7200 pour l'instant)

se qui veux dire sur les première vitesse la ou elle sont les plus courte sa passera a 7100 ou 7150 (se n'est qu'un exemple) du a l'offset du LM2907 et sa passera a 7000 vers les dernière vitesse qui elle sont plus longue est donc le LM a le temps de s'actualiser

si sa augmente l'amplitude de l'ondulation c'est que je vais avoir d’avantage d'erreur fluctuation positive ou négative se qui n'est pas trop bon non plus sa demande a réfléchir ou même a faire des test

selon les infos d'al1fch, regarde quelle est la tension d'alim la plus basse necessaire au CFV pour que
Vout à 600 Hz soit la plus proche de Vref arduino sans depasser Vlimit, c'est à ces conditions que securité et resolution seront reunies

j'y avais déjà penser l'alimenter directement en 5V pour ne pas qui dépasse 5V si jamais la fréquence dépasse 600Hz mais se n'est pas bon car si je change la tension d'alim sa va tout me changer dans la formule et si aprer je tombe sur des composant qui sont pas dans les norme sa sera introuvable alors que une résistance de 100K et un condo de 100nF se trouve facilement

j'en profite:
comment sa se fait que dans la datasheet il est écrit voltage supply 28V alors que dans les montage on vois des alim en 12V et au dernière nouvel 9V apparemment

EDIT: quelle découplage choisir ? et comment le calculer surtout, car j'usqua maintenant on ma simplement dit de mettre sa ou sa donc y a t'il une façon de le calculer ou c'est plus par expérience est connaissance en électronique qu'on peut dire il faut t'elle condo

j'y repense pour la résistance pull up on peut la mettre par sécurité ?? (ou vos t'il mieux en être sur) car je ne suis pas sur que le signal sois a collecteur ouvert ou si le signal est tirer a 0V par l'ecu

merci bon dimanche !!

comment sa se fait que dans la datasheet il est écrit voltage supply 28V alors que dans les montage on vois des alim en 12V et au dernière nouvel 9V apparemment

28V c'est le maximum admissible (desctruction au delà)
12V c'est la valeur pour laquelle sont données la plupart des spécifications
7,5V est la valeur de la zener interne, on est donc assuré que la puce fonctionne également à 7,5V
6V est une valeur de Vcc que l'on aperçoit sur deux courbes, il est probable que ça soit le minimum pour Vcc
La puce ne semble pas fonctionner sous 5V
On a donc un vaste choix de tensions d'alimentation !!

al1fch:
...
6V est une valeur de Vcc que l'on aperçoit sur deux courbes, il est probable que ça soit le minimum pour Vcc
La puce ne semble pas fonctionner sous 5V
On a donc un vaste choix de tensions d'alimentation !!

bonjour
sans garantie voir ça , qui semble bien répondre au probleme :grin:

Bonjour Artouste
Si un LM2907 fonctionne sous 5V , comme sur le réalisation que tu cites, ça simplifie l'interfaçage avec l'Arduino !
Par contre avec une tension Vcc aussi basse la tension de déchet de l'ampli op de sortie et le transistor en émetteur suiveur limiteront sans doute la tension de sortie vers 3,5V.
En envoyant vers l'Arduino une tension variant entre 0V et 3,5V il y a quand même de quoi faire une mesure de fréquence acceptable !
Je ne trouve pas de LM2907 dans mes fonds de tiroir. Le modèle Spice du LM2907 ne modélise pas les 'défauts' de AOP internes.

j'ai regarder le lien il semble l'alimenter en 5V j'ai fait plus de recherche sur le LM2907 il semblerez que certaine personne les même tester a 3volt

on peut donc dire:

Vout = Vcc. F . R1 . C1 . k

Vout = 5x600x128x130 (k ignorer car = 1)

R1 = 128k, C1 = 130nF ==> Vout = 4,99V pour F=600Hz

sa nous donne 4,99V pour 600Hz

ps: je peut directement récupérer le 5V sur le régulateur du seeeduino

neodelavega:
ps: je peut directement récupérer le 5V sur le régulateur du seeeduino

bonsoir
si tu ne tire pas plus dessus que la disponibilité , c'est même la solution la plus pragmatique
puisque ce 5V sera aussi le "meme 5V" utilisé pour AREF