Tutoriel Arduino: Capteurs tactiles capacitifs

Bonjour à tous!

Cet instructable est un tutoriel qui vous guidera sur l'utilisation des capteurs tactiles capacitifs avec Arduino. Un capteur capacitif est une sorte de capteur tactile, qui nécessite peu ou pas de force pour s'activer.

Dans cet Instructable sur la détection tactile capacitive, je vais vous montrer:

  • Fonctionnement des capteurs capacitifs
  • Comment les utiliser avec un Arduino
  • Comment les implémenter dans 3 projets Arduino, qui sont inclus dans cet Instructable
  • Comment utiliser la bibliothèque CapSense - qui est utilisée dans les deux premiers projets. J'ai également inclus le code de démonstration et son explication pour la bibliothèque CapSense ...

Les compétences requises pour ces projets sont minimales:

  • Connaissance de base de l'électronique et de l'arduino.
  • Soudage (facultatif)

Commençons donc par savoir d'abord en quoi consiste la détection tactile capacitive!

Étape 1: À propos de la bibliothèque CapSense et de la détection capacitive ...

Pour la plupart des projets liés à la détection capacitive, j'ai utilisé la bibliothèque CapSense. Le terrain de jeu Arduino a une bonne explication de la bibliothèque Capsense. Cependant, si vous êtes novice en Arduino, je suis sûr que vous ne comprendrez que la moitié de ce qui y est écrit. J'ai donc ici une explication simplifiée ...

Détection capacitive:

La détection tactile capacitive est un moyen de détection tactile humain, qui nécessite peu ou pas de force pour s'activer. Il peut être utilisé pour détecter le contact humain à travers plus d'un quart de pouce de plastique, bois, céramique ou autre matériau isolant (pas n'importe quel type de métal), permettant au capteur d'être complètement dissimulé visuellement.

Pourquoi toucher capacitif?

  • Chaque capteur tactile ne nécessite qu'un seul fil connecté.
  • Peut être dissimulé sous n'importe quel matériau non métallique.
  • Peut être facilement utilisé à la place d'un bouton.
  • Peut détecter une main à quelques centimètres de distance, si nécessaire.
  • Très bon marché.

Comment ça marche?

La plaque du capteur et votre corps forment un condensateur. Nous savons qu'un condensateur stocke la charge. Plus sa capacité est élevée, plus il peut stocker de charge.

La capacité de ce capteur tactile capacitif dépend de la proximité de votre main avec la plaque.

Que fait l'Arduino?

Fondamentalement, l'arduino mesure le temps que le condensateur (c'est-à-dire le capteur tactile) prend pour se charger, ce qui lui donne une estimation de la capacité.

La capacité peut être très petite, néanmoins l'Arduino la mesure avec précision.

Une façon d'utiliser le toucher capacitif dans un projet consiste à utiliser la bibliothèque CapSense. Pour la bibliothèque Capsense, l'arduino utilise une broche d'envoi et autant de broches de réception que nécessaire. Une broche de réception est connectée à la broche d'envoi via une résistance de valeur moyenne à élevée.

Voici quelques directives pour les résistances, mais assurez-vous d'expérimenter pour obtenir la réponse souhaitée.

  • Utilisez une résistance de 1 mégohm (ou moins peut-être) pour que le toucher absolu soit activé.
  • Avec une résistance de 10 mégohms, le capteur commencera à répondre à 4 à 6 pouces de distance.
  • Avec une résistance de 40 mégohms, le capteur commencera à répondre de 12 à 24 pouces (en fonction de la taille de la feuille). Les tailles de résistance communes se terminent généralement à 10 mégohms, vous devrez donc peut-être souder quatre résistances de 10 mégohms de bout en bout.Un compromis avec les résistances plus grandes est que la sensibilité accrue du capteur signifie qu'il est plus lent.

* Ces directives de valeur de résistance sont uniquement destinées à l'utilisation de la bibliothèque CapSense. Le dernier projet n'utilise pas cette bibliothèque.

Résumé: Les capteurs tactiles capacitifs nécessitent peu ou pas de force pour s'activer. La bibliothèque CapSense peut être utilisée pour créer plusieurs capteurs tactiles avec Arduino.

Étape 2: Code de démonstration de la bibliothèque CapSense ...

Voici une explication du code de démonstration de la bibliothèque CapSense.

 CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); 

Vous pouvez remplacer «cs_4_2» par tout autre nom. «4» est la broche d'envoi, «2» est la broche de réception.

 void setup() { 
Le programme d'installation ne s'exécute qu'une seule fois.
 cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // désactiver l'autocalibrate sur le canal 1 - comme exemple 
 Serial.begin (9600);} 
Commence la communication série à 9600 bauds ...
 total long1 = cs_4_2.capacitiveSensor (30); 

L'instruction ci-dessus est déclarée dans 'void loop ()'. Lorsque vous utilisez une résistance 1M, total1 sera inférieur ou égal à environ dix. Lorsqu'il est touché, il devient plus de 60 ...

 Serial.println (total1); 

Envoie la valeur de total1 à la fenêtre Série de l'ordinateur ...

Les parties importantes du code sont expliquées. Ce n'est pas le code complet; le plein est dans la pièce jointe ci-dessous. Sautez l'étape si vous pensez que le code est facile.

Pièces jointes

  • CapacitiveSensorSketch.pde Télécharger

Étape 3: Projets avec Capacitive Touch et Arduino ...

Maintenant que vous avez une idée de ce qu'est le toucher capacitif (s'il vous arrivait de lire l'étape précédente), voyons ce que nous pouvons en faire. Dans cet instructable, je vais vous montrer 3 projets intégrant le toucher capacitif.

Touchez la lumière actionnée:

Un projet de base qui vous aidera à saisir les idées du toucher capacitif et à l'implémenter dans d'autres projets. L'utilisation d'un relais et de la soudure est facultative, mais obligatoire si vous souhaitez faire fonctionner des appareils à haute tension.

Commutateur de capteur de proximité:

Le fait d'approcher votre main de cet interrupteur allumera ou éteindra une led. L'ajout d'un relais et la soudure lui permettront de faire fonctionner des appareils à haute tension, bien que cela soit facultatif.

Traqueur de main sans contact 3D:

Suit la position de votre main en 3 dimensions. Peut être utilisé pour d'innombrables applications, mais j'ai inclus des projets simples et faciles à pirater, vous pouvez donc les utiliser à votre guise. Aucune soudure requise .

Étape 4: Lumière contrôlée par le toucher: - Matériaux requis ...

Il s'agit d'un projet très bon marché et facile. Il donne une bonne idée du fonctionnement du toucher capacitif et de la façon dont on peut l'implémenter dans plusieurs autres applications. Ce projet simple utilise un capteur tactile capacitif, qui allume et éteint une LED, ou même des appareils à haute tension, en touchant un morceau de papier d'aluminium.

Temps : <1 heure, +1 heure pour le relais de soudage (facultatif)

Coût : quelques centimes, ~ 1 $ pour un relais (hors Arduino)

Difficulté : très très facile.

Matériaux : (Disponible sur RadioShack)

  • Carte Arduino
  • Résistance de 500K à 1M
  • Résistance 220ohm
  • LED de toute couleur
  • Déjouer
  • Cavalier
  • Relais (facultatif)
  • Fiche secteur (mâle et femelle) (en option)

Étape 5: Touchez la lumière contrôlée: - le circuit

Le circuit est simple. Je veux dire si simple que vous n'aurez même pas besoin d'une planche à pain!

Notez que j'ai utilisé un Arduino Mega, car en ce moment c'est le seul que j'ai. Si vous utilisez un Uno, connectez la LED à toute autre broche pratique. Cependant, vous devez apporter une petite modification au code ultérieurement. Voir l'étape suivante.

Suivez les photos du circuit.

  1. J'ai connecté la résistance led et 220ohm en série sur la broche 42 et la masse.
  2. J'ai utilisé la broche 4 comme broche d'envoi et la broche 2 comme broche de réception sur l'Arduino.
  3. Il y a une résistance 1M entre ces broches. La feuille est connectée à la broche de réception, c'est-à-dire la broche 2.

Étape 6: Lumière contrôlée par le toucher: - Code Arduino ...

Passons maintenant à la partie programmation. Le code utilise la bibliothèque CapSense (à télécharger ici), qui prend en charge la détection capacitive. Si vous n'êtes pas familier avec le processus d'installation d'une bibliothèque, consultez ce tutoriel génial:

Installer une bibliothèque Arduino - Learn.SFE

Le code est simple et facile à comprendre. Copiez simplement ce code et collez-le dans une fenêtre Arduino vierge. Changez la broche led si nécessaire. Téléchargez ensuite ...

 #include int led = 42; // changer '42' en n'importe quelle broche désirée ... long time = 0; état int = HIGH; booléen oui; booléen précédent = faux; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Résistance 10M entre les broches 4 et 2, la broche 2 est la broche du capteur, ajoutez un fil et / ou une feuille si vous le souhaitez // Pour ajouter plus de capteurs ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Résistance 10M entre les broches 4 et 6, la broche 6 est la broche du capteur, ajoutez un fil et / ou une feuille // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Résistance 10M entre les broches 4 et 8, la broche 8 est la broche du capteur, ajoutez un fil et / ou déjouez la configuration vide () {cs_4_2. set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrer le capteur ... pinMode (led, OUTPUT); } boucle vide () {total long1 = cs_4_2. capteur capacitif (30); if (total1> 60) {yes = true;} else {yes = false;} // pour basculer l'état d'état if (yes == true && previous == false && millis () - time> debounce) {if ( état == BAS) {état = HAUT; } else state = LOW; temps = millis (); } digitalWrite (led, état); précédent = oui; Série . println (millis () -time); retard (10); } 

Étape 7: Touchez la lumière contrôlée: - Ajout d'un relais ...

Vous avez donc une LED tactile. Et alors? Vous pouvez rendre le projet un peu plus utile en contrôlant les appareils comme les lumières et les ventilateurs au toucher. Et heureusement, il vous suffit d'ajouter un relais à l'Arduino pour ce faire.

Qu'est-ce qu'un relais?

Un relais est un interrupteur à commande électrique. Habituellement, les relais utilisent un électro-aimant pour actionner mécaniquement un interrupteur isolé. Sa fonction principale est d'utiliser une petite tension pour allumer / éteindre une haute tension ou un courant élevé séparément. Il est pratique pour contrôler les appareils principaux avec de petits circuits ou des microcontrôleurs.

Pour en savoir plus sur les relais, consultez ce grand Instructable - Comment les commutateurs électroniques fonctionnent pour Noobs: relais et transistors

Le circuit:

L'Arduino ne peut pas fournir suffisamment de courant pour faire fonctionner un relais, vous auriez donc besoin d'un transistor BC547. Le transistor amplifie le courant de l'Arduino pour activer le relais. Pour vous aider à comprendre, consultez cette vidéo utile - Comment contrôler les relais avec Arduino

J'ai fourni le schéma de circuit du transistor et du relais. Il existe également un diagramme de planche à pain Fritzing, pour vous aider à comprendre les connexions.

Après cela, préparez la fiche mâle comme indiqué dans les images ci-dessus ...

Étape 8: Touchez la lumière contrôlée: - Fabrication d'une boîte pour le relais ...

J'ai utilisé une boîte en plastique de 5 * 2 * 2 pouces pour loger le relais et les fils. Il est peut-être un peu trop gros, mais assez bon pour la démonstration. Mon intention principale était de garder les fils haute tension séparés de l'Arduino et de mon corps.

Préparez la boîte:

Découpez un trou carré dans le couvercle de la boîte pour l'adapter à la fiche femelle. Faites des trous pour les vis, puis installez le bouchon. Collez le relais au fond de la boîte.

Créer des liens:

Le circuit impliquant la haute tension est très simple. Suivez les photos et leurs étiquettes, ou procédez comme suit:

  1. Reliez le COM à une borne de l'alimentation secteur.
  2. Reliez NON à une borne de l'appareil.
  3. L'autre borne du secteur à la 2ème borne de l'appareil.

Étape 9: Lumière contrôlée par le toucher: - Ajoutez le capteur tactile et l'Arduino ...

Collez un morceau de papier d'aluminium sur la boîte avec du ruban adhésif comme indiqué ci-dessus. Ceci est connecté à la broche de réception de l'Arduino (broche 2 dans mon cas). La "broche led", ou broche 42 dans mon cas, est connectée au transistor.

Étape 10: Touchez la lumière contrôlée: - Terminé!

Branchez la fiche mâle sur la prise secteur et branchez l'appareil que vous souhaitez contrôler sur le boîtier. Mettez votre Arduino sous tension avec une batterie.

Voilà, votre propre lumière tactile! Vous pouvez utiliser plus de relais et de capteurs tactiles pour contrôler plus d'appareils, ou l'intégrer dans un système domotique. Pour l'instant je l'utilise pour contrôler ma lampe de bureau, et ça marche plutôt bien.

Voici une vidéo montrant le fonctionnement de l'interrupteur tactile ...

J'ai aussi une vidéo montrant le fonctionnement du prototype ...

J'espère que cela ne vous dérange pas à la fin: P .....

Étape 11: Interrupteur d'éclairage de détection de proximité

En rapprochant votre main de l'interrupteur, ou en agitant simplement la main dessus, vous allumerez ou éteindrez une lumière. Il est en fait très similaire à la "lumière contrôlée par le toucher" dans les étapes précédentes. En effet, ce dernier peut être facilement modifié pour réaliser cet interrupteur de détection de proximité ...

Temps : Total <1 heure, +1 heure pour le soudage en option

Coût : ~ 1 $, hors Arduino

Difficulté : facile

Matériaux nécessaires:

  • Carte Arduino
    • Résistance 5.6M
    • Résistance 220ohm
    • LED de toute couleur
    • Déjouer
    • Cavalier
    • Relais (facultatif)
    • Fiche secteur (mâle et femelle) (en option)
  • Étape 12: Interrupteur d'éclairage de détection de proximité: - le circuit ...

    Le circuit est simple, c'est juste une modification du "Touch Controlled Light". En fait, la seule chose que vous devez changer est une résistance; cette fois, vous devez utiliser une résistance ~ 5M entre les broches 2 et 4 de l'arduino.

    Étape 13: Interrupteur d'éclairage de détection de proximité: - le code ....

    Ici, le code est similaire à la "lumière contrôlée par le toucher". Il vous suffit de modifier le temps de rebond dans le code et d'ajuster certaines autres valeurs avec essais et erreurs ...

    Copiez ce code et collez-le dans la fenêtre Arduino ....

     #include int led = 42; // changer '42' en n'importe quelle broche désirée ... long time = 0; état int = HIGH; booléen oui; booléen précédent = faux; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Résistance 10M entre les broches 4 et 2, la broche 2 est la broche du capteur, ajoutez un fil et / ou une feuille si vous le souhaitez // Pour ajouter plus de capteurs ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Résistance 10M entre les broches 4 et 6, la broche 6 est la broche du capteur, ajoutez un fil et / ou une feuille // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Résistance 10M entre les broches 4 et 8, la broche 8 est la broche du capteur, ajoutez un fil et / ou déjouez la configuration vide () {cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrer le capteur ... pinMode (led, OUTPUT); } boucle vide () {total long1 = cs_4_2.capacitiveSensor (30); if (total1> 60) {yes = true;} else {yes = false;} // pour basculer l'état d'état if (yes == true && previous == false && millis () - time> debounce) {if ( état == BAS) {état = HAUT; } else state = LOW; temps = millis (); } digitalWrite (led, état); précédent = oui; Serial .println (millis () - heure); retard (10); } 

    Étape 14: Contrôle des appareils haute tension ...

    Pour contrôler les appareils haute tension, un relais est nécessaire. Suivez les mêmes instructions de configuration du relais que dans le projet précédent ...

    Étape 7 - Ajout d'un relais

    Étape 15: Contrôleur 3D sans contact

    Ce contrôleur 3D suivra la position de votre main en 3 dimensions. Il est basé sur la détection tactile capacitive. Comme le projet précédent, l'interrupteur de détection de proximité, le capteur tactile sera capable de détecter votre main à quelques centimètres de distance.

    Ce projet est inspiré de l'impressionnant contrôleur 3D Instructable-DIY de kylemcdonald. Jetez également un œil à son Instructable pour vous faire une idée de ce contrôleur 3D ...

    Il y a beaucoup de choses que vous pouvez faire avec ce contrôleur 3D, par exemple, comme une souris d'ordinateur, pour contrôler une scène d'animation 3D, contrôler des cubes LED et bien plus encore. Mais bien sûr, ce n'est pas si facile et pas cher à faire.

    Par conséquent, j'ai un projet simple mais cool, adapté aux débutants: une LED RGB contrôlée par 3D Tracker. Fondamentalement, vous pouvez contrôler la couleur d'une LED en déplaçant votre main dans différentes positions. Vous ne l'avez pas compris? Passez à l'étape suivante pour en savoir plus ....

    Étape 16: Fonctionnement et matériaux ...

    Ce contrôleur 3D dispose de 3 capteurs tactiles, qui répondent à quelques centimètres de distance. En jugeant la distance de chaque capteur, l'Arduino peut calculer les coordonnées x, y et z de votre main.

    La LED RGB a 3 couleurs: rouge, vert et bleu. La luminosité de chaque couleur dépend des coordonnées respectives de la main. Par exemple, plus la coordonnée x est faible (plus ma main est proche du capteur droit), plus la couleur rouge de la LED RVB est lumineuse.

    Durée : 1 à 1, 5 heure

    Coût : <1 $, hors Arduino ...

    Difficulté : facile.

    Matériaux nécessaires:

    • Papier d'aluminium
    • Carte Arduino (je recommande l'Uno)
    • Résistances 10k ohm x3
    • Résistances 220kohm x3
    • Résistances 220 ohms x3
    • Câble
    • LED RGB

    Étape 17: Préparation des capteurs tactiles ....

    Nous avons besoin de trois morceaux de papier séparés, avec des dimensions d'environ 8 * 8 pouces. Un morceau de papier est collé sur une base épaisse en polystyrène (thermocol). Des fentes sont faites sur la mousse de polystyrène sur 2 côtés adjacents de la feuille, comme le montrent les images ci-dessus.

    Les deux autres morceaux de papier d'aluminium sont collés sur le support (qui est du carton blanc).

    Ces deux morceaux de planche de montage sont insérés dans les fentes de la mousse de polystyrène, perpendiculaires entre elles et de la mousse de polystyrène, comme indiqué dans les images ci-dessus.

    Pour rendre le tout robuste, j'ai utilisé un petit morceau rectangulaire de planche de montage pour maintenir les deux planches de montage avec le papier d'aluminium ensemble. Les images ci-dessus et leurs étiquettes aideront certainement beaucoup.

    Étape 18: Le circuit ...

    Connectez un fil à chaque capteur tactile avec du ruban isolant. Ensuite, assemblez le circuit sur une planche à pain, à l'aide de la disposition de la planche à pain Fritzing ci-dessus.

    Étape 19: Téléchargez le code ...

    Le code est fourni dans la pièce jointe ci-dessous. Cliquez simplement dessus et copiez et collez le code dans la fenêtre de code Arduino.

    Avant de lancer le téléchargement, assurez-vous de modifier les broches, si nécessaire.

    Calibrage des capteurs tactiles ..

    Après avoir téléchargé le code, ouvrez le moniteur série, l'Arduino étant toujours connecté. Vous verrez de nombreuses lignes de valeurs défiler, chaque ligne ayant 3 valeurs représentant chaque capteur tactile. Touchez n'importe quel capteur tactile (vous devez savoir lequel vous touchez) et voyez sa valeur correspondante sur le moniteur série.

    Vous verrez cette ligne dans le code avant la configuration de void () {

     int maxval = 20; 

    Remplacez 20 par la valeur que vous avez obtenue après avoir touché l'un des capteurs.

    Téléchargez à nouveau le code. Déplacer votre main à l'intérieur du contrôleur 3D produira une variété de couleurs.

    Remarque importante: Le code ci-dessous ne fonctionne que pour les cartes compatibles Arduino Uno (et probablement Leonardo). J'ai essayé le Mega et cela n'a pas fonctionné, car il a des 'PORTS' très différents (même j'ai trouvé difficile à comprendre au début - c'est pour les mecs les plus expérimentés) ....

    Résumé: Téléchargez le code, ajustez la variable "maxval" et téléchargez à nouveau. Il est recommandé d'utiliser un Arduino Uno ou un clone.

    Pièces jointes

    • _3d_controller.ino Télécharger

    Étape 20: Conclusion ...

    Ce ne sont que 3 projets que vous pouvez réaliser avec Capacitive touch. J'espère qu'ils vous donneront une idée solide sur l'utilisation de capteurs tactiles pour créer des choses impressionnantes. Ne vous arrêtez pas seulement ici - les choses que vous pouvez faire avec la détection tactile capacitive sont infinies: claviers tactiles, pavés tactiles, souris d'ordinateur sans contact, horloge tactile ne sont que quelques-unes des innombrables idées auxquelles je peux penser.

    Aller plus loin.....

    Vous pourriez faire plus avec les projets que j'ai montrés. Par exemple, en utilisant l'idée du 1er projet, fabriquez un tableau de commande tactile pour contrôler plusieurs lumières et ventilateurs dans une pièce. Ou peut-être l'intégrer dans un projet domotique.

    Avec l'idée de la lumière de détection de proximité, essayez de fabriquer une lampe de bureau automatique, qui détecte votre présence.

    Avec le contrôleur 3D, essayez de fabriquer une souris 3D avec un Arduino Leonardo. Ou utilisez un programme de traitement pour communiquer avec le contrôleur 3D.

    Autres tutoriels et plus ...

    aire de jeux.arduino.cc/Main/CapSense

    Tutoriel Hackaday

    Voici une excellente vidéo (ce n'est pas la mienne cependant) juste un simple tutoriel tactile capacitif, que j'ai également couvert. Une vidéo peut cependant clarifier les choses ...

    Étape 21: Veuillez commenter et exprimer vos opinions ...

    Avec votre aide, je peux certainement améliorer cet Instructable ..

    Articles Connexes