pessoal gostaria da ajuda de voces. estou tentando fazer uma luminaria com sensor de toque para acender. o basico eu consegui. estou com um problema. queria que o sensor acionace apenas uma vez o rele, mesmo se o dedo ficasse no sensor. o que esta acontecendo é que enquanto coloco o dedo o rele fica alternando.
#include <CapacitiveSensor.h>
CapacitiveSensor capSensor = CapacitiveSensor(36, 37);
int threshold = 100;
int estadoled = 0;
const int ledPin = 12;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
// store the value reported by the sensor in a variable
long sensorValue = capSensor.capacitiveSensor(30);
Serial.println(sensorValue);
estadoled = digitalRead(ledPin);
// if the value is greater than the threshold
if (sensorValue > threshold ) {
do {
if (estadoled == HIGH) {
digitalWrite(ledPin, LOW);
delay (10);
} else {
digitalWrite(ledPin, HIGH);
delay (10);
}
}
delay(50);
}
Tags:
pessoal consegui, mas se alguem souber e quiser dar uma polida nesse codigo
#include <CapacitiveSensor.h>
CapacitiveSensor capSensor = CapacitiveSensor(36, 37);
int threshold = 100;
int estadoled = 0;
int testled = 0;
const int ledPin = 12;
long t = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
long sensorValue = capSensor.capacitiveSensor(30);
Serial.println(sensorValue);
estadoled = digitalRead(ledPin);
testled = LOW;
if (sensorValue > threshold ) {
if (estadoled == HIGH) {
Serial.println("desligado");
digitalWrite(ledPin, LOW);
delay (10);
do
{
delay (10);
t = capSensor.capacitiveSensor(30);
Serial.println(t);
}
while (t > threshold);
} else {
Serial.println("ligado");
digitalWrite(ledPin, HIGH);
delay (10);
do
{
delay (10);
t = capSensor.capacitiveSensor(30);
Serial.println(t);
}
while (t > threshold);
}
}
delay(60);
Serial.println("estado do led:" + testled);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por