L'autore di Instructables con il soprannome ShaneCunningham offre di implementare un relè capacitivo Arduino software. Delle parti aggiuntive, saranno richiesti solo i sensori capacitivi e le resistenze stesse. Nessun generatore di hardware esterno. Nel software fatto in casa coinvolti questo e questo sviluppi di terze parti.
Sensori capacitivi - due strati, tre pin. Il maestro li fa fallo da solo. Un quadrato di cartone con un lato di 300 mm viene incollato con un foglio: questo sarà l'uscita collegata al filo comune. Sulla parte superiore si trova un quadrato di cartone con un lato di 100 mm, anch'esso incollato con un foglio. Su di esso, lo strato di lamina è diviso in due parti lungo un contorno simile a un oscillogramma di impulsi rettangolari. Queste saranno altre due conclusioni.
Ciascuno dei sensori prodotti è dotato di una resistenza da 1 MΩ. Se è presente un solo sensore, collegarlo come mostrato di seguito. Se ce ne sono molti, dovrai usare le conclusioni di Arduino - due per sensore - e tenerne conto nello schizzo.
Ecco cosa fa la procedura guidata:
Compone uno schizzo che invia i dati prelevati dal sensore tramite l'interfaccia seriale:
///////////////////////////////////////
void loop () {
long total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
/////////////////////////////////////////
Codice per la comunicazione con l'elaborazione su seriale
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // Resistenza 1M tra i pin 4 e 2, il pin 2 è il pin del sensore, aggiungere un filo e / o una lamina se desiderato
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M di resistenza tra i pin 4 e 6, il pin 6 è il pin del sensore, aggiungere un filo e / o un foglio
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // disattiva la calibrazione automatica sul canale 1 - solo come esempio
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
EstaContact (); // invia un byte per stabilire un contatto fino a quando il destinatario non risponde
void loop () {
// se otteniamo un byte valido, leggi input:
if (Serial.available ()> 0) {
// ottieni byte in entrata:
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);
// ritardo (10);
val1 = mappa (totale1, 700, 2300, 0, 255); // I valori dei sensori dalla calibrazione sono mappati qui - inizia a rilevare la prossimità umana a 700 (4 "di distanza), la mano quasi tocca il sensore a 2300
val2 = mappa (totale2, 30, 175, 0, 255);
// val3 = map (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// ritardo (50);
}
void EstaContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
ritardo (300); }
La procedura guidata organizza ulteriori analisi delle informazioni in arrivo su un PC nell'ambiente di elaborazione.
Ma questo è solo l'inizio dell'esperimento. In futuro, puoi usarlo per elaborare i segnali dai sensori Arduino: la stessa cosa o, se le sue risorse non sono sufficienti, ancora una.