La PWM : Qu’est-ce que c’est ? (1)
Application aux diodes électroluminescentes
. Par : Dominique, Guillaume, Jean-Luc
Vous répondez à :
On peut faire plus simple (ok je sais, que c’est aussi pédagogique d’utiliser les fonctions…) :
int lum,ajout ;
void setup()
lum=0 ;
ajout=1 ;
void loop()
analogWrite(2, lum) ;
lum=lum+ajout ;
if (lum==255) delay(200) ;ajout=-1 ;
if (lum==0) delay(200) ;ajout=1 ;
delay(1) ;
Cordialement
13 Messages
-
La PWM : qu’est-ce ? (1) 14 mars 2015 12:28, par Jean-Claude (papybricolo)
Ouffff c’est ardu, mais je me coucherai moins bête….
-
La PWM en alimentation traction avec Arduino 1er janvier 2016 18:29, par Sergio11
Bonsoir et bonne année à tous
Dans le cadre des alimentations PWM je serais intéressé par une alimentation traction "moderne" à asservissement de vitesse par exemple gérée par un Arduino.
Je n’ai rien trouvé sur la toile, mais j’ai peut-être mal cherché.
Ce pourrait être l’objet d’un nouveau sujet qui intéresserait d’autres modélistes
Merci pour vos réponses-
Bonsoir et meilleurs vœux pour 2016.
À vrai dire un tel projet est dans les cartons. Un 2e article traitant de la PWM appliquée aux moteurs est en cours de rédaction. Concernant l’asservissement de vitesse, une carte à été conçue et je suis en train de développer le logiciel. En fait cette carte va au delà d’une alimentation à asservissement de vitesse, elle est destinée à piloter un canton et à collaborer avec ses semblables via un réseau CAN mais rien n’empêche de l’utiliser seule. Deux sujets sur le forum existent : http://forum.locoduino.org/index.php?topic=36.0 et http://forum.locoduino.org/index.php?topic=74.0 . Le prototype de programme de cette alimentation avec asservissement de vitesse est ici : https://git.framasoft.org/Koryphon/AlimentationTraction/tree/master
-
-
Utilisation des pins A0-A15 25 mars 2016 09:57, par Akis
Bonjour
J’ai besoin de commander 30 servos.
Normalement ils doivent être branchés sur des pins PWM, sur l’Arduino Mega ils y en 15, mais n’est-il pas possible d’utiliser les pins A0 à A15 en sortie PWM ? ce qui au total me permettrait d’utiliser mes 30 servos avec un seul Arduino.
D’avance merci pour la réponseAkis
-
Bonjour,
Non, il n’est pas nécessaire de connecter les servos aux broches PWM. La bibliothèque utilise les broches numériques normales et le Mega peut piloter 48 servos. La limite vient du multiplexage de la génération des impulsions par les interruptions des timers.
Mais, j’imagine que vous voulez commander 30 servos pour des aiguillages. Votre réseau est donc plutôt grand. Par conséquent, utiliser un unique Mega nécessitera des fils assez longs entre le Mega et les servos, certains atteignant 2m et peut être plus. Je vous garantie que vos servos vont frétiller car, sur le signal de commande, très peu de courant circule et la tension ne sera pas stable. Les parasites seront interprétés comme des consignes de position et entraîneront dès mouvements erratiques. Un camarade a expérimenté le problème : le fait de mettre une nourrice sous tension engendrait des mouvements des aiguilles.
Il faut donc employer plusieurs Arduino afin de garder des câbles courts, moins de 1m entre un Arduino et les servos qu’il commande. Les Arduino sont reliés par un bus conçu pour être robuste aux parasites.
-
-
La PWM : qu’est-ce ? (1) 25 mars 2016 13:27, par Dominique
Le Mega dispose de 15 pattes, et pas plus, capables de produire du PWM parce qu’elles sont associées à un registre :
Arduino Pin Register
2 OCR3B
3 OCR3C
4 OCR4C
5 OCR3A
6 OCR4A
7 OCR4B
8 OCR4C
9 OCR2B
10 OCR2A
11 OCR1A
12 OCR1B
13 OCR0A
44 OCR5C
45 OCR5B
46 OCR5APour augmenter le nombre de sorties PWM commandées par un même Mega, il faut recourir à une ou plusieurs cartes d’extension dont on va vous trouver des exemples,
-
Merci à Jean-Luc et Dominique pour ces réponses rapides et précises.
Je vais donc plutôt m’orienter vers plusieurs UNO à la place d’un MEGA car effectivement par endroit j’avoisine les 2m de distance en plaçant le MEGA au centre.
Je vais chercher les infos sur le bus de liaison entre plusieurs UNO.
-
-
La PWM : qu’est-ce ? (1) 27 octobre 2016 19:01, par nicozea
On peut faire plus simple (ok je sais, que c’est aussi pédagogique d’utiliser les fonctions…) :
int lum,ajout ;
void setup()
lum=0 ;
ajout=1 ;
void loop()
analogWrite(2, lum) ;
lum=lum+ajout ;
if (lum==255) delay(200) ;ajout=-1 ;
if (lum==0) delay(200) ;ajout=1 ;
delay(1) ;
Cordialement
-
La PWM : qu’est-ce ? (1) 28 octobre 2016 09:43, par Dominique
C’est justement l’exemple simple du début de l’article, mais ce programme ne fait QUE ça !
Pour commander plusieurs objets (feux, servos, etc..) en même temps et en toute indépendance, il faut abandonner "delay()" au profit de "millis()", ce que font les bibliothèques pour nous simplifier la vie.-
Désolé, je n’avais pas compris la différence… Maintenant, j’ai compris… Mais comme je débute sur Arduino, je m’étais étonné de la complexité de votre programme… pas si compliqué en fait !!
Merci en tout cas, pour toutes les richesses de ce site !
Je pense utiliser Arduino pour gérer mes cantons et ma gare cachée, donc j’ai du pain sur la planche…
-
-
-
La PWM : qu’est-ce ? (1) 31 janvier 2017 16:31, par mery
bonjour j’ai besoin vos aides si vous voulez je cherche d’ecrire un programme arduino uno on utilise le PWM ce programme est comme suit alumer une lampe pas a pas contre l alumage on et off sa vous dire qu’il faut jouer sur le rapport alpha et merci
-
Bonjour,
Traduite en français, votre demande pourrait ne pas concerner le modélisme ferroviaire. Merci de préciser.
Dominique -
La PWM : qu’est-ce ? (1) 2 février 2017 18:14, par Dominique
Avec un peu de chance ce que vous cherchez se trouve à la fin de cet article :
où on décrit le fading du feux rouge du passage à niveau.
Vous pouvez vous en inspirer ;)
-