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

Exibições: 988

Responder esta

Respostas a este tópico

É 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:

CapacitiveSensor

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!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço