Pages: [1] 2 3   Go Down
Author Topic: utiliser un atmega sans arduino  (Read 4307 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salut a tous
voila pour mon projet j'ai besoin de beaucoup de I/O en PWM ( + de 100 )
le soucis c'est que je me voit pas acheter 50 arduino pour avoir le bon nombre d'I/O donc je me suis dit que je pourrez utilisé un arduino pour programmer les atmega et ensuite mettre l'atmega directement sur un autre circuit ( 4€ l'atmega donc plus rentables que un arduino a chaque fois )
le seul soucis c'est je me demandez si toute les I/O de l'atmega été utilisable en pwm et que mettre comme protection pour pas le cramé
sinon avez vous une solution d'une carte qui aurez beaucoup d'I/O ?
merci
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'atmega 328 gère de base 6 sorties PWM, mais il existe des scriptes pour convertir des sorties standards en sorties PWM

Cela dit, si tu as besoin de toutes ces sorties sur un meme circuit, le TLC5940 devrait t'interesser. Il permet de piloter 16 sorties PWM, mais tu peux en rajouter plusieurs a la suite. Donc, 7 circuits a la queue leu leu te donnent 112 sorties, avec seulement 5 pins de la carte utilisés.
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

interessant ca ^^
7 circuit avec 5 pin utilisé ? faut que tu mexplique la ^^
il ce pilote comment ? enfin comment je peux faire pour piloter des servo directement ?
une idée d'un bout de code ?
et au passage
pense tu que l'arduino arrivera a faire fonctionner 112 servo en meme temps ?
au niveau de l'alim je sais que non mais ca c'est déja fait avec de bon vieux régul mais sinon j'ai peur qu'il pedale un peu nan ?

encore un ptit truc ^^
c'est tu ou je peux en trouvé en france ??
avec les support bien sur
merci
« Last Edit: November 01, 2010, 05:45:05 pm by anthology » Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

48 servos maximum pour la Mega :

http://www.arduino.cc/playground/Code/MegaServo

c'est déjà pas trop mal  :smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le TLC5940 est "chainable", c'est a dire que plusieurs peuvent se brancher en parallèle, et fonctionnent comme un énorme circuit intégré modulable ( comme les registes à décallage type cd4094).

Il se pilote via une librairie:
http://www.arduino.cc/playground/Learning/TLC5940
Il gere aussi les servos (il y a un script d'exemple dans la lib)
Pour plus d'infos:
http://code.google.com/p/tlc5940arduino/
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1218174457

Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci a toi erlik
je pense que je vais opté pour ca
il ce chaine comment ?
un adressage je présume ^^
mais toujours la grande question
ou en trouvé ??
le seul fournisseur que j'avais n'en a plus donc ca va va etre dur
et il me faudrait les support avec ^^
merci
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour le cablage et l'adressage des données, tout est indiqué dans le playground et les sketchs de la librairie
http://www.arduino.cc/playground/Learning/TLC5940
Et encore un dessin si ça ne suffit pas
http://students.washington.edu/acleone/codes/tlc5940arduino/img/tlc5940arduino_wiring.png
Mais manque bien sur les éléments a piloter (leds, servos, autre)

Coté boutiques, y a de quoi faire sur le net (attention aux frais de ports,  et de douane hors UE)
http://www.sparkfun.com/commerce/product_info.php?products_id=10136
http://fr.farnell.com/texas-instruments/tlc5940ntg4/driver-de-led-16-voies-cms-dip/dp/1226306
http://www.earthshineelectronics.com/62-tlc5940-16-channel-led-driver.html
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci a toi
sparkfun n'en a plus
farnell c'est du CMS et j'en veut pas ^^
ensuite le dernier ne m'inspire pas du tout confiance ^^
sinon oui c'est pour piloter des servo ^^
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j'ai enfin réussi a en trouvé ^^
il sont commandé en attente de les recevoir ^^
encore deux petites questions ^^
dans la libraires je trouve pas comment savoir a quel tlc envoyé les données enfin piloté le servo
genre si j'en mets 5 comment je fais pour envoyé le signal pwm au 5 eme servo du 3 eme tlc ?
vu qu'il ne sont pas programmé je voit pas comment je peux savoir au quel envoyé ^^
une idée ? un début de code ??
ensuite j'ai besoin de autant de sortie que d'entrées
donc j'ai environ 80 sortie mais il m'en faut autant en entrée !!
multiplexing me semble mais quoi utilisé pour faire ca
un nom de composants ? une idée de la librairies ?
merci beaucoup
« Last Edit: November 04, 2010, 04:50:44 pm by anthology » Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour les sorties, il y en a 16 par circuits. Sur le 1er circuit, elles correspondent aux channels 0 à 15. Su tu en rajoutes un, les nouvelles sont numerotés 16 à 31, etc etc. Quand tu modifies la valeur d'un channel, la lib tente de répercuter cela au TLC5940 correspondant.
Donc, tes sorties vont de 0 à [16*Nbr TLC5940 - 1]
Dans la librairie, tu as un code d'exemple avec les servos ( et comment connecter la sortie à l'entre data du servo )
Code:
#define SERVO_CHANNEL   0
int angle = 25;
    tlc_setServo(SERVO_CHANNEL, angle);
    Tlc.update();
Ou SERVO_CHANNEL correspond à la sortie 0 (1er circuit)
Si tu avais mis "SERVO_CHANNEL  35", il aurait tenté de mettre à jour le channel 35, cad sortie 4 du 3ème circuit
0->15 = circuit 1
16->31 = circuit 2
32->47 = circuit 3
etc

Il n'y a donc rien a définir, juste ne pas se planter dans les branchements et les n° de channel. A noter qu'il n'y a pas d'erreur si tu tentes de mettre a jour la valeur d'un channel qui n'existe pas

Mais comme dit avant, regarde bien les exemples, abondamment commentés,  dans la librairie, ça te donnera toutes tes réponses.
« Last Edit: November 05, 2010, 10:15:50 am by erlik » Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci a toi c'est pile ca que je voulais savoir ^^
ca me donne réponse a toute mes questions sauf une mais bon ^^
donc en gros quand je les chaines il comprends ca comme une extension sur le même tlc et non comme un autre tlc donc si je veut la 4 eme sortie du 3 eme tlc  ca me donne le 36 ( 16+16+4 )
normalement j'ai bien capté ^^
je commence le code mais il me faudrait une infos ^^
comment avoir autant de sortie que d'entrée ?
les TLC ne sont valable que en sortie donc il me faut du multiplexing je pense
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
donc en gros quand je les chaines il comprends ca comme une extension sur le même tlc et non comme un autre tlc donc si je veut la 4 eme sortie du 3 eme tlc  ca me donne le 36 ( 16+16+4 )
Oui, c'est ça. Mais attention, la numérotation commence de 0, donc fait attention dans les branchements

Quote
comment avoir autant de sortie que d'entrée ?
les TLC ne sont valable que en sortie donc il me faut du multiplexing je pense
Tu veux une 100ènes d'entrées ?... Ça dépendra surtout du signal entrant à lire.
Si c'est des changement d'états, tu peux tenter le PCF8575, un composant I²C qui peut gerer 16 entrées/sorties (interrupteurs), mais on ne peut en utiliser "que" 8 ( 128 entrées quand même ) sur un même bus I²C, at il n'existe qu'en SMD.
Sinon, il y a le PCF8574, du meme type que le précédant, mais gérant 8 I/O, et existant en boitier DIP. Et là, il existe en 2 "type": le PCF8574, et le PCF8574a. Ils sont strictement identique coté codage et présentation, mais leur header i2c est legerement différent. Donc, on peut en utiliser 8 de chaque par bus, soit 16 au total  ( 128 entrées totales aussi )
« Last Edit: November 05, 2010, 02:09:53 pm by erlik » Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ouep tkt je vais faire gaffe sur les numérotations ^^
ca seré des signal d'un potar ^^
en gros j'utilise le principe de la position dun potar pour faire bougé un servo en consequence
donc potar de 10Kohms
j'ai déja le code et tout
il marche pour l'arduino en lui meme donc sans extension
aprés j'aten de recevoir les tlc pour pouvoir testé avec beaucoup plus de servo mais il me faut des entrées en plus ^^
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dans ce cas, je dirais:
- des registres de décallage type CD4094 (même principe de montage "en chaine" que le TLC5940 ), de manière a être sur de la sortie sélectionnée
- tes potars
- une entrée analogique

Tu relies chaque sortie des registres à un potar et toutes leurs sorties curseurs à l'entrée analogique choisie. Quand tu sélectionnes la sortie d'un des registres ( et une seule a chaque fois), elle alimente le potar et sa sortie curseur te donne la valeur analogique.

Mais ça devient une vrai usine a gaz ... Tu veux faire quoi avec tous ces servos ?...
« Last Edit: November 05, 2010, 02:22:53 pm by erlik » Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 334
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hum non il faut que tout soit alimenté en meme temps
il faut que je recupere la sortie analogique de chaque potar en quasi temps réelle
je ne sais pas a l'avance quel potar va etre utilisé
donc voila mon soucis ^^
niveau multiplexing ca peut le faire me semble ^^
Logged

Pages: [1] 2 3   Go Up
Jump to: