O autor de Instructables sob o apelido ShaneCunningham propõe a implementação de um relé capacitivo em Arduino programaticamente. Das peças adicionais, somente sensores capacitivos e resistores serão necessários. Nenhum gerador de hardware externo. Em software caseiro envolvido isto e isto desenvolvimentos de terceiros.
Sensores capacitivos - duas camadas, três pinos. O mestre os faz faça você mesmo. Um quadrado de papelão com um lado de 300 mm é colado com papel alumínio - essa será a saída conectada ao fio comum. No topo, coloca um quadrado de papelão com um lado de 100 mm, também colado com papel alumínio. Nela, a camada da folha é dividida em duas partes ao longo de um contorno semelhante a um oscilograma de pulsos retangulares. Estas serão mais duas conclusões.
Cada um dos sensores fabricados está equipado com um resistor de 1 MΩ. Se houver apenas um sensor, conecte-o como mostrado abaixo. Se houver várias delas, você precisará usar as conclusões do Arduino - duas por sensor - e levar isso em consideração no esboço.
Aqui está o que o assistente faz:
Compõe um esboço que envia dados obtidos do sensor via interface serial:
/////////////////////////////////////////
loop vazio () {
total longo1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
///////////////////////////////////////////
Código para comunicação com o processamento por serial
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
Sensor capacitivo cs_4_2 = Sensor capacitivo (4.2); // 1M de resistência entre os pinos 4 e 2, o pino 2 é o pino do sensor, adicione um fio e / ou uma folha, se desejado
Sensor capacitivo cs_4_6 = Sensor capacitivo (4.6); // 1M de resistência entre os pinos 4 e 6, o pino 6 é o pino do sensor, adicione um fio e / ou uma folha
configuração nula () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // desativa a calibração automática no canal 1 - apenas como exemplo
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
estabeleçamContato (); // envia um byte para estabelecer contato até o destinatário responder
loop vazio () {
// se obtivermos um byte válido, leia as entradas:
if (Serial.available ()> 0) {
// obtém o byte recebido:
inByte = Serial.read ();
// início longo = millis ();
total longo1 = cs_4_2.capacitiveSensor (30);
total total2 = cs_4_6.capacitiveSensor (30);
// total3 longo = cs_4_8.capacitiveSensor (30);
// delay (10);
val1 = mapa (total1, 700, 2300, 0, 255); // os valores do sensor da calibração são mapeados para aqui - começa a detectar a proximidade humana a 700 (4 "de distância), a mão quase tocando o sensor em 2300
val2 = mapa (total2, 30, 175, 0, 255);
// val3 = mapa (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// delay (50);
}
void establishmentContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
atraso (300); }
O assistente organiza análises adicionais das informações recebidas em um PC no ambiente de processamento.
Mas este é apenas o começo do experimento. No futuro, você poderá usá-lo para processar sinais dos sensores do Arduino - a mesma coisa ou, se seus recursos não forem suficientes, mais um.