Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 
 

Mise à l'heure des RTC

DS1307 ou DS3231


Après l'achat ou un changement de pile ou batterie, il faut mettre la RCT à l'heure.
Voici une méthode simple utilisant uniquement le PC.
Ce programme sert spécifiquement à la mise à l'heure de l'hologe Qlocktwo de cette page, dans ce cas,  seuls les heures et minutes sont utiles, les secondes seront à 0. Pour un autre usage, on peut renseigner les autres arguments pour enregistrer le total des registres
Le registre 7,"controle" est réglé pour produire un signal de 1 Hz pour la DS1307. Pour la DS3231, le registre 14 doit être à 0.
Il faut un poussoir, sur la broche C.3 d'un picaxe quelconque, relié au PC pas son cordon de programmation.
La RTC reliée aux broches scl et sda I2C du picaxe.

Schéma avec un picaxe 08M2:

Le programme:

;mise à l'heure pour DS1307 ou DS3231 MM 22/04/20
;avec sortie 1 Hz
;Renseignez les données hh et mm (entre étoiles)
;Chargez le programme
;Appuyez sur le poussoir
;ET SUIVEZ LES INSTRUCTIONS
;#picaxe 14M2
#no_data
#terminal 4800
symbol minut    =b1
symbol heur     =b2
symbol jds      =b3    ;jour de semaine: 1=dimanche ; 2=lundi.....
symbol jour     =b4
symbol mois     =b5
symbol annee    =b6
symbol varb     =b10
symbol dch      =b11
symbol pous     =pinC.3
#macro transbcdtodec(varb)        ;transformation de bcd vers dec
    dch=varb/16*10
    varb=varb//16
    varb=varb+dch
#endmacro
#macro transdectobcd(varb)    ;transformation de dec vers bcd
    dch=varb//10
    varb=varb/10*16        'mises au format BCD
    varb=varb+dch           'pour enregistrement
#endmacro        
    pullup %100000001000        ;activation pullup sur C.3 ;08M2 , 14M2
    hi2csetup i2cmaster, %11010000, i2cslow, i2cbyte

;************************************************  
    minut = 17    ;heure de la mise à l'heure
    heur  = 23    ;minutes de la mise à l'heure
    jds   = $2    ;pour les autres paramètres
    jour  = $24   ;on utilise l'opérateur $
    mois  = $4    ;qui tranforme de décimal en BCD
    annee = $20   ;ex 25 => %0010 01001

;***************************************************
    sertxd ("Connecter les broches scl e sda du picaxe (voir doc) sur les entrees RTC",13,10)
    sertxd ("METTRE A JOUR LES DONNEES ENTRE *** dans le programme",13,10)
    ;do loop while pous=1
    ;pause 100  
    
    sertxd ("attente ",#heur,"h",#minut,13,10)
    sertxd ("appuyez a h-5 secondes sur le poussoir",13,10)
    sertxd ("Et lachez a h=00 secondes",13,10)    
    do loop while pous=1    
    pause 100
    sertxd ("OK! lachez a h=00 secondes",13,10)      
    do loop while pous=0
    transdectobcd(heur)
    transdectobcd(minut)
    hi2cout 0,(0,minut,heur,jds,jour,mois,annee,%00010000)
    sertxd ("Donnees enregistree",13,10)    
    do
        hi2cin 1,(minut,heur)    
        transbcdtodec(heur)
        transbcdtodec(minut)
        sertxd("heure lue: ",#heur,"h",#minut,"mn",13,10)
        pause 100    
    loop





Et une petite vidéo pour le mode d'emploi:
 



 



Créer un site
Créer un site