Pages: [1]   Go Down
Author Topic: pas de PWM sur sortie 3/11 arduino uno  (Read 623 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Bonjour,

 j'ai fait un prog simple : avance des deux moteurs, avec commande analogique 160.
J'ai fait des essais sur différentes broches (3,6,5,9,10,11)

Le PWM ne fonctionne pas sur les broches 3 et 11, systématiquement. Sur toutes les autres oui, et simultanément.

Que se passe t il  ?
Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Le PWM de ces broches est contrôlé par le Timer 2.
Est-ce que tu n'utiliserais pas ce timer pour un autre usage dans ton sketch?
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ah, c'est un indice. Je n'ai pas inclu la bibliothèque Timer2 ds mon programme, peut être est ce dû à cela ?

Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ah, c'est un indice. Je n'ai pas inclu la bibliothèque Timer2 ds mon programme, peut être est ce dû à cela ?
Non mais certaines librairies comme MSTimer2 utilisent ce timer et rendent de fait le PWM sur les broches 3 et 11 indisponible.
La fonction tone() elle aussi interfère avec le PWM sur ces broches.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

#include <IRremote.h>

Voici la seule bibliothèque appelée dans mon programme, pour la télécommande.



Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

#include <IRremote.h>

Voici la seule bibliothèque appelée dans mon programme, pour la télécommande.




D'après sa doc elle utilise le timer2 pour générer le signal PWM émis.
Tu peux lui faire utiliser le timer1 si tu veux en modifiant IRremoteInt.h:
Code:
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  //#define IR_USE_TIMER1   // tx = pin 9
  #define IR_USE_TIMER2     // tx = pin 3
#endif
« Last Edit: September 12, 2012, 07:24:19 am by patg_ » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour vos réponses, vraiment très efficace. smiley
Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 0
Posts: 273
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour vos réponses, vraiment très efficace. smiley

De rien. Comme j'avais pas grand chose à faire au boulot aujourd'hui ça m'a occupé un peu  smiley-mr-green
Logged


Pages: [1]   Go Up
Jump to: