Авторът на Instructables под псевдонима ShaneCunningham предлага да се приложи капацитивно реле Arduino софтуер. От допълнителните части ще са необходими само капацитивни сензори и резистори. Без външни хардуерни генератори. В софтуера домашно ангажиран това и това разработки на трети страни.
Капацитивни сензори - двуслойни, триконтактни. Майсторът ги прави направете го сами, Картонен квадрат със страна 300 мм се залепва с фолио - това ще бъде изходът, свързан към общата жица. Отгоре се поставя картонен квадрат със страна 100 мм, също залепен с фолио. Върху него слоят фолио е разделен на две части по контур, подобен на осцилограма на правоъгълни импулси. Това ще бъдат още два извода.
Всеки от произвежданите сензори е оборудван с 1 MΩ резистор. Ако има само един сензор, свържете го, както е показано по-долу. Ако има няколко от тях, ще трябва да използвате заключенията на Arduino - два на датчик - и да вземете това предвид в скицата.
Ето какво прави съветникът:
Съставя скица, която изпраща данни, взети от сензора през сериен интерфейс:
///////////////////////////////////////
void loop () {
long total1 = cs_4_2.capacitiveSensor (30);
Serial.println (общо1);
/////////////////////////////////////////
Код за комуникация с обработка през сериен
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M резистор между щифтове 4 и 2, щифт 2 е сензорна щифт, добавете тел и / или фолио, ако желаете
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M резистор между щифтове 4 и 6, щифт 6 е сензорна щифт, добавете жица и или фолио
настройка за невалидност () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // изключете автоматично калибриране по канал 1 - само като пример
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
createContact (); // изпрати байт за установяване на контакт, докато получателят не отговори
void loop () {
// ако получим валиден байт, прочетете входове:
ако (Serial.available ()> 0) {
// получаване на входящ байт:
inByte = Serial.read ();
// дълъг старт = millis ();
long total1 = cs_4_2.capacitiveSensor (30);
long total2 = cs_4_6.capacitiveSensor (30);
// long total3 = cs_4_8.capacitiveSensor (30);
// забавяне (10);
val1 = карта (общо1, 700, 2300, 0, 255); // стойностите на сензора от калибрирането са картографирани тук - започва да открива близостта на човека на 700 (4 "разстояние), ръката почти докосва сензора на 2300
val2 = карта (общо2, 30, 175, 0, 255);
// val3 = карта (общо3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// забавяне (50);
}
void createContact () {
докато (Serial.available () <= 0) {
Serial.print ('A');
забавяне (300); }
Помощникът организира допълнителен анализ на входящата информация на компютър в среда за обработка.
Но това е само началото на експеримента. В бъдеще можете да го използвате за обработка на сигнали от Arduino сензори - същото нещо, или, ако ресурсите му не са достатъчни, още едно.