​ ​ ​ ​ Touch16 et cordon de programmation.
Page 1 of 3 1 2 3 LastLast
Results 1 to 10 of 28

Thread: Touch16 et cordon de programmation.

  1. #1
    Senior Member
    Join Date
    Oct 2011
    Location
    france
    Posts
    1,228

    Default Touch16 et cordon de programmation.

    Ben, là, je bloque.

    En quelques mots, j'ai voulu, après avoir lu le très bon tuto de Michel, sur son site, concernant la commande "touch16", réaliser un clavier sans "mécanique".

    Juste un PCB, avec 10 touches gravées.

    Ben, ça marche ... Oui, mais non !

    En fait, tant que le système est connecté à l'ordi, via le câble de programmation, c'est irréprochable. En mode autonome (câble débranché), plus rien !

    Code :

    Code:
    #picaxe 18m2 
    
    Setfreq m32
    
    Let dirsB= %00000001
    Let dirsC= %11001001
    
    Symbol led=B.0
    Symbol touche1=C.2
    Symbol touche4=B.1
    Symbol touche7=B.2
    Symbol touche2=B.3
    Symbol touche5=B.4
    Symbol touche0=B.5
    Symbol touche8=B.6
    Symbol touche9=B.7
    Symbol touche6=C.1
    Symbol touche3=C.0
    
    
    
    High led
    pause 5000
    low led
    
    
    Do
    
    Touch16 [%11101001],touche1,w13
    if w13>0 then
    	High led
    	
    	Pause 1500
    Else
    	Low led
    End if
    
    loop
    Je n'ai mis que le code pour la touche 1.
    Le paramètre [config] est modifié, juste pour coller à la vitesse demandée au 18M2 (32Mhz).

    Avec l'AXE27 branché, cela fonctionne à merveille. Sans, il ne se passe rien ...

    Si quelqu'un a une idée ...

    Clavier_touch16.jpg

    Merci.
    Qui ne supporte la critique ne progressera point.

  2. #2
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,503

    Default

    Bonjour jojojo,

    Bon, ce qui est bizarre, c'est que ça fonctionne même avec le cordon.
    touche 16 renvoie un nombre fonction linéairement de la capacité qu'il mesure. Hors, même si la broche est en l'air, la capacité est faible, mais non nulle.

    Si tu as un LCD série, il est utile de lire la valeur retournée par cette commande c'est en fait le seuil de comparaison à utiliser, elle dépend beaucoup des conditions d'utilisation.
    Lorsque l'on touche la touche , cette valeur augmente. Ce que l'on peut faire, c'est mémoriser cette valeur "à vide" à la mise sous tension, ajouter une marge et fixer un seuil pour le test

    Après, avec ou sans cordon, les conditions électrostatiques changent, l'équivalent du cordon usb est de relier le 0v du circuit à une prise de terre. Pour l'éviter, il est préférable de configurer les touches sous forme de peignes imbriqués avec le 0v sous l'isolant pour provoquer des variations de capacité nettes au toucher.

    A suivre
    MM

  3. #3
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,794

    Default

    Quote Originally Posted by MGU View Post
    Si tu as un LCD série, il est utile de lire la valeur retournée par cette commande c'est en fait le seuil de comparaison à utiliser, elle dépend beaucoup des conditions d'utilisation.
    Lorsque l'on touche la touche , cette valeur augmente. Ce que l'on peut faire, c'est mémoriser cette valeur "à vide" à la mise sous tension, ajouter une marge et fixer un seuil pour le test
    Tout à fait ; et je dirais même plus : il est également utile de connaitre la variation de capacité quand on a un doigt sur la touche, ce qui permet d'avoir un ordre de grandeur de la "marge" à prendre.
    There are 10 types of people in the world: those who understand binary, and those who don't.

  4. #4
    Senior Member
    Join Date
    Oct 2011
    Location
    france
    Posts
    1,228

    Default

    Hum... Bon.

    Le problème est cerné.
    Mais pas résolu.

    Pour fonctionner, cette commande DOIT disposer d'une référence à la terre (moins alim).

    Donc, bien-sûr, avec la masse du cordon de prog, ça baigne.
    Avec mon alim de labo, ça baigne.

    Mais, en autonome, sur pile, rien a faire.

    Chuis vert !
    Qui ne supporte la critique ne progressera point.

  5. #5
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,794

    Default

    Quote Originally Posted by jojojo View Post
    Hum... Bon. Le problème est cerné. Mais pas résolu.

    Pour fonctionner, cette commande DOIT disposer d'une référence à la terre (moins alim).

    Donc, bien-sûr, avec la masse du cordon de prog, ça baigne.
    Avec mon alim de labo, ça baigne.
    Mais, en autonome, sur pile, rien a faire.
    Chuis vert !
    Bizarre...
    Quelles sont les valeurs lues sans et avec le doigt en absence de mise à la terre ?
    En cas d'absence de LCD, (et de port série opto-isolé) ces valeurs peuvent être écrites en EEPROM, puis lues plus tard via USB.
    There are 10 types of people in the world: those who understand binary, and those who don't.

  6. #6
    Senior Member
    Join Date
    Oct 2011
    Location
    france
    Posts
    1,228

    Default

    Bizarre ...

    Si je fais

    Do
    Touch16 [%11101001],touche1,w13
    sertxd(#w13)
    loop


    w13 reste obstinément à 0 ...
    Qui ne supporte la critique ne progressera point.

  7. #7
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,503

    Default

    Bonjour,

    Oui, bizarre...
    Faudrait refaire un essai par ex à 4MHz et sans modifier la config standard (sans les crochets), on doit dans tous les cas lire quelque chose.

    "touch" mesure une capacité, mais laquelle ? Elle est normalement entre la broche "touch" et la broche 0v. Si la broche touch est seulement reliée à une plaque, cette capacité mesurée est entre la plaque, l'isolant et le doigt. Le potentiel du doigt est très aléatoire, fonction de l'environnement, (semelles, moquette, humidité etc) et sur pile, c'est pire, les deux potentiels sont aléatoires.
    Il faut aider un peu le pauvre µC, en mettant par ex les deux pôles du condensateur (touch et 0v) côte à côte, il y aura une capacité résiduelle faible. Approcher un doigt derrière un isolant modifie le diélectrique entre les deux pôles, et donc la capacité et le système doit fonctionner.

    Mais si w13 reste à 0, ça ne fonctionnera pas.

    MM

  8. #8
    Senior Member
    Join Date
    Sep 2011
    Location
    Montpellier (FRANCE)
    Posts
    2,794

    Default

    Quote Originally Posted by jojojo View Post
    Bizarre ...

    Si je fais

    Do
    Touch16 [%11101001],touche1,w13
    sertxd(#w13)
    loop


    w13 reste obstinément à 0 ...
    Mais là on a bien une terre ! Et vous dites en #1 que dans ce cas ça marche ?
    Vous devez voir des tas de zéro apparaître. C'est bien ça ?
    Il faudrait à minima ajouter un espace, genre sertxd(#w13," ")
    There are 10 types of people in the world: those who understand binary, and those who don't.

  9. #9
    Senior Member
    Join Date
    Oct 2011
    Location
    france
    Posts
    1,228

    Default

    Pour le tas de zéros, oui !
    L'espace me donne juste un tas de zéros, séparés par ... Un espace.

    Si je vire le sertxd, et reviens en config #1, je confirme, avec une terre, ça fonctionne.

    Pour vous faire une idée, du truc, avec les touches :


    Bon, ben, non.
    On ne peut plus insérer d'images ? Chiant, ça !
    Qui ne supporte la critique ne progressera point.

  10. #10
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,503

    Default

    Quote Originally Posted by jojojo View Post
    Bon, ben, non.
    On ne peut plus insérer d'images ? Chiant, ça !
    Ben si,on peut, l’icône image est toujours là.

    Une petite photo, ça serait bien

    MM

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
  •