Projet horloge 2 fuseaux horaires

Gerard68:
Bonjour,
N'étant pas un spécialiste Arduino, je ne pourrai pas m'avancer.
Je crois que les alims des matrices sont bien à part. Elles consomment beaucoup.

Avec ce genre de matrices : https://www.ebay.fr/itm/50-pieces-Matrice-de-points-MODULE-AFFICHAGE-LED-3mm-8x8-anode-commune-Rouge/263647511092?hash=item3d629dc234:g:ipUAAOxyjP1RzokV:rk:23:pf:0 on ne voit pas le MAX

Pas de souci pour l'instant j'ai cablé uniquement 5 matrices, je vais commander une alimentation externe.
5v 4A ? Que me conseillez vous ?

Merci

68tjs:
Désolé mais ce n'est pas compréhensible.
Je devine du fritzing et le fritzing de base est incompréhensible pour moi.

Perso, et je ne suis pas le seul, je ne comprends que le schéma électrique, les œuvres d'art avec des belles photos ne me disent rien.
Fritzing part du schéma de câblage pour arriver au schéma électrique. C'est véritablement marcher sur la tête, personne ne travaille dans ce sens.
Néanmoins puisque tu as déjà une réalisation fritzing regarde dans les menus comment obtenir le schéma électrique qui est le seul schéma sur lequel on peut travailler.

Désolé je débute je ne sais pas comment faire.

Pour calculer la consommation, multiplie le nombre de leds par 0.06 ça te donnera une borne haute de l'amperage

lesept:
Pour calculer la consommation, multiplie le nombre de leds par 0.06 ça te donnera une borne haute de l'amperage

avec mes 10 afficheurs cela ferai 640 leds, le calcul me donne 38.4 si c'est en ampère c'est un peu beaucoup non ? :slight_smile:

j'ai avancé dans mon projet j'arrive à afficher l'heure sur 5 matrices, par contre depuis ce matin j'ai l'heure qui "tremble" ça vous est déjà arrivé ? je vais essayer de joindre une video et mon code.

Tremblement

C'est bien des ampères et ce n'est pas étonnant compte tenu du nombre de leds. C'est une conso maximale avec toutes les leds blanches au max de luminosité.

J'ai supposé des leds type WS2812 mais si ce n'est pas ça, le calcul est faux... Si ce sont des leds simples comme sur l'image ci dessous, il faut plutôt prendre 20 mA par led...

lesept:
C'est bien des ampères et ce n'est pas étonnant compte tenu du nombre de leds. C'est une conso maximale avec toutes les leds blanches au max de luminosité.

J'ai supposé des leds type WS2812 mais si ce n'est pas ça, le calcul est faux... Si ce sont des leds simples comme sur l'image ci dessous, il faut plutôt prendre 20 mA par led...

ok je vais regarde dans la datasheet de l'afficheur, j'ai vu un autre projet avec 10 afficheurs et cette personne utilisait une alim de 5v/3a . cela me donne déjà une idée.

dans le post précedent je viens de rajouter une vidéo des tremblements cela vous est déjà arrivé ?

Ah pour les MAX7219 on trouve des consommations de l'ordre de 400 mA par matrice de 64 leds. Donc 4 A pour 10 matrices.

Je n'ai allais du ce genre de tremblement, ça pourrait être dû à un faux contact.

FullThrottle:
j'ai avancé dans mon projet j'arrive à afficher l'heure sur 5 matrices, par contre depuis ce matin j'ai l'heure qui "tremble" ça vous est déjà arrivé ? je vais essayer de joindre une video et mon code.

Bonjour,

Je n'ai jamais vu ça, c'est vraiment très bizarre. Montre ton code.

Désolé je débute je ne sais pas comment faire.

Soit comme je te l'ai écrit chercher dans les menu de Fritzing pour obtenir le schéma électrique à partir du schéma de câblage.
Fritzing sait le faire.

Soit l'ancienne : papier stylo et règle.
Seul modernisme : scanner ou prendre une photo de la feuille de papier.

La première solution sera la plus rapide, la seconde la plus formatrice.

Salut à tous et merci pour vos réponses,
je n'ai plus de tremblement je pense que cela viens d'une alimentation trop faible. N'ayant pas encore commander une alimentation 5v/4a pour alimenter tout le projet. J'ai enlever une matrice (pour en utiliser seulement 4 afin de continuer le développement code).

je vais essayer de vous joindre le code, pour l'instant l'heure s'affiche (même si elle déborde un peu sur 4 matrices mais ce n'est pas très grave car il y en aura plus à la fin), je viens de cabler 2 boutons afin de régler la luminosité des max72xx. cela fonctionne parfaitement.

prochaine étape et la je bloque un peu, je souhaiterai ajouter 3 boutons (set, -, +) afin de régler l'heure manuellement ça serait pas mal de faire clignoter les heures après avoir appuyé sur set par exemple.

pouvez vous m'aider pour cette partie? :S

merci d'avance

//Library
#include <RTClib.h>
#include <Wire.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <Font_Data.h>

// MAX7219 setup :
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

// Brightness setup
const int brightnessDown = 2;
const int brightnessUp = 3;
const int maxBrightness = 15;
int Brightness = maxBrightness;
int interval=1;

// MD_Parola Setup
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
char Time[8];          // Actual Time (hh:mm:ss)

// RTC setup :
RTC_DS3231 RTC; // Establish clock object
DateTime Clock; // Holds current clock time
byte hourval, minuteval, secondval;

void setup() {

  Serial.begin(9600);
  Wire.begin();  // Begin I2C
  RTC.begin();   // Begin clock
  P.begin();     // Begin Max7219
  P.setIntensity(0);

   //Brightness
  pinMode(brightnessDown, INPUT);
  pinMode(brightnessUp, INPUT);
  
}

void loop() {

  Clock = RTC.now(); // get the RTC time
  secondval = Clock.second();  // get seconds
  minuteval = Clock.minute();  // get minutes
  hourval = Clock.hour();      // get hours

// RTC values for the MAX7219 Matrix :
  DateTime now = RTC.now();

// Messages displayed ont the MAX7219 Matrix :
  sprintf(Time, "%2d%c%02d%c%02d", now.hour(), ':', now.minute(), ':', now.second());
  
  P.setFont(0, numeric7Se);
  P.displayText(Time, PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
  P.displayAnimate();

//Brightness
if (digitalRead(brightnessDown) == HIGH && Brightness > 0)
{Brightness = Brightness - interval;}

if (digitalRead(brightnessUp) == HIGH && Brightness < maxBrightness)
{Brightness = Brightness + interval;}

delay(100);

P.setIntensity(Brightness);
}

Bonsoir à tous, voici le code avec plusieurs essais de création de menu pour régler la luminosité et plus tard le réglage de l'heure, cela ne fonctionne pas :confused: pourriez vous jeter un oeil ?

merci

//Librairy
#include <RTClib.h>
#include <Wire.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <Font_Data.h>

// MAX7219 setup :
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

// Menu setup
const int buttonLess = 2;
const int buttonPlus = 3;
const int setMenu = 4;
const int maxBrightness = 15;
int Brightness = maxBrightness;
int interval = 1;

// MD_Parola Setup
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
char Time[8];          // Actual Time (hh:mm:ss)
char menu1[8];

// RTC setup :
RTC_DS3231 RTC; // Establish clock object
DateTime Clock; // Holds current clock time
byte hourval, minuteval, secondval;

void DisplayDateTime()
{
  // We show the current time
  Clock = RTC.now(); // get the RTC time
  secondval = Clock.second();  // get seconds
  minuteval = Clock.minute();  // get minutes
  hourval = Clock.hour();      // get hours

  // RTC values for the MAX7219 Matrix :
  DateTime now = RTC.now();

  // Messages displayed ont the MAX7219 Matrix :
  //sprintf(Time, "%2d%c%02d%c%02d", now.hour(), ':', now.minute(), ':', now.second());
  sprintf(Time, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
 
  P.setFont(0, numeric7Se);
  P.displayText(Time, PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
  P.displayAnimate();
}
void DisplaySetBrightness()
{
  sprintf(menu1, "Bright");
 
  P.setFont(0, numeric7Se);
  P.displayText(menu1, PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
  P.displayAnimate();
  
  if (digitalRead(buttonLess) == HIGH && Brightness > 0)
  {Brightness = Brightness - interval;}

  if (digitalRead(buttonPlus) == HIGH && Brightness < maxBrightness)
  {Brightness = Brightness + interval;}

  P.setIntensity(Brightness);
}

void DisplaySetRtc()
{
  // We show the current time
  Clock = RTC.now(); // get the RTC time
  secondval = Clock.second();  // get seconds
  minuteval = Clock.minute();  // get minutes
  hourval = Clock.hour();      // get hours

  // RTC values for the MAX7219 Matrix :
  DateTime now = RTC.now();

  // Messages displayed ont the MAX7219 Matrix :
  sprintf(Time, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());

  P.setFont(0, numeric7Se);
  P.displayText(Time, PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
  P.setIntensity(0);
  delay(500);
  P.setIntensity(4);
  delay(500);
  P.displayAnimate();
}

void setup() {

  Serial.begin(9600);
  Wire.begin();  // Begin I2C
  RTC.begin();   // Begin clock
  P.begin();     // Begin Max7219
  P.setIntensity(0); // Intensité de l'écran minimum au démarrage

   //Brightness
  pinMode(buttonLess, INPUT);
  pinMode(buttonPlus, INPUT);
  pinMode(setMenu, INPUT);
  
}

void loop()
{ 
  byte menu = 0;
  // check if you press the SET button and increase the menu index
  if (digitalRead(setMenu) == HIGH)
  {
    delay(30);
    if (digitalRead(setMenu) == HIGH)
      {
      menu = menu + interval;
      }
  }
switch (menu)
{
    case 0:
    DisplayDateTime();
    break;

    case 1:
    DisplaySetBrightness();
    break;

    case 2:
    DisplaySetRtc();
    break;

    case 3:
    menu = 0;
    break;
}
  /*//in wich subroutine should we go ?
  if (menu == 0)
  {
    DisplayDateTime(); // void DisplayDateTime
  }
 
  if (menu == 1)
  {
     DisplaySetRtc();
  }
 
  if (menu == 2)
  {
     DisplaySetBrightness();
  }

  if (menu == 3)
  {
    menu=0;
  }
  //delay(100);*/
  
}

Après lecture rapide, je dirais, au début de la loop:

  static byte menu = 0;

Peux-tu préciser ce qui ne va pas ?

lesept:
Après lecture rapide, je dirais, au début de la loop:

  static byte menu = 0;

Peux-tu préciser ce qui ne va pas ?

Merci d'avoir jeter un œil,

voici le problème après juste un clic sur "setMenu" :https://youtu.be/40-emYsGjVQ