Az Instructables, ShaneCunningham becenév alatt írt írója egy kapacitív relé bevezetését javasolja Arduino szoftvert. A kiegészítő alkatrészek közül csak magukra kapacitív érzékelőkre és ellenállásokra lesz szükség. Nincs külső hardvergenerátor. A szoftverben házi részt ezt és ezt harmadik fél fejlesztései.
Kapacitív érzékelők - kétrétegű, három tűs. A mester készíti őket csináld magad. Egy 300 mm-es oldalsó kartondoboz be van ragasztva fóliával - ez lesz a kimenet a közös vezetékhez csatlakoztatva. A tetejére egy 100 mm-es oldalú karton négyzetet helyez, fóliával is ragasztva. Ezen a fóliaréteget kontúr mentén két részre osztják, hasonlóan a téglalap alakú impulzusok oszcillogramjához. Ez két további következtetés lesz.
A gyártott szenzorok mindegyike 1 MΩ ellenállással van ellátva. Ha csak egy érzékelő van, csatlakoztassa az alább látható módon. Ha ezek közül több van, akkor az Arduino következtetéseket kell használnia - szenzoronként két -, és ezt a vázlatban figyelembe kell vennie.
A varázsló ezt teszi:
Vázlatot állít fel, amely az érzékelőből vett adatokat továbbítja a soros interfészen keresztül:
///////////////////////////////////////
void loop () {
hosszú összes1 = cs_4_2.kapacitív érzékelő (30);
Serial.println (összesen1);
/////////////////////////////////////////
Kód a soros kapcsolaton keresztül történő feldolgozáshoz
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M ellenállás a 4-es és 2-es érintkezők között, a 2-es érintkező az érzékelőcsap, adjon hozzá vezetéket és / vagy fóliát, ha szükséges
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M ellenállás a 4-es és 6-os érintkezők között, a 6-os érintkező az érzékelőcsap, vezetéket és / vagy fóliát adjon hozzá
érvénytelen beállítás () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // kapcsolja ki az 1. csatornán az automatikus kalibrálást - csak példaként
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
createContact (); // küldjön bájtot a kapcsolat létesítéséhez, amíg a vevő nem válaszol
void loop () {
// ha érvényes bájtot kapunk, olvassa be a bemeneteket:
if (Serial.a available ()> 0) {
// bejövő byte:
inByte = Serial.read ();
// hosszú indulás = millis ();
hosszú összes1 = cs_4_2.kapacitív érzékelő (30);
hosszú teljes2 = cs_4_6.kapacitív érzékelő (30);
// hosszú teljes3 = cs_4_8.capacitiveSensor (30);
// késleltetés (10);
val1 = térkép (összesen1, 700, 2300, 0, 255); // a kalibrációtól kapott szenzorértékek itt vannak feltérképezve - elkezdi detektálni az emberi közelséget 700-nál (4 "távolságra), kézzel közel érző érzékelőt 2300-on
val2 = térkép (összesen2, 30, 175, 0, 255);
// val3 = térkép (összesen3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// késleltetés (50);
}
érvénytelen createContact () {
míg (Serial.avable () <= 0) {
Serial.print ('A');
késleltetés (300); }
A varázsló megszervezi a beérkező információk további elemzését a számítógépen a feldolgozási környezetben.
De ez csak a kísérlet kezdete. A jövőben felhasználhatja Arduino érzékelőktől származó jelek feldolgozására - ugyanaz, vagy ha az erőforrások nem elégek, akkor még egy.