Autor Instructables pod pseudonimem ShaneCunningham proponuje wdrożenie przekaźnika pojemnościowego Arduino programowo. Z dodatkowych części wymagane będą tylko same czujniki pojemnościowe i rezystory. Brak zewnętrznych generatorów sprzętu. W oprogramowaniu domowej roboty zaangażowany to i to opracowania stron trzecich.
Czujniki pojemnościowe - dwuwarstwowe, trzy-pinowe. Mistrz je czyni zrób to sam. Tekturowy kwadrat o boku 300 mm jest naklejony folią - będzie to wyjście podłączone do wspólnego drutu. Na nim umieszcza się kartonowy kwadrat o boku 100 mm, również przyklejony folią. Na nim warstwa folii jest podzielona na dwie części wzdłuż konturu podobnego do oscylogramu prostokątnych impulsów. To będą kolejne dwa wnioski.
Każdy z produkowanych czujników jest wyposażony w rezystor 1 MΩ. Jeśli jest tylko jeden czujnik, podłącz go, jak pokazano poniżej. Jeśli jest ich kilka, będziesz musiał zastosować wnioski Arduino - dwa na czujnik - i wziąć to pod uwagę w szkicu.
Oto, co robi kreator:
Tworzy szkic, który wysyła dane pobrane z czujnika przez interfejs szeregowy:
///////////////////////////////////////
void loop () {
long total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
///////////////////////////////
Kod do komunikacji z przetwarzaniem przez łącze szeregowe
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // Rezystor 1M między stykami 4 i 2, styk 2 jest stykiem czujnika, w razie potrzeby dodaj drut i / lub folię
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // Rezystor 1M między pinami 4 i 6, pin 6 to pin czujnika, dodaj drut i / lub folię
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // wyłącz autokalibrację na kanale 1 - tylko jako przykład
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, WEJŚCIE);
pinMode (6, WEJŚCIE);
// pinMode (8, WEJŚCIE);
ustanowienieContact (); // wyślij bajt, aby nawiązać kontakt, dopóki odbiorca nie odpowie
void loop () {
// jeśli otrzymamy prawidłowy bajt, przeczytaj dane wejściowe:
if (Serial.available ()> 0) {
// pobierz bajt przychodzący:
inByte = Serial.read ();
// długi start = millis ();
long total1 = cs_4_2.capacitiveSensor (30);
long total2 = cs_4_6.capacitiveSensor (30);
// long total3 = cs_4_8.capacitiveSensor (30);
// opóźnienie (10);
val1 = mapa (ogółem 1,700, 2300, 0, 255); // wartości czujnika z kalibracji są tutaj mapowane - zaczyna wykrywać bliskość człowieka w odległości 700 (4 "), dłoń prawie dotyka czujnika w 2300
val2 = mapa (ogółem 2, 30, 175, 0, 255);
// val3 = mapa (łącznie 3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// opóźnienie (50);
}
void establishmentContact () {
while (Serial.available () <= 0) {
Numer seryjny („A”);
opóźnienie (300); }
Kreator organizuje dalszą analizę przychodzących informacji na komputerze w środowisku przetwarzania.
Ale to dopiero początek eksperymentu. W przyszłości możesz go używać do przetwarzania sygnałów z czujników Arduino - to samo lub, jeśli jego zasoby nie są wystarczające, jeszcze jedno.