Pages: [1]   Go Down
Author Topic: Pas assez de sorties PWM sur mon arduino Uno Comment faire?  (Read 906 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je me lance aujourd'hui dans un projet relativement simple (je suis débutant).
Je possède un arduino Uno. Sur cet arduino, je souhaite brancher:
- un potentiomètre
- Deux écrans analogique provenant de deux vieux multimètres (comme celui-ci: http://electricite.bricovideo.com/multimetre/multimetre_metrix_15a_b.jpg)
J'ai testé les écrans avec une simple pile 1.5V et les aiguilles bouges correctement (niveau max rapidement)
- 13 Leds 3mm blanches 3.2V 20mA + résistance 90 Ohms (pour le 5V vers 3.2V)

Mon souhait:
Les deux écrans analogiques / aiguilles doivent bouger de manière aléatoire. (Pas de soucis pour le code)
Lorsque je tourne le potar, la luminosité des 13 leds varie (potar au min -> leds éteintes / potar au max -> led allumées au max). De plus l'amplitude des aiguilles doit aussi varier suivant la position du potar (pas de soucis pour le code non plus).

Le montage:
Pour le potar, je pense le brancher à l'entrée A0 de l'arduino. Pour récupérer la valeur pas de problème, j'ai déjà fait.
Pour les deux écrans, je vais les brancher respectivement aux sorties PWM 6 et 5 pour jouer avec l'amplitude des aiguilles. (J’ai testé et ca marche bien, j'ai du rajouter une résistance sur chacun des écrans afin de bien calibrer l'amplitude sinon dés que je mets seulement 10 sur la sortie PWM, l'aiguille été déjà à fond)

Le problème:
Mon problème vient des leds. Comme indiqué plus haut, j'ai 12/13 leds à placer. Je pensais les brancher également sur des sorties pwm (pour jouer sur la variation), or dans mon cas, il ne m'en reste plus que 4 sortie PWM disponibles (3,9,10,11).
Du coup je ne vois pas trop comment me tirer de cette affaire.

Auriez-vous une idée? Simple si possible. Comme indiqué, je suis un débutant.

Merci beaucoup pour votre aide  smiley
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut SumoRobot tu peux utiliser un registre à décalage du genre 74HC595 avec cette librairie:http://www.elcojacobs.com/shiftpwm/

Tu peu mettre plusieurs registre à la suite chaque registre compte 8 sortie et il ne te faut que trois pin sur l'arduino.

Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

SAlut pouic13,

Merci pour ton aide. Effectivement j'avais pensé à un registre de décalage surtout que j'en ai un dans ma boite (74HCT595N) Dommage il m'en faudrait 2 du coup.
Je ne savais pas s'il était possible d'utiliser le "mode" PWM avec un registre de décalage. Mais si tu me le propose, je suppose que oui?

Merci
Logged


Offline Offline
Sr. Member
****
Karma: 2
Posts: 259
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un registre à décalage ne fait pas de PWM...

Utilise plutôt un TLC5940 (16 sorties PWM), il y a une librairie sur le playground et est très simple d'utilisation.
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je ne savais pas s'il était possible d'utiliser le "mode" PWM avec un registre de décalage. Mais si tu me le propose, je suppose que oui?
Il n'y a pas de "mode PWM" sur un registre à décalage.
C'est juste la librairie ShiftPWM qui fait basculer les broches au bon timing très rapidement.
Regarde du côté du TLC5940 (contrôleur de led en PWM, 16 voies).
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3019
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Lorsque je tourne le potar, la luminosité des 13 leds varie (potar au min -> leds éteintes / potar au max -> led allumées au max).
De ce que je comprends, la luminosité de toutes les LEDs varie en même temps.
Pourquoi donc se torturer avec des registres à décalage ou autres complications,  une seule sortie PWM devrait suffire pour commander les 13 LEDs avec un petit transistor qui fournirait le courant nécessaire.
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je pense que je vais me diriger vers cette solution d'adafruit: http://mchobby.be/wiki/index.php?title=AdaFruit_PWM_Driver

Qui permet de contrôler facilement 16 sorties PWM. Ça sera plus facile pour moi.
Par contre est-ce que ça va tenir concernant la puissance (si je n'utilise pas l'alimentation externe du shield mais uniquement la connexion +5V de l'arduino)? Je vais avoir 13 leds donc 13*20mA = 260mA
Il me semble que la sortie +5 de l'arduino tient les 500mA si je ne m'abuse?

Autre question: Je brancherais chacune des leds de cette facon: - de la led au gnd et + de la led au pwm mais dois-je toujours intercaler ma résistance 90 Ohms entre le shield et l'arduino? En effet, je cite: "AdaFruit à cependant penser à sécurisé les sorties PWM, en effet une résistance de 220 Ohms est montée en série sur chaque sortie :-)"

Merci pour votre aide en tous les cas.  smiley-red
Logged


France
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Pour ceux que ça intéresse, j'ai choisi la solution Adafruit 16-Channel 12-bit PWM / Servo Driver.

J'ai fait un mini tutorial, en application sur ma "création"  smiley

Sur mon blog: http://darylrobotproject.wordpress.com/2013/04/03/adafruit-16-channel-12-bit-pwm-servo-driver/

@++
Logged


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

Sinon y'a la lib SoftPWM tout simplement : https://code.google.com/p/rogue-code/wiki/SoftPWMLibraryDocumentation
Logged


Pages: [1]   Go Up
Jump to: