Forfatteren af Instructables under kaldenavnet ShaneCunningham tilbyder at implementere et kapacitivt relæ Arduino software. Af de ekstra dele er det kun kapacitive sensorer og modstande, der kræves. Ingen eksterne hardwaregeneratorer. I software hjemmelavet involveret dette og dette tredjepartsudviklinger.
Kapacitive sensorer - to-lags, tre-pin. Mesteren laver dem gør det selv. En pap firkant med en side af 300 mm indsættes med folie - dette er output, der er forbundet til fælles ledning. Ovenpå placeres en kartonflade med en side af 100 mm, også limet med folie. På det er folielaget delt i to dele langs en kontur svarende til et oscillogram af rektangulære pulser. Dette vil være yderligere to konklusioner.
Hver af de fremstillede sensorer er udstyret med en 1 MΩ modstand. Hvis der kun er en sensor, skal du tilslutte den som vist nedenfor. Hvis der er flere af dem, bliver du nødt til at bruge Arduino-konklusionerne - to pr sensor - og tage dette i betragtning på skitsen.
Her er, hvad guiden gør:
Komponerer en skitse, der sender data hentet fra sensoren via den serielle grænseflade:
///////////////////////////////////////
void loop () {
lang total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Kode til kommunikation med behandling over serie
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M modstand mellem stifter 4 og 2, stift 2 er sensorpind, tilføj en ledning og eller folie om ønsket
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M modstand mellem stifter 4 og 6, stift 6 er sensorpind, tilføj en ledning og eller folie
ugyldig opsætning () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Sluk for autokalibrering på kanal 1 - lige 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 at etablere kontakt, indtil modtageren reagerer
void loop () {
// hvis vi får en gyldig byte, skal du læse input:
if (Serial.available ()> 0) {
// få indkommende 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.capacitive Sensor (30);
// forsinkelse (10);
val1 = kort (i alt1, 700, 2300, 0, 255); // sensorværdier fra kalibrering er kortlagt til her - begynder at registrere menneskelig nærhed ved 700 (4 "væk), hånd næsten rørende sensor ved 2300
val2 = kort (i alt2, 30, 175, 0, 255);
// val3 = kort (i alt3, 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); }
Guiden organiserer yderligere analyse af de indgående oplysninger på en pc i Processing-miljøet.
Men dette er kun begyndelsen på eksperimentet. I fremtiden kan du bruge den til at behandle signaler fra Arduino-sensorer - den samme ting, eller, hvis ressourcerne ikke er nok, en til.