Brushless ppm vers pwm

L’espace pour parler de tout ce qui concerne l’électronique embarquée
Avatar de l’utilisateur
papy94
Messages : 653
Inscription : 23 janv. 2010 14:31
Localisation : Champigny sur marne
Contact :

Re: Brushless ppm vers pwm

Message par papy94 »

salut a tous

Gbdf1, jettes un œil sur mon site, ,il y a un ou deux bouts de code, peut être cela t’éclairera un peu dans le codage, je n'y connais pas grand chose en écriture de code,mais le Web aide énormément

si on peu t'aider, ce sera avec plaisir
Gbdf1
Messages : 9
Inscription : 11 mai 2013 10:13

Re: Brushless ppm vers pwm

Message par Gbdf1 »

Salut,

Alors vous en pensez quoi du code?

Comment peut on savoir la valeur du zéro du brushless ( la position du neutre) il a mis 1500 comme valeur mes dans ma doc du variateur il n'en parle pas.
Est ce que la seule solution c'est de tester différentes valeurs en réel?

À+
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Brushless ppm vers pwm

Message par Geeks »

Bonjour;

Bon, je voie que tu à commencer à réelement programmer. Tu va donc, je pense y arrivé sna strop de problèmes.

Alors pour répondre à cec:
int outPinPPM = 11; // PPM output pin #11 (sortie prochainement attachée au moteur).
Ok :Up:
int throttlePulse = 1500; // Valeur de la largeur des impulsions, 1500 = 0%
Non :evil:
C'est cette valeur qui évolura entre 1 et 2 ms (milliseconde) vue que c'est cette largeur d'impulsion qui va donner et le sens de rotation et la puisance électrique fourni au moteur. Si tu utilise un variateur du commerce fait pour les bateaux RC.
int pulseDelay = 300; // Délais entre chaque impulsion (cette valeur varie-t-elle selon les moteurs/ESC ?)
Perdu :evil:
Le délai entre chque impulsion est de 20ms en général. On peut descendre à 5ms mais là t'a une synchro avec la radio. Je pense que tu devrais déjà essayé à 20ms et ponter progressivement pour trouver le bon délai. Ici c'est "20".
int pulseMin = 700; // Largeur d’impulsion minimale, 700 = -100%
Perdu :evil:
Perdu ici ça devrais être 1 ms. ici c'est "10".
int pulseMax = 2300; // Largeur d'impulsion maximale, 2300 = +100%
Perdu :evil:
Ca devrais être 2 ms ici c'est "20".

Pour mémoire les millisecondes s'emploie ainsi delay(20); //Donnera un délai, une attente de 20ms

Ensuite, je n'ai pas regardé, je te laisse rectifé ce qui dois.
Possède tu un oscilloscope ? Si oui, je te propose de prendre le programme de base nommé "Blink". Tu y verra clignoter la LED de la carte. Si tu change les deux delay() pour 20ms tu verra que c'est différent de delay(1500). A 1500 tu va atendre très longtemps... Trop longtemps et tu de dira surement que "ça ne fonctionne pas bien". Donc faire gaffe à tout ça :Up:
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Avatar de l’utilisateur
gagouze
Messages : 1961
Inscription : 24 janv. 2010 22:39
Localisation : Brest (29)

Re: Brushless ppm vers pwm

Message par gagouze »

Le code est très bien commenté j'arrive à comprendre ce que fait le programme.

Le compliment d'un programmeur professionnel
Etienne
Un Galathée
Un voilier caboteur en construction : Le Narval
Un classe Alfa en construction.
Répondre