Page 2 of 2 FirstFirst 1 2
Results 11 to 18 of 18

Thread: serrure codée

  1. #11
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    845

    Default

    Bonjour,

    Tout à fait d'accord avec PieM.

    Je complète le #2, l'"expérience" des contacts et des claviers me conduit à ce résumé:

    1- Prendre en compte la détection de l'appui d'une touche
    2- Pause 100 pour l'anti rebonds parce qu'il a des mauvais contacts dans la vraie vie.
    3- Blocage par une boucle tant que la touche est appuyée parce que l'on ne peut laisser la programme faire ce qu'il veut pendant ce temps. Le résultat doit être indépendant du temps d'appui (> au temps de pause quand même)
    4- Un petit beep au relâchement parce que ça rassure.
    5- Suite du programme ( ou goto, gosub ...)

    En suivant cette procédure, il n'y a pas de surprise.

    MM

  2. #12
    Senior Member
    Join Date
    Mar 2010
    Location
    17 La Rochelle
    Posts
    307

    Default

    Bonjour,
    J'ai réécrit le programme, à essayer par Zilix. Le code correct est 3,4,5,6.
    Le programme mérite d'être améioré pour un fonctionnement réel en particulier il faut prévoir un temps d'attente maxi entre l'appui des touches mais aussi la possibilité de modifier le code en utilsant l'EEPROM. J'ai juste repris l'idée du dossier et il s'agit d'un système didactique....
    Le programme est écrit en flowchart, le basic est issu de la conversion , c'est pourquoi les labels sont complexes.
    [ATTACH]clavier flowchart[/ATTACH][ATTACH]clavier basic[/ATTACH]
    Cordialement
    Attached Files Attached Files

  3. #13
    New Member
    Join Date
    Mar 2012
    Location
    nimes
    Posts
    11

    Default

    merci pour votre aide

    je vais essayer de repondre a vous questions dans l'ordre

    1- les codes qui marchent sont liés a la premières colone. par exemple le code 7412 marche tres bien. le code 0263 pas du tout. plus j'utilise des chiffre correspondant aux colonnes 2 ou 3 et plus ça plante.

    2- il est vrai qu'il ne faut pas appuyer ni trop vite ni trop lentement même pour le code qui marche bien . une vitesse precise est necessaire et ça me dérange quelquepart.

    3- je viens de récupérer le programme réécrit par fuse mais au moment de la simulation ou de la programmation d'ailleurs j'ai un message du style "erreur de compilation [7958]"


    en simulation avec un 28x1 le programme tourne parfaitement. j'avais moi même modifier mon programme avant de poster sur le forum en utilisant la ram comme stockage des touches enfoncées. mais j'avais surement aussi trop de goto ou gosub et du coup j'avais eu aussi le même genre de message. je pense que le pauvre picaxe 18 est très limité.
    ça m'ennui de refaire un circuit electronique pour y mettre un 28x1 mais j'ai l'impression que je ne vais pas avoir le choix.

  4. #14
    Senior Member
    Join Date
    Mar 2010
    Location
    17 La Rochelle
    Posts
    307

    Default

    Oups, Comme cela fonctionne chez moi, je suppose un problème avec le Picaxe utilisé... J'ai réalisé le programme pour un 18X, après vérification, le Picaxe de la carte est un 18 (16F627A indiqué sur le circuit).
    Il doit être possible de reprendre le diagramme flowchart et de le recompiler en changeant le Picaxe (options > choisir Picaxe) avant transfert sur le Picaxe 18.
    Dans le pire des cas reprendre le flowchart à partir de clavier.jpg

  5. #15
    New Member
    Join Date
    Mar 2012
    Location
    nimes
    Posts
    11

    Default

    j'avais bien fait attention a cela.

    dans le doute j'ai repris le flowchart, bien verifié que c'est un 18 (16f627a)
    et j'ai converti en basic pour le programmer.
    mais c'est impossible, j'ai le message d'erreur que j'avais signalé 2 posts plus haut.

  6. #16
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    1,008

    Default

    Quote Originally Posted by zylix View Post
    1- les codes qui marchent sont liés a la premières colone. par exemple le code 7412 marche tres bien. le code 0263 pas du tout. plus j'utilise des chiffre correspondant aux colonnes 2 ou 3 et plus ça plante.
    Je pense qu'un bip après prise en compte de chaque pression serait à la fois une aide pour déboguer et pour l'utilisateur qui sait ainsi si il a appuyé suffisement longtemps.
    Pour le débug, faire un son différent suivant que le chiffre est valide ou pas.

    Si un appui trop long conduit également à une erreur, c'est parce que l'algorithme me semble incomplet...
    Dans le cas où vous appuyer longtemps sur un chiffre valide, le programme détecte une deuxième pression de touche ; mais comme il a incrémenté le numéro d'ordre, le code n'est plus bon !
    Ca peut constituer une "sécurité" supplémentaire (il faut taper le code dans le rythme...)
    Mais au moins dans un premier temps, il me semble judicieux d'attendre que la touche soit relachée avant de continuer.
    (pas de wait mais une boucle qu teste l'état de la touche... oui je sais : ça complique pas mal...)
    Et ça se complique encore plus si on tient compte des rebonds potentiels : il faut dans ce cas détecter que la touche reste dans un état stable pendant un temps donné puis est relâchée pendant un temps donné.
    Last edited by BESQUEUT; 03-05-2012 at 17:36.

  7. #17
    Senior Member
    Join Date
    Mar 2010
    Location
    17 La Rochelle
    Posts
    307

    Default

    Rebonjour,

    Le programme tourne en simulation sur Programming Editor V550? Le problème de compilation se situe au moment du transfert sur la platine Picaxe?

  8. #18
    New Member
    Join Date
    Mar 2012
    Location
    nimes
    Posts
    11

    Default

    j'ai la 5.43
    ça vient peut être de la.
    je vais faire la mise a jour


    je suis passé à la derniere version de prog editor 5.51
    et ça marche impeccable.

    votre algorithme marche bien mieux que l'original.

    j'ai fais quelques ajustement de vitesse pour avoir une reaction clavier plus rapide et des sons plus court.

    tel que ci dessous ça me va à merveille.

    merci fuse pour votre programme et a tous pour votre soutiens et votre aide.

    le code de fuse légèrement modifié pour une réaction plus rapide :

    Code:
    'BASIC converted from flowchart: 
    'C:\Users\zylix\Desktop\clavier.cad
    'Converted on 05/03/2012 at 21:26:06
    
    symbol val_touche = b0
    symbol nbr_appui = b1
    
    main:
    label_179:	let nbr_appui= 0
    label_149:	gosub scan
    		if nbr_appui= 1 then label_1B3
    		if nbr_appui= 2 then label_1BE
    		if nbr_appui= 3 then label_1D4
    		if nbr_appui= 4 then label_187
    		goto label_179
    
    label_187:	if val_touche= 6 then label_1E6
    		goto label_179
    
    label_1B3:	if val_touche= 3 then label_149
    		goto label_179
    
    
    label_1BE:	if val_touche= 4 then label_149
    		goto label_179
    
    
    label_1D4:	if val_touche= 5 then label_149
    		goto label_179
    
    
    label_1E6:	high 7
    		sound  6,(50,50)
    		pause 3000
    		low 7
    		goto label_179
    
    scan:	
    		let pins = 1	' %00000001
    		if pin0=1 then label_48
    		if pin1=1 then label_E8
    		if pin2=1 then label_EF
    		let pins = 2	' %00000010
    
    label_48:	let val_touche= 1
    label_15F:	high 5
    		let nbr_appui=nbr_appui+ 1
    		sound  6,(20,30)
    		pause 250
    		low 5
    		return
    
    label_E8:	let val_touche= 2
    		goto label_15F
    
    label_EF:	let val_touche= 3
    		goto label_15F
    Last edited by zylix; 03-05-2012 at 20:33.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •