Posts: 18
Threads: 0
Joined: Dec 2022
Reputation:
0
Bonjour à tous
Effectivement, j'ai des difficultés pour le fonctionnement du DS 1307 avec bus I2C.
Ayant fait confiance aux programmes fournis par le forum (encore merci !) pour les entrées/sorties, l'afficheur OLEP, ça fonctionne !
Mais mes connaissances se sont limitées à l'utilisation sans bien comprendre le programme.
Maintenant, utilisation de la fonction horloge (DS1307) ?
Senapsys (Junior Member) a émis un doute sur le fonctionnement du DS1307 sur sa carte KC868-A6 par un échange de programme avec Admin. Il faudrait changer la carte ! ?
Pour l'instant, ma carte achetée récemment n'est pas en cause ! Mais pour cela, j'aimerais obtenir un programme fiable et simple pour le DS1307.
Les sources fournies par le forum ne fonctionnement pas et ne semblent pas cohérentes pour l'utilisation du DS1307.
Afin de limiter les sources, il faudrait écrire un programme simple de tests en utilisant la notice constructeur du DS1307 et ma carte KC868-A6.
Les fonctions seraient
- initialisation du bus I2C ( #include <pcf8574.h> PCF8574 pcf8574(0x68, 04, 15); par exemple ?) (0x68, adresse du DS1307), (04, SDA), (15, SCL)
- initialisation du DS1307 ( fréquence )
- écriture et lecture d'une mémoire du DS1307 avec affichage sur le moniteur
.....
Au plaisir de vous lire et des échanges !
A bientôt
Djoii
Posts: 6,351
Threads: 811
Joined: Oct 2020
Reputation:
157
do you have wrote own arduino code for KC868-A6 DS1307? work well now?
Posts: 18
Threads: 0
Joined: Dec 2022
Reputation:
0
Bonjour,
pas encore écrit ce programme, je ne maitrise pas la programmation du DS1307. !
J'apprends avec le programme PCF8574 pour l'I2C puis notice constructeur pour le D1307
A bientôt
Djoii
Posts: 18
Threads: 0
Joined: Dec 2022
Reputation:
0
Bonjour à tous,
Le programme suivant fonctionne :
// programme d'essai de la carte HC868-A6 (Djoii)
// commande successive des relais P0 à P5
// affichage OLED du N° du relais commandé
#include <Arduino.h>
#include <Wire.h>
#include <pcf8574.h>
#include <U8g2lib.h>
PCF8574 pcf8574_R(0x24, 04, 15); // interface relais
// PCF8574 pcf8574_I(0x22, 04, 15); // interface entrées (non utilisée)
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, 15, 4, U8X8_PIN_NONE);//SCL IO15 SDA IO4
uint8_t relais = 0;
void page1() {
u8g2.setFont(u8g2_font_timR12_tf);// Font 12
u8g2.setFontPosTop();
u8g2.setCursor(8,0);
u8g2.print("HC868-A6");
u8g2.setCursor(4,20);
u8g2.print("Initialisation OK ");
u8g2.setCursor(4,40);
u8g2.print("le 10 janvier 2023");
u8g2.drawBox(1,60,5,5); // affichage d'un carré
}
void page2() {
u8g2.setCursor(8,0);
u8g2.print(" COMMANDE "); // TITRE
u8g2.setCursor(10,25);
u8g2.print("du relais N° " + String(relais,DEC)); // relais
}
void setup() {
Serial.begin(9600);
pcf8574_R.begin();
pcf8574_R.pinMode (P0, OUTPUT);
pcf8574_R.pinMode (P1, OUTPUT);
pcf8574_R.pinMode (P2, OUTPUT);
pcf8574_R.pinMode (P3, OUTPUT);
pcf8574_R.pinMode (P4, OUTPUT);
pcf8574_R.pinMode (P5, OUTPUT);
pcf8574_R.begin();
for(int i=0;i<6;i++)
{
pcf8574_R.digitalWrite(i,HIGH);
}
delay(50);
u8g2.setI2CAddress(0x3C*2);
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.firstPage();
do { page1(); }while(u8g2.nextPage());
}
void loop() {
for(int i=0;i<6;i++)
{
delay(1000);
pcf8574_R.begin();
pcf8574_R.digitalWrite(i,LOW);
delay(200);
pcf8574_R.digitalWrite(i,HIGH);
relais = i;
u8g2.firstPage();
do { page2(); }while(u8g2.nextPage());
delay(10);
}
}
Les critiques sont les bien-venues !
A suivre
Djoii