Fala galera,
Estou trabalhando em um projeto de sensor capacitivo.
Usando a IDE arduino 0022, meu código rodou beleza.
Más este código não roda na IDE 1.0.1. Alguem sabe qual parâmetro devo mudar no código?
______________________________________________________________________________
#include <CapSense.h>
const int lampada = 8; //circuito do rele
const int led = 10; //led indicador do interruptor
const int cap1 = 4;
const int cap2 = 2;
const int ledL = 1; // valor PWM minimo para o led quando a lampada estiver desligada
const int sensibil = 500; //varia de acordo com o resistor e tamanho da superficie capacitiva, mude para testar.
bool ligado = 0;
void setup()
{
CapSense cs = CapSense(cap1,cap2);
cs.set_CS_AutocaL_Millis( 0xFFFFFFFF);
pinMode(lampada, OUTPUT);
pinMode(led, OUTPUT);
analogWrite(led, ledL);
}
void loop()
{
long cap = cs.capSense(30); //chama a funcao que le a capacitancia...
if (cap > sensibil ) //...se for maior que o estipulado, acende ou apaga a luz,
{
if (ligado)
{
ligado = !ligado;
digitalWrite(lampada, ligado);
for (int i = 255; i > ledL; i--) //laco for para diminuir a luminosidade do led gradativamente. Durante este período (2seg) a cap sense nao eh chamada, o que garante que a lampada nao piscara e apagara novamente. O mesmo vale para o outro for.
{
analogWrite(led, i);
delay(5);
}
}
else
{
ligado = !ligado;
digitalWrite(lampada, ligado);
for (int i = ledL; i < 255; i++)
{
analogWrite(led, i);
delay(5);
}
}
}
}
Tags:
É provável que essa biblioteca que você esta usando não seja compatível com a IDE 1.0.1.
De qualquer forma, tente colocar a linha "CapSense cs = CapSense(cap1,cap2);" antes do void setup.
Obrigado.
Tentei más não funcionou,
se a biblioteca nao for compatível, existe alguma solução?
Essa biblioteca ja foi alterada pra ser suportada pela IDE 1.0.1. Quase nada foi mudado. Segue o link para download:
Abaixo é o seu código usando a nova biblioteca.
#include <CapacitiveSensor.h>
const int lampada = 8;
const int led = 10;
const int cap1 = 4;
const int cap2 = 2;
const int ledL = 1;
const int sensibil = 500;
bool ligado = 0;
CapacitiveSensor cs = CapacitiveSensor(cap1,cap2);
void setup()
{
cs.set_CS_AutocaL_Millis(0xFFFFFFFF);
pinMode(lampada, OUTPUT);
pinMode(led, OUTPUT);
analogWrite(led, ledL);
}
void loop()
{
long cap = cs.capacitiveSensor(30);
if (cap > sensibil )
{
if (ligado)
{
ligado = !ligado;
digitalWrite(lampada, ligado);
for (int i = 255; i > ledL; i--)
{
analogWrite(led, i);
delay(5);
}
}
else
{
ligado = !ligado;
digitalWrite(lampada, ligado);
for (int i = ledL; i < 255; i++)
{
analogWrite(led, i);
delay(5);
}
}
}
}
Cara,
Muito obrigado mesmo!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por