Show Posts
Pages: 1 [2] 3 4 ... 12
16  International / Français / Re: [Interruptions] Filtrage necessaire ? on: March 04, 2012, 12:57:30 pm
Merci etheriel pour ce petit rapport d'expérience.

Quote
Il y a donc une "poignée" d'impulsions qui manquent

Je ne comprend pas très bien. Tu dis que le compteur vélo te donne 2,15 km alors que l'Arduino t'en donne 2,16. D'après ce que je comprends, l'arduino t'a donc donné plus d'impulsions que le compteur vélo puisqu'il comptabilise une plus longue distance, c'est-à-dire plus de tours de roue. Pourquoi dis-tu alors qu'il y a une poignée d'impulsions qui manquent ?
17  International / Français / Re: [Interruptions] Filtrage necessaire ? on: March 04, 2012, 04:59:25 am
Quote
le schéma n'y a peut-être rien à voir mais ça peut être le micro qui capte des émissions électromagnétiques produites par la lampe halogène
Je me demande si ce n'est pas plutôt du transfo de la lampe que je dois me protéger.
Enfin, pour vérifier si le schéma est en cause, j'ai refait le schéma avec le CD40106.
Eh bien, le schéma n'y est pour rien. J'obtiens les mêmes rebonds lorsque j'actionne l'interrupteur de la lampe.

J'ai essayé de mettre les breadboards du montage dans une vieille boîte à biscuit raccordée à la masse par une pince. Je ferme la boîte, j'actionne l'interrupteur, je rouvre la boîte ... et l'atmega a de nouveau comptabilisé des rebonds (mais la lampe était toujours à 15 cm de la boîte).
18  International / Français / Re: [Interruptions] Filtrage necessaire ? on: March 03, 2012, 04:19:18 pm
Je voudrais ajouter une constatation importantepour le dernier schéma que j'ai proposé.

A une quinzaine de cm de l'atmega, il y a une lampe de bureau posée sur la table. C'est une lampe halogène avec un transfo 12V dans le pied. Lorsque j'actionne l'interrupteur de la lampe, cela occasionne de multiples rebonds que l'atmega comptabilise.

J'ai essayé le branchement inverse, c'est-à-dire avec la résistance entre le condensateur et le +5V (et la liaison au µC raccordée entre la résistance et le condensateur). C'est pareil, l'interrupteur de la lampe déclenche de multiples rebonds.

Si je place la lampe à 50 cm de l'atmega, c'est encore la même chose.

Donc, le système est très sensible aux parasites de la tension secteur. Il vaut mieux le savoir.
19  International / Tutoriels et cours / Re: [Résolu] Intégration du langage Arduino dans AVR Studio 5 on: March 02, 2012, 11:02:34 am
Tu as raison, Skywodd, j'ai refait deux fois "check for update" car je ne trouvais pas à lancer un upgrade. Finalement, je me suis résolu à recharger tout. Mais il faut se réenregistrer. Ensuite, ils disent qu'ils envoient un mail...  Je l'attend toujours depuis hier soir....
20  International / Tutoriels et cours / Re: [Résolu] Intégration du langage Arduino dans AVR Studio 5 on: March 01, 2012, 11:58:36 am
Hi,
with the AVR Studio release 5.1, Atmel has corrected the problem of the linker. No longer required changing the makefile to move the options -Wl,-lcore  -Wl,-lm after $(LIBS).

greetings
QP

Thank you so much, QuercusPetraea.
That's a great news.

I translate your message in French.

Pour les francophones: QuercusPetraea nous avertit qu'avec la nouvelle version de Studio 5.1, Atmel a corrigé le problème du LINKER. Il n'est désormais plus nécessaire de changer le makefile pour déplacer les options -Wl,-lcore  -Wl,-lm à la fin de la ligne.

Une belle épine hors du pied.
21  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 28, 2012, 03:35:17 am
Hello etheriel
Quote
Je vous tiens au courant, et potentiellement je reviendrai avec d'autres questions smiley-wink

Tu es le bienvenu pour d'autres questions. En revanche, ce serait sympa de nous faire part de tes observations en comparant les 2 roues.
22  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 27, 2012, 02:37:14 pm
Hello etheriel,

Le schéma de l'expérience que je viens de réaliser est extrêmement simple :


J'ai remplacé le bouton poussoir par les deux fils qui viennent de ta roue. Dans cette configuration, c'est le front montant que tu dois surveiller car lorsque les deux fils font contact, la tension appliquée au µC passe brusquement de 0V à +5V.

Tu peux également mettre la résistance entre le condensateur et le +5V. Le fil qui va au µC doit toujours provenir de la jonction entre la résistance et le condensateur. Dans ce cas, c'est le front descendant que tu dois prendre en compte.

Ce système composé d'une résistance et d'un condensateur présente quand même un plus grand risque d'erreur que les systèmes plus complexes.
23  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 27, 2012, 10:40:22 am
Quote
Pour mon expérience personnelle avec un poussoir référence :
http://www.gotronic.fr/cat-boutons-poussoirs-513.htm?&pagenumber=3  Poussoir D6
J'ai supprimé tout effet de rebond avec juste la résistance de tirage (dîte "pull up") en entrée micro et un condensateur de 100nF en // sur les broches du poussoir.
C'était osé de se limiter à un schéma aussi simpliste mais j'avais la flemme de câbler et j'ai tenté pour voir et ça a marché sans problème

Je viens d'essayer. ça marche !

J'ai fait 256 essais consécutifs avec une résistance pull-down de 10K et un condensateur céramique de 100nF en parallèle avec le bouton. Liaison au µC par un câble de 10 cm ==> pas un seul rebond.
Merci 68tjs. Cela va simplifier ma carte de développement et me faire gagner de la place.

P.S. Cela ne me fera pas gagner des sous car j'avais déjà acheté les CD40106 !
24  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 27, 2012, 01:24:33 am
Hello 68tjs

J'ai fait quelques petits tests avec un bouton poussoir du type tact switch comme pour le reset de l'Arduino. Le bouton est raccordé d'un côté à GND et de l'autre côté à +5V à travers une résistance de 10K. Le point commun entre le bouton et la résistance est raccordé à la pin PB0 d'un Atmega1284, ce qui correspond à l'entrée du Timer/compteur 0. Le quartz est de 16 MHz. L'état du compteur est affiché par 8 leds sur le port A. Le programme est écrit en assembleur.

Pour l'étude des rebonds à l'appui du bouton, je compte les fronts montants sur 40 tests consécutifs:
0,1,1,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0

Pour les rebonds au relâchement du bouton, je compte les fronts descendants:
4,1,3,2,3,3,0,0,8,4,0,2,1,1,2,2,16,1,1,0,2,0,1,0,1,0,66,1,0,7,2,0,0,2,4,2,10,3,0,1

Je me suis demandé si cela changerait quelque chose de mettre la résistance entre le bouton et GND et de raccorder le point commun au µC.

Dans ce cas, à l'appui du bouton, ce sont les fronts descendants qui constituent des rebonds:
0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0

Au relâchement, les rebonds sont des fronts montants :
0,0,4,2,13,1,28,1,0,1,0,0,0,0,1,1,1,0,1,0,79,0,0,1,1,0,0,1,0,0,0,0,0,5,0,0,1,1,0,0

Ma conclusion ne concerne évidemment que mon bouton poussoir. Celui-ci montre des rebonds plus nombreux au relâchement sur 80 tests.

J'ai oublié de mentionner que le schéma que j'ai présenté provient du site suivant : https://sites.google.com/site/kfodorprojects/home/electronics-projects-1/hex-switch-debouncer-module, lui-même faisant référence à un article détaillé : http://www.ganssle.com/debouncing.pdf
25  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 26, 2012, 02:56:50 pm
Hello 68tjs,

C'est vrai, on peut faire un Trigger avec un LM393 ainsi qu'avec beaucoup d'autres amplificateurs opérationnels. Je n'ai jamais essayé le LM393 mais j'ai fait des essais avec un LM324 en mono-alimentation 5V et cela marche aussi bien qu'avec un Trigger "officiel" comme le CD40106. Personnellement, j'ai jeté mon dévolu sur le 40106 car il comporte 6 Triggers et avec 2 chips, je peux traiter jusqu'à 12 boutons ou interrupteurs.

Pour la valeur des résistances, tu plaides pour que R2 soit nettement inférieur à R1. Et c'est vrai que dans ce cas, lorsqu'on appuie sur le bouton, la tension chute très rapidement à zéro.
Cependant, les rebonds se produisent de la même manière quand tu relâches le bouton. Autrement dit, lorsque tu relâches le bouton, la tension commence à remonter vers le +5V mais les rebonds se produisent dans le sens inverse de l'appui : les rebonds sont formés par des micro-contacts qui se produisent encore avec le 0V. Comme R2 est faible, la rechute de tension est brutale. Si jamais le tension du condensateur vient de dépasser le seuil supérieur (qui fait passer la sortie à 1), cette brutale chute de tension risque éventuellement de faire repasser l'autre seuil à la baisse.
Lorsque R1 et R2 sont élevés, ils empêchent les variations brutales de la tension du condensateur, que ce soit à la hausse ou à la baisse et donc on se tient loin des zones à risque. Maintenant, je suis bien conscient que la marge est très large avec les valeurs que j'indique. J'ai fait des expériences avec diverses valeurs de résistances. Je suis descendu jusqu'à R1 = R2 = 1,8K et même ces valeurs ne m'ont donné aucun rebond mais il est clair que plus on descend, plus on s'approche de la possibilité d'un vilain rebond qui parvient tout juste à faire rebasculer le trigger.

Les valeurs du schéma que je propose retardent le signal de sortie de 20 à 30 ms, aussi bien pour le front montant que pour le front descendant, de sorte que la durée totale du signal de sortie est à peu près équivalent à la durée du signal entrant.
Si ce retard est un problème pour le programme, on peut réduire la valeur des résistances.

Je voudrais ajouter une information pour etheriel. Au lieu de capter la réponse par une interruption externe, il serait préférable de la capter par un timer configuré en compteur externe. En effet, une interruption provoque chaque fois un appel à une ISR (interrupt service routine) et cela fait perdre pas mal de cycles à l'Atmega. Un compteur s'incrémente automatiquement à chaque impulsion d'entrée, sans intervention logicielle, de sorte que l'Arduino peut traiter une fréquence d'impulsion plus élevée sans perte de données. Le compteur ne produit une interruption qu'à chaque overflow.
26  International / Français / Re: [Interruptions] Filtrage necessaire ? on: February 25, 2012, 05:46:34 pm
Hello etheriel,

Je viens justement de passer au moins 15 jours à discuter par mail avec un ami électronicien et à expérimenter concrètement des systèmes hardware anti-rebond en vue de fabriquer une carte de développement pour les AVR.

Ton problème est typiquement celui des rebonds produits par tout bouton-poussoir, interrupteur, etc...

Voici ci-dessous le montage qui m'a donné entière satisfaction. Avec un tel système il n'y a strictement plus moyen de produire le moindre rebond. Une pression (rapide ou lente) sur le bouton ne donne qu'une seule impulsion en sortie. Cette impulsion peut alors être détectée par une interruption externe (INT0 ou autre) sans aucun ajout de programmation d'attente.

 Le système se compose de 2 résistances, d'une diode et d'un condensateur de 100nF (un petit condensateur céramique. Ceci constitue un filtre RC déjà pas mal efficace. Ce filtre est suivi d'une porte du CD40106 qui est un chip comportant 8 portes qui sont des Triggers de Schmitt. Ces petites bêtes ont l'immense avantage d'avoir deux seuils de basculement différents, ce qui bloque tout rebond qui parviendrait encore à traverser le filtre. La sortie du Trigger se raccorde à l'Atmega à travers une résistance de 330 Ohms.

Si tu as des questions, je t'écoute.
27  International / Français / Re: Reprogrammer le firmware d'un disque dur avec un cable usb on: February 23, 2012, 02:34:00 pm
Hello Themails7,

Je suis très content que ton module fonctionne.

La Pin GND doit obligatoirement être raccordé au GND de ton circuit.
Les Pins 3,3V et 5V ne servent pas à alimenter le module. Il est alimenté par l'USB. Ces pins peuvent alimenter ton circuit à toi, s'il n'est pas trop gourmand.
28  International / Français / Re: Reprogrammer le firmware d'un disque dur avec un cable usb on: February 23, 2012, 02:51:49 am
Hello Themails7,

J'ai lu to MP. Sorry, ton message avait été déplacé et je l'avais raté.

Pour ton problème, je n'ai pas de solution miracle.
Es-tu certain de ta connexion Rx-Tx pour le test de loop-back ? Si oui, il faut tester tous les autres éléments de la chaîne.
  • Vérifier dans le Gestionnaire de Périphériques qu'un nouveau port COM est bien créé lorsque tu branches le module
  • Vérifier que ton logiciel de Terminal est bien connecté sur ce port COM
  • Pour ma part, j'utilise "Br@y's Terminal" https://sites.google.com/site/terminalbpp/
  • Vérifier ton câble de liaison USB en testant un autre périphérique USB avec ce câble
  • Si cela ne marche toujours pas, il y a des chances que le module soit en cause
  • Tout n'est pas encore perdu, mais çà devient plus difficile. Repère sur la datasheet du CP2102 les pin Rx et Tx et tâche de faire le loop-back à ce niveau
  • Si çà ne va pas, c'est vraiment la puce qui est foutue. Il n'y a plus qu'à renvoyer le module ou  en acheter un autre

Voilà du travail en perspective, en espérant que tu trouves rapidement le grain de sable dans le rouage.
29  International / Tutoriels et cours / Re: [Résolu] Intégration du langage Arduino dans AVR Studio 5 on: January 24, 2012, 02:18:19 pm
Voici la comparaison de la compilation d'un programme avec Studio 5 (à gauche) et l'IDE Arduino (à droite). Le programme utilise la librairie OneWire et la transmission série pour afficher dans le terminal la T° d'une sonde DS18b20.



On voit donc (si on a des yeux comme des loupes) que le programme fait 5760 bytes dans Studio et 5838 bytes dans l'IDE.
Conclusion:
  • 1° pas de grosse différence entre l'IDE et Studio
  • 2° le Serial.begin n'entraîne pas d'augmentation de 10K

J'imagine qu'une telle augmentation signifie que toutes les fonctions de la librairie sont compilées en fichier .hex

En supprimant tous les appels à Serial, la compilation dans Studio donne 2344 bytes. Autrement dit, les appels à Serial me coûtent 5760 - 2344 = 3416 bytes.
30  International / Tutoriels et cours / Re: [Résolu] Intégration du langage Arduino dans AVR Studio 5 on: January 23, 2012, 03:30:08 pm
Désolé, je viens de rentrer d'une semaine au soleil du midi.

Demain, j'essayerai une comparaison de taille du fichier hex avec l'ide et avec Studio.

Merci à Mitchbzh pour le rapport de l'essai avec l'IDE 1.0
Pages: 1 [2] 3 4 ... 12