Pages: [1]   Go Down
Author Topic: le bus Rs485 dans la revue elektor  (Read 2254 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Depuis plusieurs mois la revue elektor publie une serie d'articles sur la creation d'un bus domotique sur RS485.
les premieres platines de test arrivent a base d'atmega88 et ecrit en BASCOM. j'aimerais bien faire ça sur arduino. quelqu'un a-t-il deja transfomre le code source bascom en arduino ? un idee pour faire un shield de test ?

Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Ben il existe Bascom-avr, à priori compatible avec tous les avr.
Je n'ai jamais expérimenté bascom, par contre le rs485 est un bus trés interessant.

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

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

whouaou il m'a pris de vitessssssseee ! Zoroastre

c'est là : http://www.lextronic.fr/P317-compilateur-bascom-avr.html

@+
chabot380
Logged

ORDINAUSORE 2Ghz AMD64 QUI S'ALLUME EN 48 SECONDES AVEC UBUNTU 12.04
ARDUINO UNO / Shield Ethernet / RTC DS1307
Programmation Python et j'apprends le C
Technicien Télé Vidéo à la retraite.

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

ben oui j'avais deja trouve ça, mais je n'ai pas envie d'utiliser cela, c'est payant !!
je veux convertir leurs sources (gratuites, distribuables) en version arduino !
le rs485 me branche vraiment bien !
Logged

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

Bonjour,

Convertir des sources du basic vers arduino ne demande pas trop de temps si on connait le langage basic.
Après il faut voir si tes sources utilisent des fonctions spécial là par contre ça peu devenir beaucoup plus compliqué.

Un exemple simple:
Code:
En basic :
For j=1 to 50
Print "bonjour"
Next

En c/c++ arduino :
for(int j=1; j <= 50; j++)
Serial.print("bonjour");
Logged

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

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Juste en quelques lignes, quel potentiel / intérêt voyez-vous dans le bus RS485?
Ca va peut être me donner des idées  smiley
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Pour te dire Ojal, je n'ai pas entrevue toutes les possibilités du bus rs485. Pour ma part, comme je l'ai signifié auparavant, je l'utilise pour piloter des cartes relais 8 canaux. J'en possède deux actuellement, adressables, ce qui me propose 16 relais pilotables par commandes sériels.
Je pense que pour peu que tu possèdes de sérieuses compétences en éléctronique, il doit être tout à fait faisable d'interfacer aussi bien avec des sondes qu'avec des modules de puissances.

Je remets le lien pour info : http://www.sigma-shop.com/product/47/rs485-8-channel-relay-controller-12vdc-rs485-bus-id-01-relays-1-8.html

L'énorme avantage du rs485 se situe principalement dans sa facilité de mise en oeuvre et la longueur de câble accéptable (environ 100 mètres, 1 km dans des cas spécifiques).

Tout est dit dans wikipedia : http://fr.wikipedia.org/wiki/EIA-485

@+

Zoroastre.
« Last Edit: May 29, 2011, 11:09:41 am by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Offline Offline
Full Member
***
Karma: 0
Posts: 217
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je n'utilise pas beaucoup de bus... J'ai pour l'instant utilisé un bus que j'ai trouvé très satisfaisant le OneWire
http://fr.wikipedia.org/wiki/1-Wire
C'était pour des capteurs de température et j'ai lu que les distances pouvaient être de plus de 100m, 300m de mémoire....

Je vais regarder ce RS485  smiley
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Effectivement le one-wire est trés satisfaisant également, mais celui ci supporte plutôt des sondes d'acquisitions. Je n'ai pas trop cherché mais je n'ai pas vu de système one-wire pilotant un moteur, relais ou autre. Quoique cela doit être possible également...
Pour conclure, j'utilise le one-wire en acquisition et le rs485 pour piloter mes 16 relais smiley-wink

Pour revenir au sujet, si bascom n'est pas libre, il n'a aucun interêt (je précise que je suis un dévian debianiste acharné), tout du moins si tu ne maitrises pas le langage (facile à priori). Il vaut mieux apprendre le c++, le python, le java, le perl, pour citer les plus à la mode  smiley-grin
D'ailleurs, le choix du c/c++ pour une plateforme est indéniablement le meilleur.

@+

Zoroastre.
« Last Edit: May 29, 2011, 12:50:31 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

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

pour ceux qui connaissent bascom , je cherche l'equivalent de ce code en C

ca concerne une interruption sur le port serie, mais je ne vois pas comment faire ça avec l'arduino :

Code:
On Urxc Onrxcomplete
Enable Urxc
Enable Interrupts

...

Onrxcomplete:                                               ' Interrupt: all incoming bytes

   B = Udr                                                  ' get value of this byte

   If B = 170 Then                                          ' Startbyte
      I = 1                                                 ' first position in ElektorMessageProtocol

   Else
      Incr I                                                ' next Position
...
Logged

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

Les interruptions série sont gérées par la librairie Serial qui lit les caractères reçus et les place dans un buffer de réception.
Tu pourrais émuler un fonctionnement proche de cette routine en utilisant Serial.available() dans loop() ou dans une portion de ton code qui est parcourue assez régulièrement.

Code:
void loop(void(){
   if Serial.available(){
       b=Serial.Read();         // ou Serial.peek() si tu ne veux pas dépiler le caractère de la file de réception
       if (b==170){
            i=1;
       }else{
           i++;
       }
   }
   ......
}
Logged

Pages: [1]   Go Up
Jump to: