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 :
Pinout
Schema
:
Circuit Imprimé Rev_180511:
(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)
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
Verification comportement ULN 2804 ( par rapport
à un ULN2803 specific entree TTL)
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
* 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)
1er TEST (sans ULN,ni
UDN):
17/06/2018
Test uniquement du programme, laision UART, Heure et Dialogue RTC,
info 1Hz et RAZ
Test avec ULN2804 ,UDN2981 et 1 afficheur Double (Secondes)
19/06/2018
rappel Pinout ULN et UDN
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
Chainage des afficheurs doubles assez facile à
cabler.
Tests avec Carte annexe
voir détails ici : Carte 6
Afficheurs 7 seg
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
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) |
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
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 quon 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 dun
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 jai
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 jaugmente 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
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
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
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
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
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!)
![]() au lancement du terminal TeraTerm, selectionner Setup |
|
![]() L'ecran de presentation du programme Horloge 60 leds |
|
![]() passage d'une commande PC -> PIC18F |
|
![]() |
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 !
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
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..
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
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
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:
![]() |
![]() |
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