Pages: [1]   Go Down
Author Topic: Projet - Deux entrées PWM, une sortie asservie  (Read 581 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai eu l'occasion de passé il y a quelques temps pour régler un souci sur un composant. C'est bon tout tourne. Maintenant, je me suis ouvert sur un tout nouveau projet.

Je dispose d'un récepteur de radio commande qui me fourni un certains nombres de voies en PWM. Le but du jeu serais d'avoir une voie prioritaire sur l'autre à partie de deux des voies du récepteur.
Code:
Voie 1 Récepteur --------> 2 numérique Arduino
Voie 2 Récepteur --------> 3 numérique Arduino

Arduino sortie numérique 4 -------> Servo

La sortie 1 du récepteur à une consigne de direction par exemple et la voie 2 est un réglage de course. Si pendant qu'on fait le réglage, il faut intervenir sur la direction, cette dernière prendrais donc le pas sur le réglage. Une fois le réglage fini, on reprends le fonctionnement normal avec le réglage. Je ne sait pas si c'est très clair ce que je dit  smiley-roll-sweat

J'ai cru comprendre qu'un pulseIn() pouvais m'aider. Par contre je ne sait pas si ça peut déclencher une interruption et surtout s'il y a un moyen de faire mieux...

Je m'en remet donc à votre expérience  smiley
Logged

Chulak
Offline Offline
Full Member
***
Karma: 2
Posts: 234
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Je ne sait pas si c'est très clair ce que je dit 
Moi perso j'ai pas bien compris.

mais j'essai de comprendre. :
 - tu a un réglage par défaut?
 - les deux vois de réception te change le réglage?
 - une fois modifier le réglage il reprend le programme, avec le réglage modifier?
Logged

Aimez la Vie, mais preferez la Mort, car seulement celle-ci vous liberera des tenebres de la Vie.

Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mais j'essai de comprendre. :
 - tu a un réglage par défaut?
 - les deux vois de réception te change le réglage?
 - une fois modifier le réglage il reprend le programme, avec le réglage modifier?

En fait la voie 1 devrais directement piloter le servo, sans réglage initialement. J'aimerais lui adjoindre un réglage fin. Donc si je change le potentiomètre, une fois le réglage fini, il est à prendre en compte.

Dans le même esprit pervert de la chose, pour la même configuration récepteur / arduino / servo, on pourrait avoir deux commande sur un seul servo. Alors la commande 1 est toujours prioritaire sur la commande 2.

En fait j'ai ces deux cas à gérer mais pas en même temps. Ce sera soit l'un, soit l'autre, en fonction d'une roue codeuse par exemple.
Logged

Chulak
Offline Offline
Full Member
***
Karma: 2
Posts: 234
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mdr.. c'est de moins en moins clair pour moi .. lol ..

le potar que tu veux mettre .. sa sera sur l'arduino ?
genre broche A1 = reception; A2 = potar d'affinement;

Logged

Aimez la Vie, mais preferez la Mort, car seulement celle-ci vous liberera des tenebres de la Vie.

Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non !

Potar -> radio puis Récepteur -> arduino -> sero
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3737
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A mon avis te tracasse pas trop, à moins que ça soit un PWM "lent", il y a assez peu de chance pour que l'écart temporel soit visible. Sinon si tu y tiens tu peux toujours utiliser les interruptions
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lent ?
Non !

Les créneaux fournis par un récepteur vont de 1 ms à 2 ms.

C'est plutôt rapide !
Logged

Chulak
Offline Offline
Full Member
***
Karma: 2
Posts: 234
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salut, je reviens sur l'histoire du potar ... le réglage tu potar ce fais avant la reception .. donc sur la télécommande?
Logged

Aimez la Vie, mais preferez la Mort, car seulement celle-ci vous liberera des tenebres de la Vie.

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3737
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lent ?
Non !

Les créneaux fournis par un récepteur vont de 1 ms à 2 ms.

C'est plutôt rapide !

D'où le "à moins que ce soit un PWM lent", donc "il y a assez peu de chance pour que l'écart temporel soit visible". Après si tu veux éliminer carrement le problème, tu peux essayer de lisser le signal et au moins tu peux lire les deux en même temps et faire ta popote ensuite.
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wai, en effet  smiley-confuse

Donc, peut-être ai-je l’intérêt de travaillé en fréquence. Il sera plus facile de voir le changement puis d'appliquer celui -ci en fonction des consignes.

AN1 = Commande maître
AN2 = Commande de consigne
AN3 = Servo

Programme théorique (en pseudo code):
- Lire fréquence AN1 -> placé dans Var Master
- Lire fréquence AN2 -> placé dans Var Consigne
- Si Consigne = 1.5ms, AN3 = fréquence Master
- Sinon, si AN2 < 1.5ms : AN3 = AN1 - AN2, ou si AN2 > 1.5ms AN3 = AN1 + AN2
-Attente 10µs
-Boucler

Bon, je pense que c'est pas vraiment le bon calcul mais c'est l'idée et le principe que je voulais étudier. Je suppose qu'au lieu d'un + ou d'un - del'autre fréquence, je peux faire un tableau et pour chaque fréquence je détermine ce que l'on peut ou non ajouter et retrancher. Le signe étant dépendant de la position de part et d'autre du 1.5ms.

Dans le même esprit, cette fois pour multiplier le nombre de sorties tout ou rien disponible.

AN1 = Consigne impulsionnel (Bouton On/Off momentanée sur On)
AN2 = Consigne variable (Potar)

AN3 à AN 4 = Sorties tout ou rien 0/5V

Programme théorique (en pseudo code):
- Lire fréquence AN1 -> placé dans Var impulse
- Lire fréquence AN2 -> placé dans Var sortie
- Si impulse <= 1,2ms ou >= 1.8ms (là, il faut faire attention certains boutons momentanés sont inversé, j'adapterais le programme avec l'une ou l'autre des valeurs)
- Si la fréquence = 1ms et que la sortie AN3 = 0, placer AN3 à 1, sinon si AN3 = 1, placer AN3 à 0
- Si la fréquence = 1.5ms et que la sortie AN2 = 0, placer AN2 à 1, sinon si AN2 = 1, placer AN2 à 0
- Si la fréquence = 2ms et que la sortie AN4 = 0, placer AN4 à 1, sinon si AN4 = 1, placer AN4 à 0
- Attente 1µs
- Boucler

Là, encore, en fonction d'une consigne qui est un inter 3 positions ou bien, d'un potentiomètre, en fonction de la seconde consigne (ON) et des sorties efectives, on place en complément la sortie.

Après, dire qu'on a forcément besoin de l'interruption, je pense que je peux m'en passé mais ça aurais, dans les deux cas été plus logique vue que c'est fait pour ce genre de cas  smiley-mr-green
Logged

Pages: [1]   Go Up
Jump to: