Project Start : Mai 2018
Last issue : 05/04/2020

Versions 4 digits :

Version 4 digits HH MM avec separateur leds 1 sec 02 sept 2018
Derniere Mise à jour programme version 4 digits 04 nov 2018

Versions 6 digits :
Realisation version Circulaire , 6 digits HH MM SS et affichage temp. 23/05/2019
Realisation version Rectangulaire . 07/10/2018
MAJ Software (06/07/2019)


Annexes :


Prototype Projet Horloge 6 digits 18F26K22 avec module RTC DS1307
Version avec nouvelle RTC DS3231 + ULN2804 +UDN2981
Cicuit Imprimé PIC +DS3231+ULN+UDN et Montage rev 01/07/2018

Test ULN2804
Tests divers
Usage de TeraTerm
Liaison BlueTooth via HC06 à "BlueElectronic" ou "BT Simplex" terminal
Difference HC05 et HC06

Application "Appinventor 2" pour horloge 60 leds (05/11/2018)
Liaison Bluetooth avec appli android "BlueTerm" ou "BT_Simplex " *en option


Dernieres mises à jour software:

HEX pour version 6 digits (06/07/2019)
HEX pour version 4 digits

Autres Versions :
Horloge 8 matrices de 8x8 leds et MAX7219 (modèle connectique Verticale)
Horloge Anneau 60 leds RGB et 4 matrices Max7219 (connectique Horizontale) .. Avril 2019



Projet Horloge 4 ou 6 digits , 60 leds (secondes)
avec PIC 18F26K22 et RTC DS1307

usage d'un PIC18F26K22 en DIP28 et du Pickit2 Microchip pour charger l'executable
Environnemen t: MikroC Pro 7.1.0

Programme de base :

Utilisation d'un PIC18F26K22 assze costaud.. 28 PIN DIP etroit
Utilisation de l'oscillateur interne FOSC=16MHz
La precision de l'horloge , ici, ne depend que du module RTC DS1307, equipé de son quartz horloger.
L'entrée RC0 est utilisée pour une 1ere mise à l'heure par défaut ( Module RTC Neuf ou remplacement de la pile CR2032
Le PIC assume la gestion de la RTC , recuperation Date te Heure,

Possibilite de remise à l'heure du module RTC, via la liaison UART (cable USB ou BlueTooth )
via la commande : U;10;05;18;04;18;21#
la commande est verifiée par le 1er et dernier caractere et le Nombre de caractere. Le ";" sert de separateur de champ.
suivant le format : U;jour;mois;annee;Jour semaine:heure;minute;#
L'exemple ci dessus correspond donc au : 10 Mai 2018 , Jeudi, 18H21

Gestion du multiplexage des 6 digits 7 segments HH MM SS
PORTB pour allumer les 7 segments
PORTA pilotage des 6 afficheurs vi un interface transistor.
Nota: Afficheur 7 segment ANODE COMMUNE
Le timer2 , calé sur 4mS, assure le raffraichissement des 6 afficheurs en 4x6=24mS
La tache interne de l'interruption prend 25 à 30µS ..

La reception UART est gérée aussi en mode interruption, pour derouter le programme
sur une demande de modification Date et Heure de la RTC
La RTC gere toute seule la date et Heure, donc pas d'interference avec les taches du PIC.
Dans l'interruption Timer2, toutes les 4 mS, on verifie si on atteint Zero secondes pour generer une pulse de sortie de 400mS
qui remettra à Zero les 60 leds .

La RTC delivre un signal de 1Hz ..sera utilisé pour l'avancement des 60 leds. (carte sequenceur 8 x CD4015)
Une sortie est prevue pour activer un module Melodie , pendant quelques secondes à chaque Heure, sur une plage donnée.
Affichage possible ,en alternance ,de la temperature ambiante .

Le prototype :

images/t_Proto1_Horloge_PIC18F.gif


Pinout




Schema :

images/t_Horloge_18F26K22_180617_wh5.gif images/t_ULN_2083_Low_Side_Drive_Cathode_com_Dip18.gif images/t_UDN_2981_High_Side_Drive_Anode_com_Dip18.gif
..avec Winschem version 8.0 driver 7 segments ULN2804 driver 6 afficheurs Anode commune UDN2981



Circuit Imprimé Rev_180511:

images/t_Circuit_Imprime_18F26K22_UDN_ULN_180511_revu.gif
(C) réalisation par Geamel Marco (Majid)

* modif hardware du circuit RESET PIC (27/01/2019)




Test avec VPP reliée ou pas
(deconnecté R=10MOhms ; connectéeR=1K)

images/t_CI_Horloge_Simul_Reset_PIC_190126.gif images/t_Modif_Circuit_Reset_PIC_190127.gif
test avec CM60 simulateur mise en place de la diode 1N4118



SOFTWARE 6 digits , (ancienne) version 1 :
//test avec 2 Afficheurs secondes Cathode commune
Project "Horloge_18F26K22_60leds.mcppi"
Source: Horloge_18F26K22_60leds_180501.c
voir dernieres versions

Video :
Horlog_18F26K22_Hz_RAZ.webm



 

Version avec UNIQUEMENT RTC DS3231
18/05/2018
Modif Hardware :
La Sortie ALARME pilote un module M958 chargé de jouer une melodie sonore.
Un ULN2803 est rajouté pour transformer les pulses 1HZ et RAZ en niveau 12V ,
avec la platine 8xCD4015v alimentée en 12V .

Le module RTC 3231



ATTENTION :

PROBLEME avec ce module RPC DS3231 et PILE CR2032 si alim 5V
mesure de la pile 3.43V =neuve ( et mesure avec presence 5V -> 3,67V = En surcharge)
circuit de charge : +5V -> diode -> 200 ohms -> batterie
5.0 -0.6 -3.3 = 1,1V / 200 => 5mA ! permanent et tension NON limitée
surcharge ..apres un certain temps ... la pile peut exploser.
voir:
https://forum.arduino.cc/index.php?topic=278270.0
il faut plutot mettre à la place, une pile LIR2032 ( tension max chargée 4,1 à 4,2V)
De plus j'alimenterai l'ensemble en 4,7V maxi au lieu de 5V
(sachant que le tout fonctionne encore correctement à moins de 3V)
4.7-4.1-0.6 = > pres de 0V / 200 ohms => quasiment pas de courant



Test ULN2804

images/t_Test_ULN2084_12V_schem_180520.gif

Verification comportement ULN 2804 ( par rapport à un ULN2803 specific entree TTL)

images/t_Test_ULN2084_12V_Hardware_180520.gif images/t_Test_ULN2084_12V_oscillo_R300_180520.gif
Montage de test 1Hz sur input pin8, sortie pin 11 signal aux bornes de R=300


Attention, si le signal d'entree passe en dessous de 3.5V d'amplitude => aleas de fonctionnement !
en cas de commande directe MCU -> ULN
mais il est prevu d'utiliser un ULN2804 pour amplifier le signal 1Hz et RAZ =>le niveau passe alors à environ 8V avec pull up de 4,7K
L'alim du PIC sera comprise entre 4,5V et 4,8V ..donc NO PROBLEMO.

Consommation sur le +12V en fonction du choix de R en serie avec les 3 leds de chaque segment d'afficheur
R=300 => 0,58Amps pour les 6 afficheurs ( sans le point Dp)
R=220 => 0.73 Amps
R=150 => 1.02 Amps

video : Test_ULN2804_180520.webm

La partie commande 60 leds , les 2 ampli transistors ne sont plus necessaires ( car remplacés par 2 sorties ULN2804)

La tempo de la boucle principale est reduite de 1000 à 500mS , pour etre certain de comparer la bonne "seconde" en cours , dans l'interrupt 4mS.
Du fait que la RTC ne rafraichit le registre seconde ...que toutes les secondes ...
L'interrupt 4ms ne sert plus qu'àu rafraichisement des 7 segments des 6 afficheurs Leds.
et à elaborer la fenetre temporelle du RAZ (60 leds) entre la seconde 59 + 400mS et la Seconde 00 +400mS
de sorte à bien visualiser la 59em led et la 1ere Led
donc suppression Correcteur Minute
Rajout d'une commande pour definir la plage Horaire de la melodie jouée à Chaque HEURE (et 00 Mn)
Commande Gamme Validation Melodie

SOFTWARE :
19/05/2018
Projet mikroC Zipé : Horloge_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_180515.zip
Source: Horloge_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_180515.c
chargeur : Horloge_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds.hex
voir dernieres versions 2019!


Test precision Horloge RTC
avec HEURE Officielle
Ayant gardé la sortie UART .. je peux visualiser Date et Heure de la RTC chaque 0,5 secondes sur le terminal , et à coté le Temps de Time Is

dim 20 mai 2018
Synchro Horloge RTC 3231 avec Horloge Internet TIME IS
at 20H33MN00S à 1 sec pres
U;20;05;18;00;20;33#

Lundi 21/05/2018
TIME IS = 20:00/02
21-05-18 20:00:02 Melodie OFF

mardi 22/05/2018
TIME IS = 20:10:00
22-05-18 20:10:00 Melodie OFF
Derive NULLE apres 48H

Nota: apres 20H30 , mon PC et tout le montage Horloge est hors tension, seule la RTC continue ,
alimentée via sa pile , jusqu'au lendemain vers 9H00.





Circuit Imprimé partie PIC et ULD-UDN seulement :

14/06/2018 .. rev 09/2019

images/t_Horloge_PF_PIC18F26K22_190914_all_Lay6.gif images/t_CI_Horlog_180701.gif
etude (C) Geamel réalisation (Geamel) rev 01/07/2018

* modif circuit reset 27/01/2019
fichier Sprintlayout : Horloge_PF_PIC18F26K22_190914.lay6


Montage

Modif positionnement regulateur 5V/ 3,3V
Modif connection LM35DZ (3 fils) au lieu de LM335 (2 fils)

images/t_Modif_Version_LM35DZ _0_100deg_C.gif


1er TEST (sans ULN,ni UDN):
17/06/2018
Test uniquement du programme, laision UART, Heure et Dialogue RTC, info 1Hz et RAZ

images/t_Montage_Horloge_CI_18F_60Leds_Test1_180616.gif images/t_Capture_Teraterm_180619.gif




Test avec ULN2804 ,UDN2981 et 1 afficheur Double (Secondes)

19/06/2018
rappel Pinout ULN et UDN

images/t_Horloge_IC_18F_60Leds_Test2_180619.gif
1er essai avec 1 seul afficheur double

Test realisé avec seulement 2 afficheurs 7 seg..

Alimentation 12V pour les afficheurs ,
L'ULN2804 allume les 7 segments , de tous les (6) afficheurs
L'UDN2981 alimente l'anode d' 1 seul afficheur parmi les 6 afficheurs
Rafraichissement 4mS par afficheur, soit 24mS pour les 6.

Modification de la table Allumage "Segments"
const code unsigned char E878_Segments[]={63,6,91,79,102,109,125,7,127,111,0};
l'ULN2804 inversant le signal , on a plus besoin d'inverser les bits de commande des segments : un 1 logique allume le segment.
Modification de la table Allumage "Digits"
de meme pour les digits afficheurs , un 1 logique selectionne le digit
const code unsigned char Afficheur[]={1,2,4,8,16,32,0 };

Alimentation 5V (reglee à 4,8V) pour le MCU et autres ..
Un LM35DZ est monté sur la carte .
L'ADC referencé avec +VREF Interne de 1,024V , delivre en direct 0 à 1024 points => 0 à 102,4°C
Toutes les 8 minutes, la température est affichée au format 24°5 sur les 4 afficheurs de droite..pendant 1 minute.
puis retour à l'affichage de 'heure ..
Un emplacement est reservé pour un circuit M548 Melodie ..
Ce cicuit est alimenté en 3,3V , vai un petit module équipé d'un regulateur ASM 1117-3-3


Test avec 3 doubles afficheurs 7 seg ( HH, MM, SS)Test Avec 3 doub

Bus 7 segment relié sur les 3 afficheurs double (sorties du ULN2804
Chaque afficheur double recoit 2 commandes ( 1 pour chaque selection d'afficheur) provenant du UDN2981

images/t_Horlog_18F_Test_6_afficheurs_180619.gif
Circuit relié aux 6 afficheurs sur breadboard affiche temperature 25,97°C


../common/TeraTerm_Ecran_de_presentation_180627.jpg  
Affichage HH MM SS Ecran de presentation rev: 01 juillet 2018  

Chainage des afficheurs doubles assez facile à cabler.

Tests avec Carte annexe

voir détails ici : Carte 6 Afficheurs 7 seg

images/t_Carte_Affichage_multiplexe_6_digits_7seg_1906.gif images/t_Cicruit_imprime_6_afficheurs_7seg_AC.gif
interconnections carte Horloge et carte Afficheurs rev 24/06/2019



Modification pour affichage de la température
Recuperation de l'affichage Mesure de temperature (pour le terminal) , flottant formaté sur 2 digits apres la virgule.
A partir de l'Ascii pour en faire 4 digits BCD pour l'affichage 7 segment
Les 6 digits sont utilisés , avec les 2 du centre en affichage fixe pour ° et C .
L'affichage de la temperature se fait toutes les minutes paires et pendant 15 secondes.

Test chainage affichage des 8 premieres leds entre 1 et 8 secondes sur un CD4015 lié à RAZ et 1HZ ..
Alimentation CD4015 et afficheurs en 12V .... OK

corrections de la version 4 digits reportées sur cette version 6 digits





Version 4 digits HH MM et separateur clignotant à 1Hz


debut Juillet 2018
Modification ,car plus de digit Secondes
Gestion du choix d'afficheur DIRECT, bit à bit , sans passer par une table, pour pouvoir separer RA6 ,
destiné à allumer les leds separateur entre HH et MM , au rytme de 1 sec.
L'info seconde n'est disponible que dans le main programme, lecture de la RTC DS3231

Des qu'on detecte un changement de seconde, Armement de la sortie Clignote_Sec=1.
Du fait que la boucle principale tourne à 500mS, cette led sera eteinte au 2em tour..Clignote_Sec=0;
donc s'allume pendant 0,5sec à chaque seconde.

if ((Sec!=OldSec) )
{
Clignote_Sec=1;
OldSec=Sec;
TXREG1='*';

}
else
{
Clignote_Sec=0;
}

le TXREG1='*' perùmet de bien visualiser 4 allumage toutes les 4 secondes, via le terminal.
****03-07-18;12:31:38;Melodie OFF;Tamb=26.97°C
****03-07-18;12:31:42;Melodie OFF;Tamb=26.92°C
****03-07-18;12:31:46;Melodie OFF;Tamb=26.89°C

Modification de l'affichage temperature , sur les 4 digits HHMM:
affichage au format 25°7, toutes les minutes paires, pendant 10 sec.


Schéma (version 4 digits) modifié:
rev 27/01/2019

images/t_Horloge_4digits_18F26K22_60Leds_wh5_schema_190127.gif

schémas:
Horloge_4digits_18F26K22_ULN_UDN_DS3231_M948_Strip_leds_separateur_190127.wh5
Horloge_4digits_18F26K22_ULN_UDN_DS3231_M948_Strip_leds_separateur_190127.pdf


Software

#define Directory "C:\\_MikroC\\_MesProjets_MikroC\\_18F26K22_Horloge_60leds"
#define Project "Horloge_Geamel_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds.mcppi"
#define Source "Horloge_Geamel_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_"
#define Eeprom "_18F26K22_Horloge_60leds.ihex"


27/07/2018
Correction d'un Bug :
stokage Duree Melodie et Gamme Validation Melodie à la meme adresse Eeprom !
modif :

UART1_Write_CText(" Duree Melodie en eeprom : ");
p2= Read_Msg_Eeprom
(0x60) ; //Duree.Melo=20<CR>
*(p2+13)=0;
Duree_Melodie=atoi(p2+11);
WordToStr(Duree_Melodie,CRam1);
UART1_Write_Text(CRam1);CRLF1();


UART1_Write_CText(" Horaire Validation Melodie en eeprom : ");
//Valid.Melo=08;21
p2= Read_Msg_Eeprom(0x70) ;
*(p2+13)=0;
MinHour=atoi(p2+11);
WordToStr(MinHour,CRam1);
UART1_Write_Text(CRam1);
*(p2+16)=0;
MaxHour=atoi(p2+14);
WordToStr(MaxHour,CRam1);
UART1_Write_Text(CRam1);
CRLF1();

Correction d'un Bug , lié au mixte des versions 4 digits HH MM et 6 digits HH MM SS

// if (Index_Digit>5) Index_Digit=0;
if (Index_Digit>5) Index_Digit=2;

switch (Index_Digit)
{
/*
case 0:
LATA.B5=0;
LATA.B0=1;
break;
case 1:
LATA.B0=0;
LATA.B1=1;
break;

*/
traitement semblable pour la temperature sur 4 digits
au lieu de 6 digits

case 2: // 1/10em de degre
Temp = TP_Deci >>4 ;
LATB=E878_Segments[Temp]| Melodie;
// LATA.B1=0;
LATA.B5=0;
LATA.B2=1;
break;
case 3: // sigle °
LATB=99 | Melodie;
LATA.B2=0;
LATA.B3=1;
break;
case 4:
Temp = TP_Deg & 0x0F ; // Degres
LATB=E878_Segments[Temp]| Melodie;
LATA.B3=0;
LATA.B4=1;
break;
case 5: // dizaine de degres
Temp = (TP_Deg >>4 ) | Melodie;
LATB=E878_Segments[Temp]| Melodie;
LATA.B4=0;
LATA.B5=1;
break;
default:
break;
} //switch

version 6 digits
version 4 digits





partie reservée à la version
HH MM SS
avec Secondes !








de ce fait, l'index digit commence à 2
pour sauter les secondes, mais il faut aussi
effacer le digit 10xHeures
traitement semblable pour HH MM  


voir dernieres versions !


Video: Test_Horloge_4digits_180703.webm



Problematique 60 leds :
Test partie 60 leds avec 8 x CD4015 (60 leds)

Test prealable sur une breadboard avec seulement 2 CD4015 et donc 8 +8=16 leds

images/t_Horloge_P_4digit_PIC_Test_Chainage_2xCD4015_180814.gif images/t_cablage_2xCD4015.gif
schema montage avec 4 fils de liaison à la PIC board



pour memoire : Test_chainage_CD4015_20180814.avi

De mon coté , je ne veux pas repartir dans une galère de conncections de 60 leds ,
j'ai prevu un ruban lumineux RGB 60 leds en 4 fils !

Sur l'application Geamel , le cyclage 60 leds via 8xCD4015 est reconduit .

Remarque: le cablage est bien mieux soigné que sur mon horloge AT89 , mais longueur de cablage plus importante !
Le mieux ne serait-il pas l'ennemi du bien ?
La capacité parasite entre fils de nappe pourrait avoir un effet nefaste ..

Apres correction d'un bug sur circuit imprimé ( pin 16 du 1er CD4015 non alimenté .)
le cyclage des 60 leds ne se fait pas correctement ..ALEAS
contrairement à mon Horloge 60 leds avec MCU AT89C ( totalise en fait 95 leds) , où le cyclage est OK,
mais j'alimente le tout en 5V seulement en non pas en 12V .

J'ai donc utilisé le montage 60 leds de mon horloge AT89C , pour connecter la partie CD4015 sur les sorties de mon horloge PIC18F
Juste à dessouder les 2 fils HZ et RAZ provenant de la carte MCU AT89C2051 ...
Sur les sorties CD4015, j'ai 2K en serie avec 1 seule led et 1K en serie avec 2 leds ..
Sous 5V ..no problemo, le cycle sur 60 leds s'effectue bien ,et la RAZ aussi.

Controle du niveau pulse RAZ à l'oscillo :
Le fait de charger la sortie ULN avec 8 CD4015 au lieu de 2 pour le test breadboard, montre que le niveau de pulse RAZ s'ecroule avec R=3,3K

alim 5V R=3,3K Alim 5V R=220 alim 7,5V R=220


Test d'augmentation de la tension d'alimentation partie CD4015 et Afficheurs 7 segments :
Tout va bien jusqu'à 7,5V , on voit bien la nette augmentation de luminosité , sur les 60 leds et afficheurs, et le cyclage 60 leds est OK
PAR CONTRE, AU DESSUS de 7,5 V ..c'est la cata ! Memes aléas de fonctionnement que ceux constatés sur l'Horloge Geamel.
Mon oscillo n'est pas assez performant pour capter ce probleme..

Plus on monte la tension, plus les variations de courant , sont importantes.
Avec seulement 2xCD 4015 , on a seulement la conso de 16 leds! ce qui explique que ca fonctionne bien avec 12V  .
Ma conclusion est qu’on est face à un probleme de cablage et  ou qualité de la masse 0V et liaison alim +
ou il faudrait un circuit double face avec un plan de masse d’un coté . et des longueurs de connection ultra courtes => CD4015 sur la platine 60 leds ,
connectés au droit de chaque paquet de 8 leds.  
Ce probleme est quasiment le meme que celui que j’ai rencontré avec mes Matrices Leds 8x8 quand je suis passé de 6 matrices
à 8 matrices et longueur cumulée de fil de  cablage des elements chainé de pres de 1m.
et Meme avec 6 matrices, si j’augmente trop  le courant dans les leds, ça part en quenouille.  

Une autre cause possible pourrait etre le fait de commander une charge NON lineaire sur les sorties CD4015
à cause de la tension de dechets des leds .. un test à faire ..mais trop lourd à realiser , serait de monter une R de quelques K ohms en parralele avec chaque
groupe Led + R , pour lineariser la charge de sortie.

=> action :
limitation du courant dans les 60 leds , et 1 seule ou 2 leds maxi dans les sortie CD4015 , si alim =12V.
R= 2,2K sur 1 led bleue et 1,8K sur Leds rouges en serie


Programme specifique , uniquement pour tester la partie 60 leds
Avance au 1/10em de seconde au lieu de 1 sec , pour pouvoir mieux utiliser l'oscillo et l'analyser SQA
aucun probleme sur test avec 2 x CD4015 (seulement)
Test aussi avec cyclage permanent sans info RAZ

images/t_Test_chainage_permanent_180829.gif

Software:

Horloge_18F26K22_CD4015_Test_180817.c
Test_chainage_CD4015_18F26K22.hex




TESTS toujours BAD sur le cyclage des 60 leds ??????


29/08/2018
Apres Remplacement de la serie de 8 x CD4015 défecteux (from RPC !) sur Horloge Geamel ----> OK
!
le cyclage des 60 leds se fait enfin correctement .!


Insertion ampli sur sortie son circuit Melodie

images/t_Ampli_Melodie_avec_MOSFET_N_IRLZ14.gif
M948A Datasheet.pdf
module_12melodies_M948.pdf


* Mosfet canal N IRLZ14 , à faible VGS
si le signal sonore est trop puissant , mettre une R serie de de 8 à 32 ohms


MAJ SOFTWARE
( 02/09/2018)
Correction d'un bug software mineur , sur affichage d'un segment sur digit : Diz de degré quand Minute=00.

case 5: // dizaine de degres
// Temp = (TP_Deg >>4 ) | Melodie; // erreur !
Temp = (TP_Deg >>4 ) ; // correction 30 aout 2018
LATB=E878_Segments[Temp]| Melodie;
LATA.B4=0;
LATA.B5=1;
break;


Rajout de la commande OFS pour compenser l'OFFSET de decalage temperature du LM35DZ
les limites de corrections sont de -9,9 °C ( -99) ) + 9,9°C (99) , correction exprimée en 1/10°em de degres
La correction est sauvegardée dans l'eprom du PIC à l'adresse 0x94
cette valeur est relue au lancement du programme .

commande Help réactualisée:
Help : Help<CR>
RTC Update :
U;14;05;18;15;36;01;#<CR> pour 14 Mai 2018 Lundi 15H36
Duree Melodie : DM=12<CR> gamme 2 à 20 secondes
Game Validation Melodie GVM=08;21<CR> (de 8H00 à 21H00) limites 5 à 12 et 13 à 23
OFFSET correction tempearure LM35DZ OFS=-30<CR> (limites -99 à 99)



programme :

voir dernieres versions !
projet complet :18F26K22_Horloge_60leds_180902.zip
chargeur : Horloge_4digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_180902.hex
eeprom file : Horloge_4digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_180902.ihex

Application Horloge PIC ( restée en état de prototype de mon coté) en version 6 digits (sans les 60 leds)
vu que ma version à base d'ATMEL 8251 est déja réalisée et fonctionnelle.

video:
Horlog_G_4digits_Run_OK_180830.webm


Realisation (C) Geamel :
p'tit Video format Webm (3Mo):
Horlog_PIC_Temper_Test3_180619.webm

images/Horloge_G_4digit_running_a.jpg







Horloge 6 digits, 60 leds version Horloge Circulaire ,Ronde (Geamel)

voir dernieres versions !
Source principale : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_180904.c
Source: Tiny_RTC_DS3231_1809.c
header : Tiny_RTC_DS3231_1809.h
Chargeur : Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_180904.hex
fichier config touches de fonction VBray Terminal : Horloge.tmf





Horloge 6 digits, 60 leds version Horloge rectangulaire (Geamel)

Derniere MAJ schema

images/t_Horloge_6digits_60leds_18F26K22_wh5_schema_190523.gif images/t_Circuit_Imprime_18F26K22_UDN_ULN_180516.gif
Schema (Winschem version 5 ) rev 23 mai 2019 circuit imprime (C) Geamel

schéma:
Nota: usage de ULN2803 ou ULN2804

Horloge_6digits_18F26K22_ULN_UDN_DS3231_M948_60leds_190523.pdf
Horloge_6digits_18F26K22_ULN_UDN_DS3231_M948_60leds_190523.wh5

*rajout ampli FET pour son melodie sur HP de 8 ohms..mais avec R=100 à 220 ohms en serie si Alim 12V
* modif initialisation de la duree melodie à 03 sec (en eeprom),pour une seule melodie jouée
*RTC DS3231 au lieu de DS1307
*tous les connecteurs strap .JP1,JP2,JP3,JP7,JP13 .ouverts par défaut


SOFTWARE 6 digits version 2 :

*version Geamel (modele Rectangulaire) avec 6 gros afficheurs, constitués avec des segments de 3 leds
Project MikroC : "Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds.mcppi"


Presentation :
Directory :C:\_MikroC\_MesProjets_MikroC\_18F26K22_Horloge_60leds
MikroC pro 7.2.0
Projet :Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds.mcppi
Horloge 60 leds avec 18F26K22
Config bit : P18F26K22_FOSC_interne_8xPLL_32Mhz.cfgsch FOSC:32.0 MHz
Eeprom: Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_EEPROM_181007.ihex
Source : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_181007.c
18F26K22, RTC DS3231,6 afficheurs 7 seg ,uart 115200 bds
Utilise : Tiny_RTC_DS3231_1809.c et .h
Affiche TAmb.toutes les 2mn pendant 15sec

Duree Melodie en eeprom : 3
Horaire Validation Melodie en eeprom : 8 21
OFFSET calibration temperature LM35DZ (doit etre compris entre -99 et +99 ) en eeprom : -22
Init RTC DS3231:
Active sortie SQW=1Hz:
Re-Lecture RTC 05-10-18 16:16:05
ADC_Init_Advanced (1,024V) pour EA14 (RC2) LM35DZ
Filtering ADC measure by arithmetic average of 8 values

RAZ 60 leds
05-10-18 16:16:06
Melodie < Min H= 8 et Max H= 21

16:16:08;Melodie OFF;Tamb=22.80°C
16:16:12;Melodie OFF;Tamb=22.82°C
16:16:15;Melodie OFF;Tamb=22.75°C




Derniere version 6 digits :

Projet mikroC :

projet zipé :_18F26K22_Horloge_60leds_190309.zip
source : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_for_AI2_190706.c
RTC DS3231 files:
Tiny_RTC_DS3231_for_AI2_1903.c
Tiny_RTC_DS3231_for_AI2_1903.h
Eeprom : Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_for_AI2_1903.ihex
06/07/2019
chargeur
: Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_for_AI2_1907.hex (cheksum 28EF)

pour mémoire et versions anterieures :
** Old Source : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_181007.c
** RTC : Tiny_RTC_DS3231_1809.c et Tiny_RTC_DS3231_1809.h
***Source principale : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_180904.c
***Source: Tiny_RTC_DS3231_1809.c
***header : Tiny_RTC_DS3231_1809.h
***Chargeur : Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_180904.hex


Presentation :
Directory :C:\_MikroC\_MesProjets_MikroC\_18F26K22_Horloge_60leds
MikroC pro 7.3.0 Beta
Projet :Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_for_AI2_1907.mcppi special Bluetooth *.apk
Horloge 60 leds avec 18F26K22
Config bit : P18F26K22_FOSC_interne_8xPLL_32Mhz.cfgsch FOSC:32.0 MHz
Eeprom: Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_for_AI2_1903.ihex
Source : Horloge_6digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_for_AI2_190706.c
18F26K22, RTC DS3231,6 afficheurs 7 seg ,uart 115200 bds
Utilise : Tiny_RTC_DS3231_for_AI2_1903.c et *.h et *.c
Affiche TAmb.toutes les 2mn pendant 15sec
Offset LM35DZ en eeprom PIC = -27 points

Duree Melodie en eeprom : 4
Horaire Validation Melodie en eeprom : 8 21
OFFSET calibration temperature LM35DZ (doit etre compris entre -99 et +99 ) en eeprom : -22
Init RTC DS3231:
Active sortie SQW=1Hz:
Re-Lecture RTC 01-05-18 15:54:40
ADC_Init_Advanced (1,024V) pour EA14 (RC2) LM35DZ
Filtering ADC measure by arithmetic average of 8 values

RAZ 60 leds
01-05-18 15:54:41
Melodie < Min H= 8 et Max H= 21

*D01-05-18*H15:54:44*MOFF;*T00288*F28.86 °C
.....
*D01-05-18*H15:55:26*MOFF;*T00288*F28.85 °C
RTC Update : U;06;07;19;10;59;05;#

Ecriture dans DS3231... OK

*D06-07-19*H10:59:01*MOFF;*T00287*F28.79 °C

Help
Help : Help<CR>
RTC Update: U;14;05;18;15;36;02#<CR>
14 Mai 2018 02(Lundi) 15H36
Duree Melodie:DM=03<CR>gamme 2 à 20s
Game Validation Melodie GVM=08;21<CR>
limites de 8H00 à 21H00
OFFSET correction temperature LM35DZ
OFS=-30 (limites -99 à 99)
T=1<CR> Entree dans le mode test Manuel Digit et Segments ,via Keyboard
T=0<CR> Sortie du mode TEST MANUEL
Test unitaire #Digit A=01<CR> et valeur Segments B=06<CR>

*D06-07-19*H10:59:11*MOFF;*T00288*F28.82 °C
*D06-07-19*H10:59:14*MOFF;*T00288*F28.81 °C



version de circuit imprimé "Horloge G 6 digits" :

Version CI _Horloge_2019_ULN_UDN_CD4015_60_leds_G_rev_200405.lay6

images/t_Cuivre_Derniere_Version_Horloge_2019_60_leds_G_rev_200405_lay6.gif images/t_Derniere_Version_Horloge_60_leds_G_Photo_200405_lay6.gif
Geamel circuit imprimé sprintlayout 5.0 (C)  



Réalisation :

photo à suivre ...

 




Usage de TeraTerm comme Terminal PC

Chargement du zip Teraterm version 4.99
sur lequel , la selection /capture du texte d e zone ecran est fonctionnelle sous WIN10
( ce qui n'est pas le cas pour VBRAY Terminal!)

  ../common/Teraterm_init_COM.jpg
au lancement du terminal TeraTerm, selectionner Setup
  ../common/TeraTerm_Ecran_de_presentation_180627.jpg
L'ecran de presentation du programme Horloge 60 leds
  ../common/TeraTerm_envoi_commande_Help_180627.jpg
passage d'une commande PC -> PIC18F
  ../common/TeraTerm_envoi_commande_Duree_Melodie-12_180627.jpg





Liaison SANS FIL bluetooth avec l'horloge

Pour une remise à l'heure eventuelle, ou recuperer l'info temperature sur un smartphone android.
Evite une liaison par cable Prolific ..
Il faut tout d'abord reprogrammer la vitesse du module HC06 , qui est par defaut (reglage usine) à 9600 bds.
(Ou reprogrammer le PIC18F pour 9600bds !)
Le module HC06 est DIRECTEMENT RELIE AU PC TERMINAL via un cordon TTL/USB Prolific.
Ce cordon alimente le module .
Un terminal PC ( Terminal VBRAY , ou TERATERM , ou ..autre) permet d'envoyer les sequences de commande AT.

Au départ , si le module HC06 est neuf , le terminal doit etre configuré à 9600 bds (9600,N,8,1)
Ce module reçoit des commandes AT sans Carriage return (CR)
à la commande AT .. reponse OK
Commande AT+Version .... reponse OKlinvorV1.8
pour modifier la vitesse :
commande : AT+BAUD8 reponse : OK115200
ATTENTION , car à ce moment là, le HC06 ne repondra plus qu'à la nouvelle vitesse 115200 bauds
il faut donc modifier la vitesse du terminal => 115200 bds
On peut verifier en envoyant à nouveau une commande AT+Version
AT+Version --> linvorV1.8







Version HC05

les modules HC05 (ou faux HC06 ?) sont plus récents
Celui ci se connecte de la meme façon que le modele HC06 (celui au dessuss).

exemple avec terminal VBRAY et son fichier rmacro associé :
Macro_Vbray_pour_BlueTooth_190703.tmf
test sur mon modue HC05 à 19200 bds
envoi AT<CR><LF>
reponse: OK
test Version via touche version?
envoi AT+VERSION<CR><LF>
reponse : VERSION:3.0-20170609
test name actuel via touche name ?
envoi AT+NAME<CR><LF>
reponse : +NAME:HC05_2C14J
test changement de nom, via touche name Gaya
envoi AT+NAME=Gaya<CR><LF>
test name actuel via touche name ?
envoi AT+NAME<CR><LF>
reponse: +NAME:Gaya
test Adresse vai touche Adress?
envoi AT+ADRES<CR<LF>
reponse: +ADDR:98D3:51:F92C14
la vitesse originale etait de 9600 bauds
modifié à 19200 par la touche 19200
envoi la commande: AT+UART=19200,0,0<CR><LF>
reponse : OK
IMPORTANT : si on modifie la vitesse du module, ne pas oublier de modier ensuite AUSSI la vitesse du terminal !
test vitesse actuelle via touche bauds?
envoi AT+UART?<CR><LF>
réponse : +UART:19200,0,0
OK

nota; il est préférable de n eplus utiliser les vieux modules "Linvor " pour de furtur projet.
voir aussi les nouveaux modele B.L.E V4.0 et plus.






15/09/2018

L'application Android BlueTerm = terminal sans fil Bluetooth
permet d'envoyer la sequence de remise à l'heure de la RTC, si besoin est
et recevoir en permance , toutes les 4 secondes, les infos de l'horloge Date et Heure + temperature ambiante

plus d'infos sur le BlueTooth ICI.

recherche device et apparairage avec Phone lancement du terminal BlueTerminal relier HC06 à blueTerminal
 
selectionner HC06 ( relié à UART PIC26K22) HC06 connecté, transmet la sortie UART sur l'ecran Terminal  

Test de validation:
Nota: ce module accepte des niveaux 5V sur RX !
Attention : croiser TX et RX ..
La pin VCC du module HC06 doit etre relié au +5V !

images/t_Horloge_Test_liaison_BT_HC06_avec_Phone_180915.gif images/t_Horloge_Test_liaison_BT_HC06_avec_Phone_180915_b.gif
HC06 vue de dessous HC06 vu de dessus

ou utiliser cette application BT_Simplex écrite avec RFO-Basic

selectyion appli BT_Simplex connection avec HC06 ..OK teste avec envoi commande Help

BT_Simplex.apk

BlueTerminal disponible sur Google Applistore




Liaison via blue Tooth à "BlueTerminal" ou "BT_Simplex" application Android
il faut penser à configurer préalablement le HC06 avec vitesse 115200 bds !
avec une connection directe Terminal Vbray <-cordon Prolific USB/TTL ---> HC06 (R serie 750 ohms sur RX)
Ensuite , il uffit de relier le HC06 aux pins Terminal de la carte PIC ..
Test remise à l'heure, Help ...OK

Une fois la liaison BT testée et validée
Test avec appli Bluetooth-Electronic
voir PLUS DE DETAILS ICI . sur cette application
Le panel est defini par ce fichier de config :
Keuwl_horloge-60leds.kwl

../_BlueTooth/images/t_1_BlueElectronics_Import_Pannel_Horloge_60leds_181013.gif ../_BlueTooth/images/t_5_BlueElectronics_RUN_Horloge_60leds_HC06_181013.gif
fichier de config Running programme


Le programme initial Horloge 60 leds est légerment modifié pour satisfaire au protocole (simple) de BlueTooth Electronics
*T pour affichage Temperature (en points),*F pour temperature pour affichage en flottant (decimal), *D pour afficher la Date , *H pour l'Heure ,
Horloge_6digits_18F26K22_DS3231_ULN_UDN_Melodie_60leds_blueElec.hex

historique temp.Amb long sur 900 sec ( 1000 maxima) et historique court sur 60 sec.
nota: l'historique (grafique) ne peut pas etre exprimé en valeur flotante , donc ici, en 1/10em de degres ( 350 = 35.0 °C
Affichage sur thermometre
Petit ecran terminal .. reception de la trame envoyée par le PIC18F
La Date et Heure de l'horloge sont extirpées et affichées
malheureusement cette appli ne permet pas d'envoyer un message (variable)...

mais un message Fixe ..OUI
Exemple avec touche HELP envoi "Help" sur appui touche et <LF> sur relache touche
pas de <CR> => remodif. appli Horloge PIC
La touche Help est alors est fonctionnelle..

../_BlueTooth/images/t_6_BlueElectronics_RUN_Horloge_60leds_HC06_Help_181013.gif

La suite
Une version appli dédiée avec RFO basic



Application Appinventor 2 , pour Horloge PIC18F

fonctionalités:

Connection BlueTooth au module decouvert
Affichage de la temperature mesurée via un LM35DZ sur la carte PIC Horloge
Reglage de la validation plage horaire pour melodie à chaque Heure (et 00 Minute) (memorisée Eeprom du PIC)
Touche Help
Touche MAJ RTC : prend l'heure et le numero de jour du system Android pour le copier dans la RTC DS3231
Affichage de la trame emise par le PIC via le module blue Tooth HC06
Led Rouge .. devient Verte clignotant si la melodie est jouée

images/t_BlueTooth_Modules_Linvor_181120.gif

Version RFO basic et Appinventor2


rev Mars 2019
Petites modif application PIC Horloge 6 digits pour adaptation application Android (Appinventor2)
rev Juillet 2019
Rajout commande Manuelle pour Test des afficheurs commande Anode Digit et Segment



Fichier config touche VBRAY Terminal pour configuration module BlueTooh HC06


Macro_Vbray_HC06_config.tmf






La version PIC18F Horloge 4 digits pour adaptation application Android (Appinventor2)
projet : _18F26K22_Horloge_4digits_60leds_2019.zip
source : Horloge_4digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_CD4015_for_AI2_190127.c

Derniere version 4 digits :
chargeur : Horloge_4digits_18F26K22_RTC_DS3231_ULN_UDN_Melodie_60leds_for_AI2_190127.hex

TESTS avec terminal

du coté TX UART -> HC06

test MAJ RTC ...... OK !
*D01-05-18*H14:59:53*MOFF;*T00173*F17.36 °C
*D01-05-18*H14:59:57*MOFF;*T00173*F17.34 °C

exemple pour : 04 juillet 2019 18H05 Jeudi
RTC Update : U;04;07;19;18;05;04;#
Ecriture dans DS3231... OK

*D04-07-19*H18:05:01*MON;*T00173*F17.30 °C
*D04-07-19*H18:05:04*MOFF;*T00173*F17.30 °C
*D04-07-19*H18:05:07*MOFF;*T00173*F17.30 °C
*D04-07-19*H18:05:10*MOFF;*T00172*F17.26 °C

TEST HELP ... OK
Help : Help<CR>
RTC Update: U;14;05;18;15;36;02;#<CR>
14 Mai 2018 02(Lundi) 15H36
Duree Melodie:DM=03<CR>gamme 2 à 20s
Game Validation Melodie GVM=08;21<CR>
limites de 8H00 à 21H00
OFFSET correction temperature LM35DZ
OFS=-30 (limites -99 à 99)

TEST Modif Game Horaire Validation Melodie .. OK
GVM=09;17 Nouvel horaire Melodie : =09;17
l <--- WHAT THAT'S ? pas trouvé d'ou vient ce cracra : 1 etx
*D15-10-18*H56:02:08*MOFF;*T00233*F23.34 °C
*D15-10-18*H56:02:11*MOFF;*T00233*F23.32 °C

Affichage Temperature ..OK
remarques :
* Clock2 parametres n'inclue pas le WeekDay => modif Appli coté PIC RTC
pour rajout du WeekDay en fin de message
* L'affichage trame reste sur une seule ligne , de meme que le retour d'info de HELP
meme avec un label multiline ! because PIC envoi CR seulement, pas de CR LF
* Impossible aussi de modifier la couleur LEFT et RGHIGT du slider ???

=> question posée sur le forum Appinventor2
programme Horloge_18F_60leds_181016.apk dispo sur Appinventor2

images/problemo.jpg

Réponse :
This is a problem known from the nb169 release.
The behavior has not been fixed yet.

A suivre .. encore un petit bug .. sur Selection device BlueTooth :
le device selectionné dans la liste était bien actif,
mais ce n'était pas le bon nom de device affiché connecté.

Bug erradiqué:
avec cette modif


Autre modif :
Led rouge si l'heure en cours est en dehors de la plage autorisée pour melodie
sinon, Led Verte, si dans la plage ( réglée par les 2 sliders)

Version corrigée:

images/t_blocks_Horloge_60leds_181026.gif images/t_Design_Horloge_60leds_181026.gif
Blocks : Horloge_18F_60leds_181026.aia Designer

Appli:
Horloge_18F_60leds_181026.apk (2,6Mo)





12/10/2018

THE NEXT ONE
ICI
avec anneau leds RGB
avec MAX7219 et 7 segments ou 6x MAX7219+MATRICES 8x8
affichage date,heure,temperature, ou Message particulier defilant
Liaison blueTooth pour remise à l'heure (eventuelle) ou modifier le message defilant




paulfjujo@free.fr


Retour à l'index general