Pages: [1] 2   Go Down
Author Topic: Connexions (pins) PWM et RX, TX  (Read 1070 times)
0 Members and 1 Guest are viewing this topic.
Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour.

En regardant les pins de l'Arduino, je me rends compte qu'il y a 3 choses que je connais pas.
Premièrement les sorties digitales marquées PWM ont quel différence avec les autres ?
Je sais ce qu'est le PWN (signal carré avec longueur variable), mais pourquoi seulement certaines broches l'accepte ?

Ensuite je ne vois pas comment utiliser/l'utilité des Pins RX et TX, c'est quoi ?


Merci d'avance.
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3605
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour les PWM je vais peut-être dire une connerie, le PWM utilise les timer du µC, donc il faut que le dit timer soit relié au timer et tu auras aussi des contraintes vis à vis de la gestion séparée des pins (sur chacun des pins tu peux définir un PWM indépendant).

Pour les RX et TX ce sont les connexions série du µC. En gros tu as :

USB <==> FTDI <==> Atmega


Le FTDI (ou at-bidule sur la UNO) va émuler un port RS-232 (qui utilise du +/-12V) sur ton PC. L'Atmega lui utilise du série TTL (qui utilise du 0-5V et polarité inversée au RS-232). Le FTDI fait donc l'interface PC/Atmega, et les pin RX-TX sont deux piquages entre le FTDI et l'ATMEGA.

Si tu ne te sers pas de la liaison série avec le PC sur une UNO, tu peux par exemple communiquer avec une autre UNO.
Logged


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

Bonjour,

En regardant les pins de l'Arduino, je me rends compte qu'il y a 3 choses que je connais pas.
Premièrement les sorties digitales marquées PWM ont quel différence avec les autres ?
Je sais ce qu'est le PWN (signal carré avec longueur variable), mais pourquoi seulement certaines broches l'accepte ?
C'est lié au hardware, comme le précise B@tto il ya un timer derrière chaque broche PWM (enfin 1 timer pour deux broches PWM pour être précis).
-> 3 timers = 6 broches PWM, le fabricant (ATMEL) à choisi les broches en question de manière arbitraire.

Ensuite je ne vois pas comment utiliser/l'utilité des Pins RX et TX, c'est quoi ?
- upload du code (le port série usb et Rx/Tx sont relié en interne)
- communication avec l'ordinateur
- communication en série avec divers modules si besoin (gps, lcd, ...)
Logged

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

Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok pour le RX TX, je vais pas y toucher pour le moment alors.  smiley-lol
Quote
Pour les PWM je vais peut-être dire une connerie, le PWM utilise les timer du µC
Donc il utilise pas le quartz présent sur la carte ?

Quote
il faut que le dit timer soit relié au timer
Pas bien compris la...
Pourquoi avoir plusieurs timers séparés ? Un seul (quartz) ne suffirait pas ? Après c'est généré par la puce, non ?
Logged

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

Donc il utilise pas le quartz présent sur la carte ?
Si, tout utilise la source d'horloge (le quartz) dans un microcontrôleur.

Pourquoi avoir plusieurs timers séparés ? Un seul (quartz) ne suffirait pas ? Après c'est généré par la puce, non ?
Timer = interruption(s) à un intervalle de temps précis -> applications gérant le temps de manière précise

Quartz = source du signal d'horloge, il ne faut pas tout mélanger.
Le quartz génère un signal qui cadence :
- le cpu, à chaque "tick" une action est effectué,
- les périphériques hardware (timers, port série, convertisseur analogique, ...)
Logged

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

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3605
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
il faut que le dit timer soit relié au timer
Pas bien compris la...
Erreur ^^' je voulais dire "il faut que le timer soit relié au pin". Et encore la bien sur c'est un raccourci que je prends, mais dans le principe c'est ça
Logged


Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Timer = interruption(s) à un intervalle de temps précis -> applications gérant le temps de manière précise
Donc les timer sont des parties de code de bas niveau incorporé au firmware qui gère les I/O si je suis bien l'explication.
Logged

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

Donc les timer sont des parties de code de bas niveau incorporé au firmware qui gère les I/O si je suis bien l'explication.
Les timers sont des composants hardware, qui permettent via des interruptions d'appeler des morceaux de code dits "d'interruptions".
Pour mieux comprendre : http://www.atmel.com/Images/doc8161.pdf à partir de la page 94
Logged

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

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3605
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En gros c'est des compteurs logiques (hardware)
Logged


Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok je vois en gros le principe. Pour le PDF c'est franchement trop complexe pour moi...

Et donc il est impossible de générer un PWM sur les sorties non notée PWM ?
Par exemple en mettant une sortie non PWM à HIGH pendant 2ms, puis LOW pendant 18ms avec une boucle ça irait pas ?
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3605
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si si, mais l'avantage du pwm c'est qu'il n'est pas interféré par le reste du code (dès que tu as une pause ça va perturber ton timing). D'ailleurs il y a une lib : http://code.google.com/p/rogue-code/wiki/SoftPWMLibraryDocumentation
Logged


Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du coup question bête, mais comment avoir plusieurs codes qui s'exécute en même temps ?
Genre avoir des tâches en parallèle de la principale ?
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu peux utiliser les timers justement, pour éviter que ton programme ne reste "bloqué" que sur une action pendant un delay(). C'est pas réellement du multitaches mais ça s'en approche.
La base c'est cet exemple: http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
Après j'ai vu qu'il y avait des choses à faire avec les timers et les librairies qui vont bien, mais je me suis pas encore penché dessus suffisamment, je peux pas t'en dire plus pour le moment.
Logged

Vallée de Joux (Suisse)
Offline Offline
Jr. Member
**
Karma: 1
Posts: 55
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mais ce signal PWM ne peut pas être défini en fréquence, c'est noté ici :
http://arduino.cc/en/Reference/AnalogWrite

Quote
The frequency of the PWM signal is approximately 490 Hz.

Donc comment par exemple avoir un PWM de 20ms de long (50Hz donc) pour un servomoteur ?
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3605
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu peux modifier la frequence du PWM mais il y aura des effets de bord, c'est à dire que par exemple les delay ne seront plus exact : http://www.pobot.org/Modifier-la-frequence-d-un-PWM.html
Logged


Pages: [1] 2   Go Up
Jump to: