Partager l'article ! Gâche électronique programmable Picaxe 08M2: C'est pratique, une gâche électrique codée pour ouvrir son portail, surtout lorsqu'on ...
C'est pratique, une gâche électrique codée pour ouvrir son portail, surtout lorsqu'on a pas besoin de chercher ses clés sous l'orage.
Le code est introduit par un clavier 12 touches NON matriciel. Ce code de 4 chiffres est modifiable de l'extérieur à volonté.
Le matériel:
1 picaxe 08M2 (Remplace le 08M)
1 clavier non matriciel 12 touches (étanche pour l'extérieur)
1 régulateur 78L12
1 régulateur 78L05
1 transistor NPN (Ex: BC337-40)
1 pont redresseur 1A
1 diode 1n4148
1 relais 12v D.I.L
1 condensateur 470µF 25v
1 condensateur 100nF
1 condensateur 4,7nF
1 interrupteur à lames souples (I.L.S)
1 buzzer piézo
1 potentiomètre 22k
12 résistances 100Ω , 2 de 10KΩ, 1 de 47kΩ
Soit une dizaine d'euro plus le prix du clavier (bon clavier étanche- chez Selectronic)
Le schéma: Agrandir ici
Le code :
Faites un copier-coller dans le "Picaxe Programming Editor"
Ou télécharger ICI le zip contenant deux fichers.bas à ouvrir avec l'éditeur Picaxe.
Un fichier pour picaxe 08M comme celui ci dessous fonctionnant sur tout picaxe et un fichier spécifique (non encore testé) pour picaxe 08M2 utilisant les nouvelles variables systèmes.
'Gestion de clavier 12 touches non matriciel code 2(300110)
'Principe:
'5 volts sont divisés en 12 paliers de 0 à 5 v par 12 R de 100 ohms
'Chaque touche est reliée à un palier
'4 paliers sont mémorisés
'Après lecture de la tension, on calcule le palier correspondant
'On compare avec les codes mémorisés
'4 bonnes comparaisons successives et on sort, sinon on boucle
' R
R R R R R R R R R R R
' 0Volt-o-+-o-+-o-+-o-+-o-+-o-+-o-+-o-+-o-+-o-+-o-+-o- 5volts
'Paliers 1 2 3 4 5 6 7 8 9 10
11 12
init:
symbol NCode=pin3 'poussoir NouveauCode
symbol cpt=w0 'compteur attente
symbol tch=b4 'lecture touche par ADC 4
symbol pal=b5 'palier
symbol memtch=b6 'mémo lecture touche
symbol rang=b7 'compteur rang décodage
symbol tempo=b8 'temporisation sortie par ADC 1
symbol niveau=b9 'calcul interpaliers en bits: 21*pal+10
sound 2,(124,10) 'signal passage init
read 0,b13 'lecture du
read 1,b12 'code
read 2,b11 'en
read 3,b10 'mémoire
'-----------------------------------------------------------
debut:
rang=0 'RAZ rang
cpt=0 'RAZ compteur attente
readadc 1,tempo 'lecture de la temporisation sortie
'--------------------------------------------------------------
leccode: 'Sous programme décodage
if NCode=0 then 'Si contact on,
rang=0 'envoi vers le sous prog de
cpt=0 'changement de
goto nouvcode 'code
endif
readadc 4,tch 'lecture du clavier
inc cpt
if cpt>1700 then debut 'RAZ rang et cpt
toutes les 5s env
if tch<10 then leccode 'si pas de pression touche, on boucle
gosub padin ' 'touche pressée -> calcul du palier
on rang goto c0,c1,c2,c3
c0: if pal=b10 then:rang=1:goto leccode 'Apres chaque
else:goto debut
endif
c1: if pal=b11 then:rang=2:goto leccode 'bonne comparaison
else:goto debut
endif
c2: if pal=b12 then:rang=3:goto leccode 'on avance vers
else:goto debut
endif
c3: if pal=b13 then
high
0 'la sortie
sound 2,(124,10)
for cpt= 1 to tempo 'tempo d'ouverture
pause 20
next
low 0
goto debut
endif
goto debut
'sinon retour début
'---------------------------------------------------------------
padin: 'Sous programme calcul du palier
pause 50 'attente 50ms
readadc 4,tch 'seconde lecture après 50ms pour antirebonds
memtch=tch 'memo lecture
att: readadc 4,tch 'attente relachement
if tch>10 then att 'de la touche.
for pal=1 to 12 'boucle
recherche
niveau=21*pal+10 'du palier correspondant
if memtch<niveau then ret '21*12+10>256 donc pas de sortie à 12
next 'mais après 11, on sort avec pal=13
ret:
cpt=0 'apres chaque pression,reset du compteur attente
sound 2,(123,10) 'beep de relachement touche
return
'-------------------------------------
nouvcode: 'Sous programme mémo d'un nouveau code
sound 2,(120,10) 'sonnette "nouveau code"->tapez lentement
readadc 4,tch 'lecture ADC4
inc cpt 'incrémentation du compteur attente
if cpt=50 then 'temps d'attente
entre deux
rang=0 'touches dépassé (6s env)
sound 2,(110,10) 'Après le beep,
goto nouvcode 'on recommence
endif
if cpt>100 then init 'temps dépassé: rechargement du code initial
if tch<10 then nouvcode 'si pas de pression, on boucle
gosub padin 'touche pressée -> calcul du palier
on rang goto cod0,cod1,cod2,cod3 'mémorisation des
cod0:b10=pal:rang=1:cpt=0:goto nouvcode 'quatre
cod1:b11=pal:rang=2:cpt=0:goto nouvcode 'touches
cod2:b12=pal:rang=3:cpt=0:goto nouvcode 'du
cod3:b13=pal 'code
write 0,b13 'écriture
write 1,b12 'du
write 2,b11 'code
write 3,b10 'en mémoire
goto init 'retour initialisation
'____________________________________________________
Le typon :
Voici une image du fichier TCI. Que vous pouvez télécharger ICI en format zip.
(Att: typons rectifiés le 27/01/2011)
Ouvrez l'archive pour retrouver les fichiers .tci.
Avec le logiciel TCI4.3 (voir page "Fabriquer ses circuits imprimés"), imprimez le typon de votre choix, ou modifiez le, il est possible de séparer le clavier et les résistances du reste du circuit avec une liaison par câble blindé 3 conducteurs.
Pour la programmation voir la page :"La famille picaxe, la programmation"
Réalisation:
Plusieurs typons au choix, dont un programmable directement, ajoutez un strap, deux résistances 1/8 de W ou CMS et trois picots.
Le relais est a double inverseur. Un contact peut etre utilisé pour la serrure, l'autre pour la sonnette.
Si il n'y a pas de sonnette, relier T et T1, R et R1,C et C1. Les contacts sont alors en // pour augmenter la longévité du relais.
Mémorisation et changement de code:
On utilise un interrupteur à lame souple (ILS) collez sous la plaque à coté du clavier.
Il se ferme en approchant un aimant de l'extérieur, un bref passage suffit.
Après le fonctionnement de ce contact, le buzzer émet un bruit de sonnette continu tant que l'on est en mode "programmation" (la sonnette ralentit le cycle, faut pas aller trop vite)
Appuyer alors -sans précipitation- sur quatre touches du clavier.
Après la dernière touche, la
sonnette s'arrête et le nouveau code est mémorisé.
Vérifiez ce nouveau code.
Après plus de 6 secondes entre deux touches, un beep et il faut recommencer au début du code (c'est pour recommencer en cas d'erreur).
Après plus de 12 secondes entre deux touches, la procédure est abandonnée et l'ancien code est restauré.
Ici, le clavier et le circuit sont reliés par une nappe, mais il est possible de souder les picots coté soudures et d'accoler clavier et circuit ou de séparer le circuit en deux avec une liaison par blindé 3 conducteurs (voir typons).