Overblog Suivre ce blog
Editer la page Administration Créer mon blog

Minuterie compteuse-décompteuse Picaxe 14M2

(Mise à jour du 01/08/2011)

 

 

Retrouvez cette page
et toutes les mises à jour
sur

http://electromag1.wifeo.com/ 

 

 

 

 

ALLEZ VOIR AUSSI LA VERSION LCD ALPHANUMERIQUE, PLUS SIMPLE ICI    

 

  

 

Le schéma et la liste des composants restent identiques à la version 14M, à lire ICI 

  

La nouvelle série de Picaxe M2 remplace les "anciens" et multiplie par 8 les performances en vitesse et capacité mémoire , augmente les E/S, les fonctions, etc.... pour le même prix, très bas.

  

En particulier, un nouvelle variable système "time" est arrivée: c'est tout simplement un compteur de secondes sur deux octets .

Plus exactement, elle compte les secondes aux fréquences de 4 et 16 MHz et les demi secondes à 8 et 32MHz.

 

Alors qu'il fallait compter les boucles d'affichage et faire des ajustages fins pour tenir une précision inférieure à la seconde sur 10 mn. Tout cela disparait avec la variable "time".

 

Les afficheurs SC39-11 SRWA (plus lumineux que tous les autres, HDSP compris) sont maintenant disponibles chez Gotronic, fournisseur des Picaxes et de tout le matériel nécessaire. Le logiciel 14M2 est donc adapté au typon de cet afficheur.

 

Rien ne change concernant le typon et les composants.

 

Les pins ont de nouvelles dénominations. Le schéma et le programme tiennent compte de ces modifications.

 

Cliquez sur ce dessin pour agrandir. 

 

 Minuteur picaxe 14M2 SC3911

 

Les typons et le programme .bas ci dessous sont en téléchargement ICI.  

      

 

Voici le nouveau programme à copier dans l'éditeur Picaxe.

 

 

 

 'Minuteur insoleuse PICMAX 14M2
 
 'b0 Position Minutes max=9
 'b1 Posision Secondes max=59
 'in C.3 Bouton ON/OFF
 'time = variable systeme compteur de temps en secondes (4 et 16MHz)
 
 low B.0 'BCD 
 low B.1 'BCD
 low B.2 'BCD
 low B.3 'BCD 
 'outB.4 Aff Dsec
 'outB.5  Lumière 
 'outC.4 Aff Min
 'outC.5 Aff Usec
 
#picaxe14m2 
setfreq m16   'réglage horloge à 16 MHz (time à 1 s)


'************* Noms de variables *************

symbol nmn=b2  'nombre de minutes affichées
symbol nsec=b3  'nombre de secondes affichées
symbol dsec=b1  'dizaines entières de seconde
symbol ndsec=b4  'dsec x 10
symbol usec=b6  'unités des secondes
symbol temps=w4  'compteur
symbol tsec=w5  'temps total en secondes

 

'*************Noms de ports *************

symbol boutOnOff=pinC.3 'bouton ON sur pin3
symbol lum=B.5  'Lumière
 low B.4  'Aff Diz sec
 low C.1  'Aff  Unités sec
 low C.2  'Aff  minutes
 
 
debut: 
 low lum  'sortie lum=0
 readadc C.0,b0 'lecture position minutes 
 nmn=9*b0/250 'calcul nbre minutes
 readadc C.4,b1 'lectuere position secondes
 nsec=59*b1/255 'calcul secondes
 tsec=60*nmn+nsec 'temps total en secondes  
 temps=tsec   'affichage de
 gosub conver  'la position 
 gosub affich  'des potensiomètres  

 if boutOnOff=1 and tsec <>0 then  'départ décompte aff<>0
   pause 10
stb:   if boutOnOff =0 then decompt 'attente relachement bouton
 goto stb  
 end if
        
 if boutOnOff=1 and tsec =0 then   'départ comptage aff=0
   pause 10
stb2:   if boutOnOff=0 then compt 'attente relachement bouton 
 goto stb2
 end if 
 goto debut  'retour
'------------------------------------------------------------- 
decompt: 
 high lum   'allumage lumière
 time=0   
   
 do while temps<>0 'arrêt à temps =0
  temps=tsec-time  
  gosub calc  'calcul des digits      
 loop     'test fin
 
 low lum   'extinction lumière
 sound 5,(123,20)  'beep
 
 goto debut    'retour
'-------------------------------------------------------------- 
compt: 
 high lum   'allumage lumière
 tsec=600
 time=0
 
 do while tsec>time 'arret au bout de 10mn
  temps=time  
  gosub calc   
 loop    'boucle jusqu'a 600
 
 low lum   'extinction lumière
 sound 5,(123,20)  'beep
 
 goto debut
'------------------------------------------------------------- 
calc:
 gosub conver
  
 nmn=nmn+32  '+32 pour B.5 à 1
 dsec=dsec+32
 usec=usec+32  
   
 gosub affich 'affichage temps 
 gosub raz  'surveillance ON/OFF
   
 return     
'--------------------------------------------------------------
affich:  
 outpinsB=nmn 'positionnement segments (out0,1,2,3 et 5)   
 high C.2  'selection afficheur mn
 pause 3  'temps allumage    
 low C.2  'extinction 
 outpinsB=dsec
 high B.4
 pause 3
 low B.4
 outpinsB=usec
 high C.1

 pause 3
 low C.1

 
 return


'---------------------------------------------------------------
conver: 'Ici, on décompose en mn, diz de sec et sec 

   
  nmn=temps/60  'Min  décomposition du temps total en Minutes 
  nsec=temps//60  'secondes restantes  
  dsec=nsec/10  'DSec  Dizaines de secondes
  usec=nsec//10  'USec  Unités de secondes
   
 return
'---------------------------------------------------------------
raz:  'test sur poussoir ON/OFF
  if boutOnOff=1 then  'test bouton OFF
   pause 10
stb3:   if boutOnOff=0 then debut
   goto stb3
  end if
 return      

Partager cette page

Repost 0
Pour être informé des derniers articles, inscrivez vous :