Подсчет срабатываний датчика

vlasov-serg-27
Offline
Зарегистрирован: 21.06.2014

Здравствуйте, подскажите как организовать подсчет срабатываний датчика освещености, он подключен к порту цифровому 3, аналоговому 0.

Вот написал программу но как только его освещаю, он начинает увеличивать переменную на единицу, а мне требуется если он освещен то только одна единица должна занестись в переменую, при следующем освещении опять прибавиться единица. 

Подскажите как это реализовать.

Вот программа:
 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int analogPin=A0;
const int sensor=3;
int sensorValueDI=0;
int sensorValueAI=0;
int ksd=0;
 
 
void setup()
{
Serial.begin(9600);
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
pinMode(sensor,INPUT);
}
 
void loop()
{
//Serial.print(sensorValueDI);
//Serial.println();
//Serial.print(sensorValueAI);
//Serial.println();
sensorValueDI=digitalRead(sensor);
sensorValueAI=analogRead(analogPin);
lcd.clear(); // Очищаем дисплей 
if(sensorValueDI==LOW)
{
ksd++;
}
lcd.clear(); // Очищаем дисплей 
lcd.setCursor(0, 0);
lcd.print(sensorValueDI); // Выводим значение
lcd.setCursor(0, 1);
lcd.print(ksd); // Выводим значение
}
 
JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

сравнивайте с преидидущим состоянием - если не поменялось, то не считаем, если поменялось и стало "освещенным", то прибавляем