Une fois le pilote installé, W10 le place dans un répertoire spécial. A chaque branchement du périphérique, il recharge le pilote. Note ce qui a été dit sur un éventuel remplacement pour RESTAURER ce pilote.
J'ai un typon sur carte à pastilles (env 50x50 mm) sous le coude, fais le tien si tu veux.
Nouveau schéma:
Nouveau code, en deux fois:
Code:;serrure4digeco MM 17/01/21 ;clavier matriciel 12 ou 16 touches ;picaxe 20M2 => le n° de colonne clavier= n° de brohe µC ;Entrées: ;ILS ou poussoir sur C.6 ;potar tempo sur C.4 ;clavier sur B.0,B.1,B.2,B.3 pour un 16 touches ;Sorties: ;buzzer sur C.0 ;relais sur C.1 #picaxe 20M2 symbol pousC=pinC.6 'cotact ILS NouveauCode symbol pousT=pinC.5 symbol relais=pinC.1 symbol ledB=pinC.4 symbol buz=pinC.0 symbol potar =C.7 symbol rsbit=bit0 symbol car=b1 symbol lig=b2 symbol col=b3 symbol dat=b4 symbol cpt=b5 symbol rang=b6 'compteur rang décodage symbol ch0=b7 symbol ch1=b8 symbol ch2=b9 symbol ch3=b10 symbol th0=b11 symbol th1=b12 symbol th2=b13 symbol th3=b14 symbol tempo=w13 'compteur attente setfreq M16 ;horloge à 16MHz (pause 1000=1s) dirsB=%1110000 ; dirsC=%10011 pullup %111000000011111 ;pullup sur B0,à B3 ,C.6,C.5,C.4 hi2csetup i2cmaster,%01001110, i2cslow_32, i2cbyte ; Initialisation LCD 4 bits********* for cpt=0 to 5 lookup cpt,($33,$32,$28,$c,$6,$01),car gosub EnvoiByteCommInit next pause 100 ;temps init du LCD ;******************************************* car=1 : gosub EnvoiByteComm ;effacement LCD buz=1:pause 200:buz=0 'signal passage init read 0,ch0,ch1,ch2,ch3,tempo 'lecture du code en mémoire EEPROM ledB=0 rang=0 'init rang time=0 ;init compteur attente ;******************************************************** car=128 : gosub EnvoiByteComm 'curseur en 130 ligne 1 for cpt=0 to 19 lookup cpt,(" ENTREZ VOTRE CODE "),car GOSUB EnvoiByteData next car=200 : gosub EnvoiByteComm 'curseur ligne2 do ;boucle principale if pousC=0 then nouvcode 'Si appui sur le pousoir, on entre un nouveau code if pousT=0 then regtempo if time >9 and rang <>0 then buz=1:pause 200:buz=0 'touche pressée reset endif for col=0 to 3 ;n° de broche (B.0 à B.3)=> 4 colonnes readadc col,lig ;col est le n° de colonne, lig donne la valeur ligne if lig <= 225 then gosub clav ;on a appuyé! recherche valeur ligne if rang=0 then th0=car elseif rang=1 then th1=car elseif rang=2 then th2=car elseif rang=3 then th3=car endif gosub EnvoiByteData inc rang ;on avance dans la séquence if rang>=4 then ;fin de séquence if th0=ch0 and th1=ch1 and th2=ch2 and th3=ch3 then sortie rang=0 buz=1:pause 100:buz=0:pause 100:buz=1:pause 100:buz=0 car=150:gosub EnvoiByteComm ;position curseur for cpt=0 to 15 lookup cpt,("C'est pas le bon"),car GOSUB EnvoiByteData next buz=1:pause 100:buz=0:pause 100:buz=1:pause 100:buz=0 'signal passage pause 8000 reset endif endif next loop ;*************************************************************** clav: select case lig ;sélection ft valeur ligne case 175 to 225 ; pour 4 Volt lookup col,("123A"),car ;ligne 4 case 125 to 174 ; pour 3 Volts lookup col,("456B"),car ;ligne 3 case 75 to 124 ; pour 2 Volts lookup col,("789C"),car ;ligne 2 case 25 to 74 ; pour 1 Volts lookup col,("*0#D"),car ;ligne 1 endselect do readadc col,lig ;attente relâchement touche loop while lig <= 225 buz=1:pause 200:buz=0 'touche pressée time=0 return ;****************************************************** sortie: ;activation gache relais=1 ledB=1 buz=1:pause 1000:buz=0:pause 100:buz=1:pause 1000:buz=0 for cpt= tempo to 0 step -1 car=157: gosub EnvoiByteComm lookup cpt, ("0123456789"),car GOSUB EnvoiByteData pause 4000 ;=1s pour M16 next ledB=0 car=1: gosub EnvoiByteComm ;effacement LCD car=131: gosub EnvoiByteComm for cpt=0 to 12 lookup cpt, ("Arret complet"),car GOSUB EnvoiByteData next car=196: gosub EnvoiByteComm for cpt=0 to 10 lookup cpt, ("appuyez sur"),car GOSUB EnvoiByteData next car=157: gosub EnvoiByteComm car="#" GOSUB EnvoiByteData car=217: gosub EnvoiByteComm for cpt=0 to 9 lookup cpt, ("du clavier"),car GOSUB EnvoiByteData next do readadc B.2,lig loop while lig > 75 ;appui sur # relais=0 reset
-----