L'auteur d'Instructables sous le surnom de ShaneCunningham propose d'implémenter un relais capacitif sur Arduino par programme. Parmi les pièces supplémentaires, seuls des capteurs capacitifs et des résistances eux-mêmes seront nécessaires. Aucun générateur de matériel externe. Dans le logiciel fait maison impliqué ça et ça développements de tiers.
Capteurs capacitifs - deux couches, trois broches. Le maître les fait fais-le toi-même. Un carré en carton avec un côté de 300 mm est collé avec du papier d'aluminium - ce sera la sortie connectée au fil commun. Au-dessus, il place un carré en carton d'un côté de 100 mm, également collé avec du papier d'aluminium. Sur celle-ci, la couche de feuille est divisée en deux parties le long d'un contour similaire à un oscillogramme d'impulsions rectangulaires. Ce seront deux autres conclusions.
Chacun des capteurs fabriqués est équipé d'une résistance de 1 MΩ. S'il n'y a qu'un seul capteur, connectez-le comme indiqué ci-dessous. S'il y en a plusieurs, vous devrez utiliser les conclusions Arduino - deux par capteur - et en tenir compte dans le croquis.
Voici ce que fait l'assistant:
Composé d'un croquis qui envoie des données provenant du capteur via l'interface série:
/////////////////////////////////////////
boucle vide () {
total long1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
///////////////////////////////////////////
Code de communication avec le traitement sur série
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // Résistance 1M 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
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // Résistance 1M entre les broches 4 et 6, la broche 6 est la broche du capteur, ajoutez un fil et / ou une feuille
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // désactiver l'autocalibrate sur le canal 1 - comme exemple
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, ENTRÉE);
pinMode (6, ENTRÉE);
// pinMode (8, INPUT);
EstablContact (); // envoie un octet pour établir le contact jusqu'à ce que le destinataire réponde
boucle vide () {
// si nous obtenons un octet valide, lisez les entrées:
if (Serial.available ()> 0) {
// récupère l'octet entrant:
inByte = Serial.read ();
// début long = millis ();
total long1 = cs_4_2.capacitiveSensor (30);
total long2 = cs_4_6.capacitiveSensor (30);
// long total3 = cs_4_8.capacitiveSensor (30);
// délai (10);
val1 = carte (total1, 700, 2300, 0, 255); // Les valeurs de capteur de l'étalonnage sont mappées ici - commence à détecter la proximité humaine à 700 (4 "de distance), la main touchant presque le capteur à 2300
val2 = carte (total2, 30, 175, 0, 255);
// val3 = carte (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// délai (50);
}
void EstablContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
retard (300); }
L'assistant organise une analyse plus approfondie des informations entrantes sur un PC dans l'environnement de traitement.
Mais ce n'est que le début de l'expérience. À l'avenir, vous pouvez l'utiliser pour traiter les signaux des capteurs Arduino - la même chose, ou, si ses ressources ne sont pas suffisantes, une de plus.