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
APPLICATION TM1637
MINUTERIE COMPTEUSE-DÉCOMPTEUSE DE 0 à 99mn59sec
Cette application est la suite de la page consacrée au TM1637. La minuterie décrite ci dessous utilse un de ces afficheurs horaires quatre digits pas chers. Plage de réglage de 0 à 99min 59sec . Résolution 1 seconde
Le schéma:
Très simple, il suffit de remplacer la led par un relais statique et on peut commander n'importe quoi: des tubes fluo pour insoleuse par exemple, voir en bas de cette page. Très facile de modifier pour mémoriser la dernière valeur utilisée. (C'est fait, modifié le 01/03/2015)
Voir les détails de la programmation du TM1637 sur cette page.
Mode d'emploi:
A l'allumage, affichage du dernier temps utilisé Départ en appuyant sur le poussoir Allumage de la LED (ou relais statique), décomptage et arrêt à 0 RAZ par appui en cours de décomptage. Mémorisation d'un temps: Appui long (>2s) sur le poussoir Extinction des ":" pendant cette phase
Réglage du nombre de minutes (0 à 99) Valider par le poussoir Réglage du nombre de secondes (0 à 59) Valider par poussoir, RAZ du programme, les ":" réaparaîssent avec la nouvelle valeur. Si la valeur mémorisée est 00:00, le programme lance un comptage au lieu d'un décomptage.
Petite vidéo de démo:
Nouveau code (légèrement optimisé) pour cette minuterie à mémoire
;************************************************ ; Application TM1637: Chronométre 0 à 99mn:59s ; MM 08/03/2015 mod 13/03/2015 ;************************************************* ;Broches I/O *************** symbol LED= C.0 symbol clk= C.2 symbol dio= C.1 symbol valid=pinC.3 ;Bytes ********************** symbol Octet=b0 symbol Chiffre=b1 symbol i=b2 symbol j=b3 symbol minut=b4 symbol second=b5 symbol dp=b6 ;Words ***************************** symbol temps=w10 symbol depart=w11 symbol Div=w12 symbol Nombre=w13 ; nombre de 4 chiffres à afficher ;Initialisation TM1634 ********************************************************* ;symbol TypeAdr=$40 ; adressage auto-incrémenté symbol AdrDep=$c0 ; adresse du 1er digit (poids fort) symbol RegLum=$8c ; réglage luminosité $80 + 8(allumé, 0:éteint) + 0 à 7(intensité)
setfreq m16 ;pas plus pour garder time en secondes pullup %1110 ;activation des résistances pullup
;gosub I2CStart ;Octet=TypeAdr ;Mode d'adresse, incrémenation auto par défaut ;gosub I2CEnvoiOctet ;gosub I2CStop
gosub I2CStart ; Octet=RegLum ;Réglage luminosité gosub I2CEnvoiOctet gosub I2CStop ;Affichage données en mémoires EEPROM ********************************************* dp=$80 ;pour allumage DP read 0,minut,second ;lecture EEPROM nombre=minut*100 + second ;mise en forme affichage div=1000 gosub Affnbre
; Attente lancement ou intro paramétres *********************** do if valid=0 then ;attente appui poussoir time=0 do if time>1 then goto Intropar ;appui > 2 secondes endif loop while valid=0 ;attente relachement poussoir exit endif loop ; Départ lancé ********************** depart=minut*60+second ;calcul temps en seondes if depart>0 then gosub Decompte ;temps>0 ,on décompte else gosub compte ;temps=0 ,on compte endif low LED do loop while valid=0 ;sortie sur appui poussoir reset ;redémarrage programme
;****** Début programme décompteur ********* Decompte: time=0 high LED do temps= depart-time ;temps restant nombre=temps minut=nombre/60 nombre=nombre//60 nombre=100*minut+nombre Div=1000 gosub Affnbre if valid=0 then exit loop while temps >0 return
;****** Début programme compteur ********* compte: ;depart=minut*60+second time=0 high LED do nombre=time minut=nombre/60 nombre=nombre//60 nombre=100*minut+nombre Div=1000 gosub Affnbre if valid=0 then exit loop return
;****** Introduction des minutes ************ Intropar: ; préaffichage,jusqu'au relachement du poussoir dp=0 ;suppression affichage dp div=10 ;pour affichage 2 chiffres readadc C.4,minut minut=99*minut/255 nombre=minut gosub Affnbre do loop while valid=0 ; introduction des minutes ***************** div=10 do readadc C.4,minut minut=99*minut/255 nombre=minut if valid=0 then do loop while valid=0 exit endif div=10 ; initialisation diviseur pour affichage 2 premiers digits (minutes) gosub Affnbre loop
;****** Introduction des secondes ****************** do readadc C.4,second second=59*second/255 nombre=minut*100+second if valid=0 then do loop while valid=0 exit endif div=1000 gosub Affnbre loop write 0,minut,second ;sauvegarde en EEPROM reset ;relance du programme **********
;******* Découpage du nombre en chiffres ************ Affnbre: gosub I2CStart Octet=AdrDep ;synchro adresse départ gosub I2CEnvoiOctet for j=1 to 4 Chiffre=Nombre/Div gosub DecTo7seg if j=2 then octet=octet | dp ;ajout points centraux endif gosub I2CEnvoiOctet Nombre=Nombre//Div Div=Div/10 next j gosub I2CStop return
;****** balise Start ********************* I2CStart: high clk high dio low dio return
;******* balise Stop ******************** I2CStop: low clk low dio high clk high dio return
;******* Envoi des chiffres (octet) bit à bit dans le registre ******** I2CEnvoiOctet: ;lecture de b0 bit à bit de bit0 à bit8 poids faible en tête. for i=1 to 8 ; envoi low clk if bit0=1 then high dio else low dio endif ;positionnement DIO Octet = Octet/2 ;effacement du bit lu, bit1 devient bit0 high clk next i low clk ; traitement ACK high clk low clk return
;****** Conversion des chiffres en segments DecTo7seg: lookup Chiffre,($3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f), Octet ; 0-9 uniquement return
Application complète, minuterie pour insoleuse La led est toujours là, le relais statique est ajouté, et la résistance de limitation passe de 330 à 120 ohms La minuterie alimente des modules électroniques pour lampes fluocompactes de 15 ou 8 Watts, suivant les tubes UV utilisés (mais choisissez plutôt des 15 W). Voir une insoleuse ici
Le schéma:
Le typon:
Le circuit tient sur une plaque de 10 cm x 4 cm Alimentation traditionnelle par transfo et fusible, plus sécure que l'alimentation par condensateur, une récupération de circuit de bloc secteur à découpage est aussi possible.