[résolu] analogwrite ne fonctionne pas sur certaines pin a cause de virtualwire

Bonjour,

J'ai un petit problème avec mon arduino pro mini (5v 16Mtz)

j'essaye d'écrire avec analogwritte sur 4 broches et bizarrement, il n'y a que la 3 5 6 et 11 qui répondent :s

Sur le site d'arduino, on voit que normalement, la 9 et 10 devraient fonctionner aussi dans ce mode
"PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function."

Quelqu'un a une idée du problème ?? Merci :slight_smile:

PS :

J'utilise virtualwire... qui utilise par défaut la pin 11, j'ai fait le test en le mettant sur la 3, mais rien de plus concluant

Après avoir commenté le code de virtualwire... il semble que ce soit bien cette librairie qui me bloque les pins 9 et 10 en analogique...
Y a t'il une solution ? j'ai absolument besoin de 4 ports analogiques libres et fonctionnels :frowning:

Bonjour,

La librairie virtualWire utilise le Timer1 de l'ATmega328, c'est ce même timer qui controle la PWM sur les broches 9 et 10.
Ce n'est pas possible d'utiliser ces deux broches en PWM avec virtualWire.

Même question déjà posé sur l'ancien forum : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1250266581

Ok :s

Merci de ton aide

:slight_smile:

Je ne pense pas que ça fonctionnera, mais,

je ne peux pas utiliser la 9 et 10 non plus à la place de la 11 pour le récepteur radio ?

vohu:
Je ne pense pas que ça fonctionnera, mais,

je ne peux pas utiliser la 9 et 10 non plus à la place de la 11 pour le récepteur radio ?

Humm j'ai jamais testé ... tente le coup mais je pense pas que cela va fonctionné ...

Bon, ben, je ne sais pas comment ça se fait, mais CA MARCHE...
Avec la librairie ,

Donc pour ceux qui utilisent virtualwire, il est utile de toujours lier cette librairie à la broche 9 !
vw_set_rx_pin(9);

Cela libère la pin 11, permet d'économiser un port analogique. il reste donc la 3, 5, 6, 11 d'utilisable :slight_smile:
La 10 étant toujours bloquée par le timer.

Par contre, je n'ai pas fait le test avec vw_set_rx_pin(10);

Salut,

J'ai lu un peu ce post, vieux certes mais intéressant.
Pour ma part je n'arrive même pas à compiler le code.

L'IDE bloque dès que j'essaye de déclarer la librairies VirtualWire :

#include <VirtualWire.h>

D'ou peut venir le problème ?

La librairie est seulement présente dans le dossier du sketch. Y-a-t-il autre chose à faire pour bien l'installer ?

Merci

Malokoxis:

#include <VirtualWire.h>

<> veulent dire que la librairie est placée dans le chemin de recherche par défaut donc, entre autres, c'est habituellement sketchbook/libraries.
Si en plus tu avais mis le message d'erreur généré par le compilateur on autait pu aller plus loin.

Cela fonctionne aussi comme tu l'a fait, c'est seulement moins universel car si tu utilises cette bibliothèque dans plusieurs projets il faudra la copier dans chaque répertoire des projets qui l'utilisent.

Sauf que la syntaxe change selon l'emplacement:
#include <xxxxxx.h> -->dit au compilateur de chercher le fichier dans le répertoire dédié aux bibliothèques

#include "zzzzzzz.h" --> dit au compilateur de chercher le fichier dans le même répertoire que le projet

fdufnews:
Si en plus tu avais mis le message d'erreur généré par le compilateur on aurait pu aller plus loin.

+1
J'ajoute que cela indique que tu n'as pas lu le message de Bienvenue sur le forum qui donne tous les conseils pour obtenir une aide efficace.

Merci à vous deux, je ne connaissais pas cette subtilité.

Effectivement le problème venait de là.

J'ai d'autres problèmes avec l'utilisation de cette librairie mais j'ouvre un autre topic pour une meilleure lisibilité : VirtualWire : difficulté de mise en oeuvre - Français - Arduino Forum