Ang may-akda ng Mga Tagagamit sa ilalim ng palayaw na ShaneCunningham ay nagmumungkahi na magpatupad ng isang capacitive relay on Arduino programmatically. Sa mga karagdagang bahagi, kinakailangan lamang ang mga capacitive sensor at resistors mismo. Walang panlabas na mga generator ng panlabas. Sa software gawang bahay kasangkot ito at ito mga pag-unlad ng third-party.
Mga capacitive sensors - dalawang-layer, three-pin. Ginagawa sila ng panginoon gawin mo mismo. Ang isang parisukat na karton na may isang gilid ng 300 mm ay na-paste sa foil - ito ang magiging output na konektado sa karaniwang wire. Sa tuktok nito naglalagay ng isang karton square na may isang gilid ng 100 mm, din nakadikit na may foil. Sa ito, ang layer ng foil ay nahahati sa dalawang bahagi kasama ang isang tabas na katulad ng isang oscillogram ng mga hugis-parihaba na pulso. Ito ay magiging dalawa pang konklusyon.
Ang bawat isa sa mga panindang sensor ay nilagyan ng isang 1 M 1 risistor. Kung mayroong isang sensor, ikonekta ito tulad ng ipinakita sa ibaba. Kung mayroong ilan sa mga ito, kakailanganin mong gamitin ang mga konklusyon sa Arduino - dalawa sa bawat sensor - at isasaalang-alang ito sa sketsa.
Narito kung ano ang ginagawa ng wizard:
Binubuo ang isang sketch na nagpapadala ng data na kinuha mula sa sensor sa pamamagitan ng serial interface:
///////////////////////////////////////
walang bisa na loop () {
mahaba total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Code para sa Pakikipag-usap sa Pagproseso sa Serial
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M risistor sa pagitan ng mga pin 4 & 2, pin 2 ay sensor pin, magdagdag ng isang wire at o foil kung nais
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M risistor sa pagitan ng mga pin 4 & 6, pin 6 ay sensor pin, magdagdag ng isang wire at o foil
walang pag-setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // patayin ang autocalibrate sa channel 1 - tulad ng isang halimbawa
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
magtatagContact (); // magpadala ng isang bait upang maitaguyod ang pakikipag-ugnay hanggang tumanggap ang tumanggap
walang bisa na loop () {
// kung nakakakuha kami ng isang wastong bait, basahin ang mga input:
kung (Serial.available ()> 0) {
// makakuha ng papasok na byte:
inByte = Serial.read ();
// mahabang pagsisimula = millis ();
mahaba total1 = cs_4_2.capacitiveSensor (30);
mahaba total2 = cs_4_6.capacitiveSensor (30);
// mahaba total3 = cs_4_8.capacitiveSensor (30);
// pagkaantala (10);
val1 = mapa (total1, 700, 2300, 0, 255); // Ang mga halaga ng sensor mula sa pagkakalibrate ay naka-map sa dito - nagsisimula upang makita ang kalapitan ng tao sa 700 (4 "ang layo), kamay na halos hawakan ang sensor sa 2300
val2 = mapa (total2, 30, 175, 0, 255);
// val3 = mapa (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// pagkaantala (50);
}
walang bisa na magtaguyod ()
habang (Serial.available () <= 0) {
Serial.print ('A');
pagkaantala (300); }
Ang wizard ay nagsasaayos ng karagdagang pagsusuri ng papasok na impormasyon sa isang PC sa kapaligiran ng Pagproseso.
Ngunit ito lamang ang simula ng eksperimento. Sa hinaharap, maaari mo itong gamitin upang maproseso ang mga signal mula sa mga sensor ng Arduino - ang parehong bagay, o, kung hindi sapat ang mga mapagkukunan nito, isa pa.