Penulis Instructables di bawah nama panggilan ShaneCunningham bercadang untuk melaksanakan relay kapasitif pada Arduino secara pemrograman. Daripada bahagian tambahan, hanya sensor kapasitif dan resistor sendiri akan diperlukan. Tiada penjana perkakasan luaran. Dalam perisian buatan sendiri terlibat ini dan ini perkembangan pihak ketiga.
Sensor kapasitif - dua lapisan, tiga pin. Tuan membuatnya lakukan sendiri. Sebuah kadbod kadbod dengan bahagian 300 mm dilekatkan dengan kerajang - ini akan menjadi output yang disambungkan ke dawai biasa. Di atasnya meletakkan persegi kadbod dengan sisi 100 mm, juga terpaku dengan kerajang. Di atasnya, lapisan foil dibahagikan kepada dua bahagian sepanjang kontur yang sama dengan oscillogram denyutan segi empat tepat. Ini akan menjadi dua lagi kesimpulan.
Setiap sensor yang dihasilkan mempunyai perintang 1 MΩ. Sekiranya terdapat satu sensor, sambungkannya seperti ditunjukkan di bawah. Jika terdapat beberapa daripada mereka, anda perlu menggunakan kesimpulan Arduino - dua per sensor - dan ambil kira ini dalam lakaran.
Inilah wizard yang dilakukan:
Menggabungkan lakaran yang menghantar data yang diambil dari sensor melalui antara muka bersiri:
///////////////////////////////////////
kekosongan gelung () {
total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Kod untuk Berkomunikasi dengan Pemprosesan di Serial
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // Perintang 1M antara pin 4 & 2, pin 2 ialah pin sensor, tambah wayar dan atau kerajang jika dikehendaki
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // Perintang 1M antara pin 4 & 6, pin 6 adalah pin sensor, tambah wayar dan atau foil
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // matikan autokalibrate pada saluran 1 - sama seperti contoh
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
establishContact (); // hantar bait untuk menentusahkan kenalan sehingga penerima menjawab
kekosongan gelung () {
// jika kita mendapat bait yang sah, baca input:
jika (Serial.available ()> 0) {
// dapatkan bait masuk:
inByte = Serial.read ();
// panjang mula = millis ();
total1 = cs_4_2.capacitiveSensor (30);
jumlah total2 = cs_4_6.capacitiveSensor (30);
// panjang total3 = cs_4_8.capacitiveSensor (30);
/ / kelewatan (10);
val1 = peta (jumlah1, 700, 2300, 0, 255); // nilai sensor dari penentukuran dipetakan ke sini - mula mengesan jarak manusia di 700 (4 "jauhnya), tangan hampir menyentuh sensor pada 2300
val2 = peta (jumlah2, 30, 175, 0, 255);
// val3 = peta (jumlah3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
/ / kelewatan (50);
}
void establishContact () {
sementara (Serial.available () <= 0) {
Serial.print ('A');
kelewatan (300); }
Penyihir itu menganjurkan analisis lanjut mengenai maklumat yang masuk pada PC dalam persekitaran Pemprosesan.
Tetapi ini hanya permulaan percubaan. Di masa hadapan, anda boleh menggunakannya untuk memproses isyarat dari sensor Arduino - perkara yang sama, atau, jika sumbernya tidak mencukupi, satu lagi.