Pages: [1] 2   Go Down
Author Topic: [RESOLU] branchement module DS1307 RTC sur leonardo  (Read 2021 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour à tous,

après maintes recherches j'ai trouvé qu'il fallait branché le module RTC sur la prise SDA et SCL du leonardo (apparemment reliées au entrées D2 et D3, comme on peut le voir ici : http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf)

mais avec un "setsyncprovider" je n'ai pas de réponse du module RTC...

merci d'avance  
« Last Edit: September 25, 2012, 10:36:01 am by cannard » Logged

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

Salut,

Effectivement sur la Leonardo les broches SDA et SCL sont respectivement sur D2 et D3. Par contre je ne vois pas à quoi correspond ton "setsyncprovider". Quelle bibliothèque utilises-tu ? Au cas où, il existe la bibliothèque RTClib d'Adafruit...

++
« Last Edit: September 23, 2012, 01:21:49 pm by SesechXP » Logged


Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ne pas oublier que pour que l'I2C fonctionne il faut aussi 2 résistances de pull-up, une pour chaque signal SDA et SCL (4K7 c'est pas mal).
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

alors, dans un premier temps voici les parties de codes qui concernent l'heure :

Code:
#include <Time.h>  
#include <Wire.h>  
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t

[...]

void setup() {
  [...]
  // setup RTC clock
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
  [...]
}


j'ai bien sur une boucle loop dans mon code, mais c'est le setup qui bloque au niveau de la fonction "setSyncProvider(RTC.get)"

pour le cablage, sur l'arduino leonardo il y a deux entrées : sda et scl que j'ai reliées directement aux entrées correspondantes sur le module RTC
(celui que j'ai pris est celui-ci, pour ce qui est du cablage et du code j'ai suivi ce tuto)

voilà, pour ce qui est des résistances de pull-up je viens de voir à quoi cela correspond, j'espère que je n'ai pas fait de bêtises à brancher en direct...

edit : je viens de jeter un œil au travail d'adafruit, je vais essayer de charger ce code voir ce que ça donne...
« Last Edit: September 23, 2012, 08:03:32 am by cannard » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

voilà, pour ce qui est des résistances de pull-up je viens de voir à quoi cela correspond, j'espère que je n'ai pas fait de bêtises à brancher en direct...

Pas d’inquiétude, cela empêche juste la liaison de fonctionner. pas de risque.

Il est possible que le fait que la liaison ne fonctionne pas bloque la lecture de la RTC ce qui bloque setSyncProvider()

Tu peux essayer tout d'abord la fonction RTC.get() toute seule dans le loop pour essayer de lire la RTC.
Elle renvoi un entier long (time_t == unsigned long)  qui s'incrémente toute les secondes.
« Last Edit: September 23, 2012, 08:06:41 am by barbudor » Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ouf smiley-roll-sweat, si déjà je n'ai pas tout cramé c'est bien...

donc avant de refaire (potentiellement mal), je dois donc faire un montage de ce type :

avec à la place des entrées analogiques les entrées sda et scl du leonardo

et pour les résistances il faut donc 4KOhm, c'est ça ?
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est cela, sans oublier que le GND du DS1307 doit aussi être relié au GND de l'Arduino : continuité des masses
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ça c'était déjà fait pour la masse, donc tip top

me reste plus qu'à chasser de la résistance de 4KOhm dans mon matériel de récup...

je mettrais des news quand ce sera fait smiley-wink
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

n'importe quoi entre 2K2 et 10K devrait faire l'affaire sur une courte distance
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si en plus ça tolère autant c'est top smiley-grin

par contre il faut deux résistances identiques je suppose ?

edit : 2KOhm ça passe ou c'est vraiment pas assez ?
« Last Edit: September 23, 2012, 12:23:35 pm by cannard » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

même pas,mais reste sur des valeurs proches
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

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

Bonjour,

De mémoire la librairie Wire (enfin la librairie TWI qui est caché derrière Wire) active les résistances de pull-up intégré à l'arduino.
Par contre sur l'ATmega32u4 je sait pas si les pull-up sont disponible en mode I2C ...
Logged

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

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1905
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ta mémoire est bonne, mais des résistances internes de tirage au +5v qui peuvent faire jusqu'à 70kohms -> pour de l'I2C bof.......
il est quand même préférable de prendre les valeurs indiquées par Barbudor.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

une dernière question :

si je branche sur le 3.3V au lieu du 5V, est-ce qu'une résistance comprise entre 1.5KOhm et 6.5KOhm fera l'affaire ?

(nota : 3.3*2.2/5=1.5 et 3.3*10/5=6.5)

au vu de mes faibles connaissances en élec je dirais que oui, mais je ne comprends à vrai dire pas trop à quoi servent ces résistances (imposer une certaine intensité dans le circuit ? ou une certaine tension ?)
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il faut que les résistances tirent vers la même tension qui alimente les 2 composants, soit 5V pour une Arduino standard, et j'espère que ton DS est aussi alimenté en 5V.

Ces résistances de pull-up sont nécessaires car les signaux I2C ne sont bidirectionnels. Les composants se contentent de tirer vers le bas ou de laisser le signal en l'air. Il faut donc une résistance pour rappeler le signal au niveau haut pour signifier niveau haut.
Cela est pour éviter que par suite d'une erreur 1 composant tire le signal en bas et qu'un autre le pousse en haut, résultant en une destruction.

Tu trouves rien dans tes tiroirs ?

Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: [1] 2   Go Up
Jump to: