Autor Instructables pod přezdívkou ShaneCunningham navrhuje implementovat kapacitní relé na Arduino programově. Z dalších částí budou vyžadovány pouze kapacitní senzory a rezistory. Žádné externí hardwarové generátory. V softwaru domácí zapojen toto a toto vývoj třetích stran.
Kapacitní senzory - dvouvrstvé, tříkolíkové. Mistr je dělá udělej to sám. Kartonový čtverec o straně 300 mm je vložen fólií - jedná se o výstup připojený ke společnému drátu. Nahoře položí lepenkový čtverec o straně 100 mm, také přilepený folií. Na něm je vrstva fólie rozdělena na dvě části podél obrysu podobného oscilogramu obdélníkových pulzů. To budou další dva závěry.
Každý z vyrobených senzorů je vybaven odporem 1 MΩ. Pokud existuje pouze jeden senzor, připojte jej podle obrázku níže. Pokud jich je několik, budete muset použít závěry Arduino - dva na senzor - a vzít to v úvahu v náčrtu.
Průvodce dělá následující:
Skládá se ze skici, který odesílá data ze senzoru přes sériové rozhraní:
/////////////////////////////////////
void loop () {
long total1 = cs_4_2.capacitiveSensor (30);
Serial.println (celkem 1);
///////////////////////////////////////
Kód pro komunikaci se zpracováním přes sériové číslo
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M rezistor mezi kolíky 4 a 2, kolík 2 je kolík senzoru, v případě potřeby přidejte drát nebo fólii
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M rezistor mezi kolíky 4 a 6, kolík 6 je kolík senzoru, přidejte vodič nebo fólii
neplatné nastavení () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // vypněte automatickou kalibraci na kanálu 1 - pouze jako příklad
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.egegin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
createContact (); // poslat bajt pro navázání kontaktu, dokud příjemce neodpoví
void loop () {
// Pokud dostaneme platný bajt, přečtěte si vstupy:
if (Serial.available ()> 0) {
// získat příchozí bajt:
inByte = Serial.read ();
// long start = millis ();
long total1 = cs_4_2.capacitiveSensor (30);
long total2 = cs_4_6.capacitiveSensor (30);
// long total3 = cs_4_8.capacitiveSensor (30);
// zpoždění (10);
val1 = mapa (celkem1, 700, 2300, 0, 255); // jsou zde mapovány hodnoty senzorů z kalibrace - začíná detekovat lidskou blízkost ve vzdálenosti 700 (4 "), ruka se téměř dotýká senzoru na 2300
val2 = mapa (celkem2, 30, 175, 0, 255);
// val3 = mapa (celkem 3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// zpoždění (50);
}
void createContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
zpoždění (300); }
Průvodce organizuje další analýzu příchozích informací na PC v prostředí Zpracování.
Ale to je jen začátek experimentu. V budoucnu ji můžete použít ke zpracování signálů ze senzorů Arduino - totéž, nebo, pokud její zdroje nestačí, ještě jeden.