Programmas Instructables autors ar segvārdu ShaneCunningham ierosina ieviest kapacitatīvo releju Arduino programmatiski. No papildu detaļām būs nepieciešami tikai paši kapacitīvie sensori un rezistori. Nav ārēju aparatūras ģeneratoru. Programmatūrā mājās gatavots iesaistīti šo un šo trešo pušu attīstība.
Kapacitīvie sensori - divslāņu, trīskontaktu. Meistars tos veido dari pats. Kartona kvadrāts ar malu 300 mm ir ielīmēts ar foliju - šī būs izeja, kas savienota ar kopējo vadu. Tam virsū uzliek kartona kvadrātu ar malu 100 mm, kas arī salīmēts ar foliju. Uz tā folijas slānis ir sadalīts divās daļās pa kontūru, kas ir līdzīga taisnstūra impulsu oscilogrammai. Tie būs vēl divi secinājumi.
Katrs no ražotajiem sensoriem ir aprīkots ar 1 MΩ rezistoru. Ja ir tikai viens sensors, pievienojiet to, kā parādīts zemāk. Ja ir vairāki no tiem, jums būs jāizmanto Arduino secinājumi - divi katram sensoram - un tas jāņem vērā skicē.
Vednis rīkojas šādi:
Raksta skici, kas caur seriālo interfeisu nosūta datus, kas ņemti no sensora:
/ / / / / / / / / / / / / / / / / / / / / / / / - / - / - / - / /
tukšs cilpa () {
garš kopējais1 = cs_4_2.capacitiveSensor (30);
Serial.println (kopā1);
/ / / / / / / / / / / / / / / / / / / / / / / / - / / - / - / - / /
Kods saziņai ar apstrādi, izmantojot seriālo
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M rezistors starp tapām 4 un 2, 2. tapa ir sensora tapa, pievienojiet vadu un / vai foliju, ja vēlaties
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M rezistors starp tapām 4 un 6, 6. tapa ir sensora tapa, pievienojiet vadu un / vai foliju
Nederīga iestatīšana () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // izslēdziet 1. kanāla automātisko kalibrēšanu - tikai kā piemēru
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Sērijas.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
izveidotContact (); // nosūtiet baitu, lai izveidotu kontaktu, līdz saņēmējs atbild
tukšs cilpa () {
// Ja mēs iegūstam derīgu baitu, lasiet ievadus:
if (Seriāla.pieejamība ()> 0) {
// saņemt ienākošo baitu:
inByte = Serial.read ();
// garš sākums = millis ();
garš kopējais1 = cs_4_2.capacitiveSensor (30);
garš total2 = cs_4_6.capacitiveSensor (30);
// garš kopējais3 = cs_4_8.capacitiveSensor (30);
// kavēšanās (10);
val1 = karte (kopā1, 700, 2300, 0, 255); // sensora vērtības no kalibrēšanas tiek kartētas šeit - sāk noteikt cilvēka tuvumu 700 (4 "attālumā), ar roku gandrīz pieskaras sensors pie 2300
val2 = karte (kopā2, 30, 175, 0, 255);
// val3 = karte (kopā3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// kavēšanās (50);
}
anulēt izveidotContact () {
kamēr (Seriāla pieejama () <= 0) {
Serial.print ('A');
kavēšanās (300); }
Vednis organizē ienākošās informācijas turpmāku analīzi datorā apstrādes vidē.
Bet tas ir tikai eksperimenta sākums. Nākotnē jūs to varat izmantot, lai apstrādātu signālus no Arduino sensoriem - tas pats vai, ja tā resursiem nepietiek, vēl viens.