Arduino ir talpuminis lietimo sensorius 2016.02.10 at 14:07

Vienam iš projektų reikia padaryti pašvietimą. Bet paprastai uždegti LEDą ar lemputę neįdomu. Taigi, užduotis tokia – palietus prietaiso metalinį korpusą (nesujungtas su GND), apšvietimas turi lėtai užsidegti, degti kol liečiamas korpusas ir lėtai užgesti kai jau neliečiamas. Su Capacitive Sensor V5 pagalba tas padaroma labai paprastai, tik pakoreguojant kodą pagal savo poreikius:

 

#include <CapacitiveSensor.h>

// Išėjimai

const int led = 3;                                      // LED išęjimas, 3 kontaktas, mokantis PWMinti.

int i = 0;                                              // Įsivedam vieną kntamąjį
CapacitiveSensor   sensorius = CapacitiveSensor(4, 2);  // Rezistorius tarp 4 ir 2 kontaktų, 2 sensorinis

void setup()
{
  pinMode (led, OUTPUT);                             // Nustatom 3 kontaktą kaip išėjimą
  digitalWrite (led, LOW);                           // Inicializuojam LEDą
  sensorius.set_CS_AutocaL_Millis(0xFFFFFFFF);       // Autokalibracijos išjungimas
}

void loop()
{
  long laikas =  sensorius.capacitiveSensor(60);     // Matavimų skaičius vidurkio skaičiavimui
  if (laikas > 600)                                  // Jeigu paskaičiuotas vidurkis daugiau 600 ms
  {
    while (i < 255)                                  // ************************
    {                                                // * Kai vidurkis daugiau *
      analogWrite (led, i);                          // * 600 ms lėtai uždega  *
      i++;                                           // * LEDą ir laiko, kol   *
      delay (8);                                     // * liečiamas sensorius  *
    }                                                // ************************
  }
  else
  {
    while (i >= 0)                                   // ************************
    {                                                // * Atvirščias procesas, *
    analogWrite (led, i);                            // * kai laikas < 200,    *
    i--;                                             // * lėtai užgesina LEDą  *
    delay (8);                                       // ************************
    }
    i = 0;                                           // Įnulinam kintamąjį, nes kitaip atsiranda
  }                                                  // neteisingas LED mirktelėjimas
}
O štai ir video:

Leave a Reply

*