Tlemcen Car electronics

Tlemcen Car electronics (https://www.tlemcen-electronic.com/forum/index.php)
-   Arduino (https://www.tlemcen-electronic.com/forum/forumdisplay.php?f=130)
-   -   Est il possible de simuler un régime moteur et arbre à cames avec arduino (https://www.tlemcen-electronic.com/forum/showthread.php?t=52482)

j-sky 29/03/2016 19h40

Est il possible de simuler un régime moteur et arbre à cames avec arduino
 
Salut les amis

tout est dans le titre !

L'un d'entre vous sait il générer un signal régime moteur avec un arduino ?
En +, il faudrait qu'il puisse varier à l'aide d'un potentiomètre

L'idéal serait de générer le vrai régime mais si au moins on pouvais générer un signal carré de 58 dents + dents manquantes, ce serait déjà bien

http://philippe.boursin.perso.sfr.fr...g4/capt001.gif

Et pareil pour l'arbre à cames...

Je commencé à chercher mais je ne trouve pas la solution à mon problème

jerem22 29/03/2016 22h32

je suis justement a travailler dessus, j'ai le programme pour la sinusoïde mais j'ai pas encore trouver comment enlever les 2 périodes. Je pense ensuite filtrer avec des ampli op et je pourrait joué avec un offset pour aller dans les négatifs et avoir un signal parfait

r1lef 30/03/2016 00h22

Citation:

Envoyé par jerem22 (Message 412497)
je suis justement a travailler dessus, j'ai le programme pour la sinusoïde mais j'ai pas encore trouver comment enlever les 2 périodes. Je pense ensuite filtrer avec des ampli op et je pourrait joué avec un offset pour aller dans les négatifs et avoir un signal parfait

Content de te voir actif parmi nous ;

catno 30/03/2016 14h41

salut,
je suis "oldscool" : PIC microchip et assembleur, mais je vois un algorithme dans ce goût (à affiner) :

1- acquisition potard + conversion A =>N .
2- générer un signal carré (SC1) de période T inversement proportionnelle au potard ( 8 ms < T < 0.1 ms) .
3- générer SC2, complément de SC1.
4- décompter 58 .. puis forcer à zéro SC1 et SC2 pendant 2T.
5- goto 1

envoyer SC1 et SC2 sur un demi pont en H pour symétriser le signal PMH par rapport à zéro.

pour l'arbre à came, c'est encore plus simple.
............

J-sky, je suppose que t'envoies le signal dans un calculo pour tester / mettre au point ... ?
dans ce cas je ne pense pas que ce soit utile de se rapprocher d'une sinusoide, le calculo remet carré et fait une conversion A=>N.

Tu cherches quelqu'un qui programme Arduino ou bien tu sais faire ?

Je te fais 2 schémas dans l'après midi pour préciser tout ça.

d'autres idées des T-E boys vont peut être arriver ...


.

j-sky 30/03/2016 17h10

Citation:

Envoyé par catno (Message 412645)
salut,
je suis "oldscool" : PIC microchip et assembleur, mais je vois un algorithme dans ce goût (à affiner) :

1- acquisition potard + conversion A =>N .
2- générer un signal carré (SC1) de période T inversement proportionnelle au potard ( 8 ms < T < 0.1 ms) .
3- générer SC2, complément de SC1.
4- décompter 58 .. puis forcer à zéro SC1 et SC2 pendant 2T.
5- goto 1

envoyer SC1 et SC2 sur un demi pont en H pour symétriser le signal PMH par rapport à zéro.

pour l'arbre à came, c'est encore plus simple.
............

J-sky, je suppose que t'envoies le signal dans un calculo pour tester / mettre au point ... ?
dans ce cas je ne pense pas que ce soit utile de se rapprocher d'une sinusoide, le calculo remet carré et fait une conversion A=>N.

Tu cherches quelqu'un qui programme Arduino ou bien tu sais faire ?

Je te fais 2 schémas dans l'après midi pour préciser tout ça.

d'autres idées des T-E boys vont peut être arriver ...


.

Salut

merci pour ta réponse

En effet, comme je le disais, un signal carré de 60-2 dents sera suffisant car le calculo veut juste voir les fronts montant

Je suis débutant en arduino (quelques bases pour faires des trucs simples mais là, je sèche)

CSYSTEME 30/03/2016 17h30

bonjour

un de nos amis a fait un post ,c'est pas un ardunio mais ca marche quand meme

cherche tutto edc15c3 ,notre amis le lapin a fait un simulateur d'arbre a cames +pmh avec reglage vitesse et diferent truc

cordialement

CSYSTEME 30/03/2016 17h35

re

le lapin ,c'est capalti ,son tutto ou il explique la generation ,le plan,le code du pmh et acc

http://www.tlemcen-electronic.com/fo...=tutto+edc15c3

cordialement

j-sky 30/03/2016 17h36

Citation:

Envoyé par CSYSTEME (Message 412694)
bonjour

un de nos amis a fait un post ,c'est pas un ardunio mais ca marche quand meme

cherche tutto edc15c3 ,notre amis le lapin a fait un simulateur d'arbre a cames +pmh avec reglage vitesse et diferent truc

cordialement

Salut
oui, j'avais vu son post mais capalti ne vient plus sur TE
il a développé ça sur un pic
il m'avait expliqué vite fait le principe quand je l'avais rencontré

Moi, j'aimerai le faire sur arduino

jphp 30/03/2016 17h55

@ je vais dire une bétise, tant pis ! tu pourrai enregistré un vrai signal et le reproduire
@

j-sky 30/03/2016 17h57

Citation:

Envoyé par jphp (Message 412710)
@ je vais dire une bétise, tant pis ! tu pourrai enregistré un vrai signal et le reproduire
@



Oui, tu as raison ! C'est une bêtise Lol

jphp 30/03/2016 18h16

tu fait un vaisseau spatial sur Arduino !?

catno 30/03/2016 19h04

moi aussi je suis plutôt PIC , maintenant Arduino c'est mieux

voilà à quoi je pensais.

http://pimg.imagesia.com/fichiers/16...6sji_small.jpg

pont en H

http://www.ebay.com/itm/L9110S-H-bri...-/310541225088

quelques idées et lignes de codes ici ?

http://www.loginfor.fr/Arduino/arduino_02.html

.

jerem22 30/03/2016 20h16

bah la sinusoïde c'est le top quand même, parce que sur du bosch par exemple le traitement du capteur pmH est très complexe.

Faire un carré sinon il n'y a rien de plus facile un peut même le faire en composant analogique avec des compteurs, et encore plus simple avec le arduino.

Quelle qu'un à les signaux pmh et arbre à came synchronisé ? je ne sais pas a qu'elle moment la dent décalé intervient dans le pmh ?

Yannn 31/03/2016 15h36

2 pièce(s) jointe(s)
Salut les amis,

j'avais travaillé sur quelque chose de similaire: simulation du signal tachymètre véhicule sur UCH Mégane.

Après quelques modifications mineures, ci-joint une variante avec cycle 58/60. Il reste encore de l'adaptation à faire pour ton besoin, mais comme il me manque des données, je fourni déjà l'ébauche pour exemple.

Ce petit programme n'a pas été testé...

Il reste:
- ajuster la fréquence des signaux en fonction du régime moteur
- adapter la course du potentiomètre au régime moteur de façon linéaire (fonction "map()")
- adapter le signal de sortie avec l'électronique pour le rendre compatible avec ton calculateur (si besoin ?...)

CSYSTEME 01/04/2016 09h06

bonjour

je vient de trouver un code sur un autre forum ,

si vous voulez le regarder et le decripter ,

/*********************************************
** Générateur signaux PMH **
**********************************************
** Circuit de mise au point pour **
** ODB / REGULATEUR de vitesse **
** **
** DEV : MEGA2560 **
**********************************************
** Pin / por - Signal **
** A0 - PC0 - Motor speed IN (analog) **
** 04 - PG5 - PMH OUT **
** 05 - PE3 - allumage OUT **
*********************************************/

volatile byte Cmpt_dent; // comptage des dents
volatile boolean moteur; // ON/OFF
volatile byte allumage; // postion allumage

void setup() {
TCCR1A = 0x03; // (WGM1 = Fast PWM)
TCCR1B = 0x18; // (WGM1 = Fast PWM CTC), clk = 0
TIMSK1 = 0x02; // INT sur OCR1A
OCR1A = 65530; // valeur de démarrage moteur
TCCR1B += 0x01; // Prescaler = 1/1, Fclk = 16MHz
DDRG |= 0x20;
DDRE &= 0xDF; // PE5 en entrée
DDRE |= 0x08; // PE3 en sortie
PORTE |= 0x20; // pullup sur PE5
DDRF &= 0xFE; // PF0 en entrée
DDRB |= 0x80; // led en sortie
allumage = 36;
}

ISR(TIMER1_COMPA_vect) { // appelée par T1 sur COMPA
if (Cmpt_dent > 38) { // secteur PMH
if (Cmpt_dent == 41) {
PORTG |= 0x20;
}
} else {
if ((Cmpt_dent & 0x01) == 1) { // dent impaire
PORTG |= 0x20;
} else { // dent paire
PORTG &= 0xDF;
}
}
if (Cmpt_dent == allumage) {
PORTE |= 0x08;
} else {
PORTE &= 0xF7;
}
Cmpt_dent++;
if (Cmpt_dent == 44) Cmpt_dent = 0; // 1 demi-tour fini
}


volatile word accelerateur, charge;

void loop() {
accelerateur = analogRead(A0);
// charge = analogGet(1);
Moteur_set_speed(accelerateur, charge);
}
{
long IC_Val;

IC_Val = 1090909 / accel;
// IC_Val = 1090909 / (accel - depression);
// allumage = depression;
OCR1A = IC_Val;

}

cordialement


Fuseau horaire GMT +1. Il est actuellement 00h40.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Version française #23 par l'association vBulletin francophone
Tlemcen-electronic © All right reserved