Autorul Instructables sub porecla ShaneCunningham propune să implementeze un releu capacitiv activat Arduino software-ul. Dintre părțile suplimentare, vor fi necesari doar senzori capacitivi și rezistențe. Nu există generatoare de hardware externe. În software de casă implicat acest și acest dezvoltări terțe.
Senzori capacitivi - cu două straturi, cu trei pini. Stăpânul îi face fă-o singur. Un pătrat de carton cu o latură de 300 mm este lipit cu folie - aceasta va fi ieșirea conectată la sârma comună. Deasupra acestuia se așază un pătrat de carton cu o latură de 100 mm, lipit și cu folie. Pe el, stratul de folie este împărțit în două părți de-a lungul unui contur similar cu o oscilogramă cu impulsuri dreptunghiulare. Acestea vor fi încă două concluzii.
Fiecare dintre senzorii fabricați este echipat cu un rezistor de 1 MΩ. Dacă există un singur senzor, conectați-l așa cum se arată mai jos. Dacă există mai multe dintre ele, va trebui să utilizați concluziile Arduino - două pe senzor - și să țineți cont de acest lucru în schiță.
Iată ce face vrăjitorul:
Compune o schiță care trimite date preluate de la senzor prin intermediul interfeței seriale:
///////////////////////////////////////
void loop () {
lung total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Cod pentru comunicarea cu procesarea prin seriale
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // Rezistența de 1M între pinii 4 și 2, pinul 2 este pinul senzorului, adăugați un fir și / sau folie, dacă doriți
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // Rezistența 1M între pinii 4 și 6, pinul 6 este pinul senzorului, adăugați un fir și / sau o folie
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // dezactivați autocalibrarea pe canalul 1 - doar ca exemplu
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
establContact (); // trimiteți un octet pentru a stabili contact până când receptorul răspunde
void loop () {
// dacă obținem un octet valid, citiți intrări:
if (Serial.available ()> 0) {
// obțineți byte de intrare:
inByte = Serial.read ();
// start lung = millis ();
lung total1 = cs_4_2.capacitiveSensor (30);
lung total2 = cs_4_6.capacitiveSensor (30);
// lung total3 = cs_4_8.capacitiveSensor (30);
// întârziere (10);
val1 = hartă (total1, 700, 2300, 0, 255); // valorile senzorului de la calibrare sunt cartografiate până aici - începe să detecteze apropierea umană la 700 (4 "distanță), atingând aproape senzorul la 2300
val2 = hartă (total2, 30, 175, 0, 255);
// val3 = hartă (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// întârziere (50);
}
void stabileContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
întârziere (300); }
Expertul organizează analize suplimentare ale informațiilor primite pe un computer din mediul de procesare.
Dar acesta este doar începutul experimentului. Pe viitor, îl puteți folosi pentru a procesa semnale de la senzorii Arduino - același lucru sau, dacă resursele sale nu sunt suficiente, încă unul.