Instructables'ın yazarı ShaneCunningham takma adı altında kapasitif bir röle uygulamayı teklif ediyor Arduino yazılımı. Ek parçalardan sadece kapasitif sensörler ve dirençler kendileri gerekli olacaktır. Harici donanım üreteçleri yok. Yazılımda ev yapımı yer bu ve bu üçüncü taraf gelişmeler.
Kapasitif sensörler - iki katmanlı, üç pimli. Usta onları yapar kendin yap. 300 mm kenarlı bir karton kare folyo ile yapıştırılır - bu, ortak tele bağlı çıkış olacaktır. Üstüne 100 mm kenarlı, ayrıca folyo ile yapıştırılmış bir karton kare yerleştirilir. Üzerinde, folyo tabakası dikdörtgen darbelerin bir osilogramına benzer bir kontur boyunca iki kısma ayrılır. Bunlar iki sonuç daha olacak.
Üretilen sensörlerin her biri 1 MΩ dirençle donatılmıştır. Bir sensör varsa, aşağıda gösterildiği gibi bağlayın. Bunlardan birkaçı varsa, Arduino sonuçlarını - sensör başına iki tane - kullanmanız ve bunu çizimde dikkate almanız gerekecektir.
Sihirbazın yaptığı şey:
Seri arayüz aracılığıyla sensörden alınan verileri gönderen bir çizim oluşturur:
///////////////////////////////////////
void loop () {
uzun toplam1 = cs_4_2. kapasitif Sensör (30);
Serial.println (toplam 1);
/////////////////////////////////////////
Seri Üzerinden İşleme ile İletişim Kodu
* /
int vall = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
Kapasitif Sensör cs_4_2 = Kapasitif Sensör (4.2); // 4 ve 2 pinleri arasında 1M direnç, pin 2 sensör pinidir, istenirse bir tel ve folyo ekleyin
Kapasitif Sensör cs_4_6 = Kapasitif Sensör (4.6); // 4 ve 6 pinleri arasında 1M direnç, pin 6 sensör pinidir, bir tel ve folyo ekleyin
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // kanal 1'deki otomatik kalibrasyonu kapat - tıpkı örnek olarak
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, GİRİŞ);
// pinMode (8, INPUT);
installContact (); // alıcı yanıt verene kadar iletişim kurmak için bayt gönder
void loop () {
// geçerli bir bayt alırsak, girişleri okuyun:
eğer (Seri.available ()> 0) {
// gelen baytı al:
inByte = Seri.read ();
// uzun başlangıç = milis ();
uzun toplam1 = cs_4_2. kapasitif Sensör (30);
toplam uzun2 = cs_4_6. kapasitif Sensör (30);
// uzun toplam3 = cs_4_8.KapasitifSensör (30);
// gecikme (10);
val1 = harita (toplam1, 700, 2300, 0, 255); // kalibrasyondan gelen sensör değerleri buraya eşlenir - 700'de (4 "uzakta) insan yakınlığını tespit etmeye başlar, el neredeyse sensöre 2300'de dokunmaya başlar
val2 = harita (toplam2, 30, 175, 0, 255);
// val3 = harita (toplam3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// gecikme (50);
}
void kurulmasıContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
gecikme (300); }
Sihirbaz, İşleme ortamında bir PC'ye gelen bilgilerin daha ayrıntılı analizini organize eder.
Ancak bu sadece deneyin başlangıcıdır. Gelecekte, Arduino sensörlerinden gelen sinyalleri işlemek için kullanabilirsiniz - aynı şey veya kaynakları yeterli değilse, bir tane daha.