[Projet] : horloge avec affichage sur matrice led 'home made'

Salut

J'ai déjà réalisé des projets d'horloge sous arduino, avec affichage du temps, de la température et de l'humidité ... des projets personnalisé ... j'envisage cette fois de faire un nouveau projet personnalisé dans le lequel je vais modifier mon projet d'origine ...

1er modification c'est au niveau de la base de temps : je passe du 1307 vers le 3231 ... à priori je gagne au niveau précision ... j’espère !

2eme modification au niveau du capteur de température et d'humidité : je passe du DHT11 vers le Si7021 ... pareil ... à priori un grand gain niveau précision ...

3eme modification c'est au niveau de l'affichage : je passe d'un classique affichage 4 digits multiplexé vers l'utilisation de 4 matrices led ... là c'est un grand changement ... j’espère ne pas avoir de problème

Bon ... le projet est actuellement en phase d'attente de composants ... entre temps je prépare mon horloge personnalisé

les matrices sont serrés ... je pense que ca donnera un meilleur résultat finale ... j’espère ne pas avoir des problèmes dans la phase d'usinage ... j'ai trouver cette vidéo pour la création de matrice led ... je pense que c'est correct

sujet a suivre ... j'essai de vous mettre au courant au fur et à mesure de l'avancement du projet ... et je solliciterais votre aide plus tard niveau programmation ou je pense que je vais avoir des problèmes ...

à suivre ....

niveau conception : mes matrice led sont de dimension non conventionnelle : c'est du 5 x 8 ... est ce que ca pose problèmes plus tard niveau code ... vu que les matrices classique c'est du 8 x 8

Merci

esloch:
niveau conception : mes matrice led sont de dimension non conventionnelle : c'est du 5 x 8 ... est ce que ca pose problèmes plus tard niveau code ... vu que les matrices classique c'est du 8 x 8

Merci

j'ai pas d'avis .. je pense que ca implique que c'est pas correct .. logiquement je suppose que les 3 dernières lignes sont toujours éteins dans mon programme ...

me revoilà

donc j'avance niveau usinage :

et aussi sur arduino, j'ai reçu la DS3231 et le Si7021 .. je commence à faire les changements nécessaire sur mon programme d'origine (qui fonctionne avec un DS1307 et DHT11) ... le passage du DS1307 vers le DS3231 c'est juste un changement au niveau de ... j'essai de voir les modifications pour le passage du DHT11 vers le Si7021 ... c'est à priori plus compliqué ...

1er problème au niveau de la connexion du Si7021

HTU21D ------------- Photon
(-) ------------------- GND
(+) ------------------- 3.3V (VCC)
CL ------------------- D1/SCL
DA ------------------- D0/SDA

mon problème ici c'est au niveau de la connexion SCL et SDA (les pins A4 et A5), je les utilises déjà avec le module DS3231 ... et je ne trouve pas ou les modifier ...

si vous avez une idée

Merci

Bonjour,

Il faut aussi le connecter sur A4 A5 (SDA SCL). C'est le bus I2c, les deux composants seront diffrérenciés par leur adresse I2C.

Attention: Ton Si7021 s'alimente en 3.3V. Il faut impérativement alimenter aussi ton DS3231 en 3.3V sous peine de problème.

IMPEC !

marche sans problème ...

et le Si7021 est vraiment excellent !

il me reste maintenant a changer mes 4 afficheurs multiplexé par des matrice led .. il faut que j'attends l'arrivée des modules par poste ...

donc en attendant une petite question :

actuellement je récupère, par exemple, la valeur de la température dans la variable temp (par exemple : 23.7), et je sépare la valeur de l’unité et des dizaines par cette procédure :
unidadeTemp = temp % 10; (ici je récupère la valeur 3)
dezenaTemp = temp / 10; (ici je récupère la valeur 2)

j'aimerais aussi récupérer la valeur de l'unité après la virgule (la valeur 7)

c'est possible ?

Tu multiplies par 10, tu prends le résultat du modulo 10 --> décimale
tu divises par 10, tu prends le résultat du modulo 10 --> unité
tu divises par 10 --> dizaine

float temp = 12.345;
int result = temp * 10; // 123.45 is truncated to int 123
result = result % 10; // 3

c'est bon là ??
je teste demain .. trop fatigué ce soir

marche impec avec ces commandes (pas très correct ... mais ca marche !)

int temp, temp2, umid, unidadeTemp, dezenaTemp, centmTemp;

temp = sensor.readTemperature();
temp2 = 10 * (sensor.readTemperature());

unidadeTemp = temp % 10;
dezenaTemp = temp / 10;
centmTemp = temp2 % 10;

L'idée est bonne, mais lire 2 fois la température c'est source d'erreur potentielle.
La température peut avoir changé entre la première lecture et la deuxième.

Il aurait mieux valu faire

  temp = 10*sensor.readTemperature();

  dezenaTemp = temp / 100;
  unidadeTemp = (temp/10) % 10;
  centmTemp = temp % 10;

excellent ... Merci

je suis partie sur ce projet sur des matrices led de proportion 5 x 8
je me demande maintenant est ce que c'est la meilleure proportion pour afficher (principalement) des chiffres

je suis un peux perplexe
si vous avez des remarques elles sont le bien venu

je reste sur le 5x8 ... enfin c'est un choix parmi d'autres ...

retour a ce projet d'horloge avec l'arriver des matrices leds ... il s'agit maintenant de remplacer l'affichage de l'horloge

j'essai de suivre quelques tutorial ... si vous avez de bon liens elles sont le bienvenu ... et je reviens a vous vu que je suis sure que je vais avoir des problèmes ...

:smiley:

donc après le branchement de la matrice led, 1er étape c'est la conversion des nombres que je veux afficher en code arduino

je pense qu'il y a un petit soft qui peut aider dans cette conversion ... non ?

tu as cherché un peu... le premier je trouves deja quelques chose..

http://tiptopboards.free.fr/arduino_forum/viewtopic.php?t=6&p=6

ils il y a les chiffres de 0 a 9 et les lettres de A à Z... a toi de reflechir un peu pour °C et %

ils donnent la methode pour le 1 et A...

ils se basent sur un 88.. et toi tu veux du 58... donc soit tu te bases sur le 8*8 et il y a seulement le °C et le %

Soit tu refais tout pour avoir du 5*8...

Merci

mais c'est pas ca que je cherche ... je m'explique :
j'ai déjà conçu les chiffres que je veux afficher (exemple l'image juste au dessus), je veux maintenant convertir ces chiffres en code, je pense qu'il y a un petit soft (une interface de matrice led, ou tu clic sur les leds que tu veux afficher et il te donne le code correspondant) ... mais je ne le trouve plus

et je t'assure j'ai fais une bonne recherche avant de poster ici

Merci quand même

unsigned char table[10][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
};

c'est pas ça?