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);
}

Exibições: 168

Responder esta

Respostas a este tópico

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);
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço