Forfatteren av Instructables under kallenavnet ShaneCunningham foreslår å implementere et kapasitivt stafett på Arduino programvare. Av tilleggsdelene er det bare kapasitive sensorer og motstander som er nødvendige. Ingen eksterne maskinvaregeneratorer. I programvare hjemmelaget involvert dette og dette tredjepartsutvikling.
Kapasitive sensorer - to-lags, tre-pinners. Mesteren lager dem gjør det selv. Et pappfelt med en side på 300 mm limes inn med folie - dette vil være utgangen som er koblet til fellestråden. På toppen av den plasserer en papp firkant med en side av 100 mm, også limt med folie. På den er folielaget delt i to deler langs en kontur som ligner et oscillogram med rektangulære pulser. Dette vil være to konklusjoner til.
Hver av de produserte sensorene er utstyrt med en 1 MΩ motstand. Hvis det bare er en sensor, kobler du den til som vist nedenfor. Hvis det er flere av dem, må du bruke Arduino-konklusjonene - to per sensor - og ta hensyn til dette i skissen.
Slik gjør veiviseren:
Komponerer en skisse som sender data hentet fra sensoren via det serielle grensesnittet:
///////////////////////////////////////
void loop () {
lang total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Kode for kommunikasjon med behandling over serie
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M motstand mellom pinner 4 og 2, pinne 2 er sensorpinne, tilsett en ledning og eller folie om ønskelig
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M motstand mellom pinner 4 og 6, pinne 6 er sensorpinne, tilsett en ledning og eller folie
ugyldig oppsett () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // slå av autokalibrering på kanal 1 - bare som et eksempel
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
createContact (); // send en byte for å opprette kontakt til mottakeren svarer
void loop () {
// hvis vi får en gyldig byte, kan du lese innspill:
if (Serial.available ()> 0) {
// få innkommende byte:
inByte = Serial.read ();
// lang start = millis ();
lang total1 = cs_4_2.capacitiveSensor (30);
lang total2 = cs_4_6.capacitiveSensor (30);
// lang total3 = cs_4_8.capacitiveSensor (30);
// forsinkelse (10);
val1 = kart (totalt1, 700, 2300, 0, 255); // sensorverdier fra kalibrering er kartlagt til her - begynner å oppdage menneskelig nærhet på 700 (4 "borte), hånd nesten sensor berører 2300
val2 = kart (totalt2, 30, 175, 0, 255);
// val3 = kart (totalt3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// forsinkelse (50);
}
void createContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
forsinkelse (300); }
Veiviseren organiserer ytterligere analyse av innkommende informasjon på en PC i prosesseringsmiljøet.
Men dette er bare begynnelsen på eksperimentet. I fremtiden kan du bruke den til å behandle signaler fra Arduino-sensorer - det samme, eller, hvis ressursene ikke er nok, en til.