Как перезапустить счетчик в программе с помощью кнопки в настройке LDR Tripwire
Итак, я пытаюсь настроить этот код так, чтобы, когда я нажимаю кнопку, счетчик людей обнулялся, и при этом счетчик увеличивался, когда LDR отключался, и снова, когда кнопка была нажата, счетчик обнулится.
#include <LiquidCrystal.h>
int laser=8;
int pushbutton=12;
int flag=0;
int myCounter = 0;
LiquidCrystal lcd(7,6,5,4,3);
void setup()
{
pinMode(laser,OUTPUT); pinMode(pushbutton,INPUT);
lcd.begin(16, 2);
lcd.print("Person Counter:"); lcd.setCursor(0,1);
lcd.print(0);
}
void loop()
{
lcd.setCursor(0, 1);
digitalWrite(laser,HIGH);
if(analogRead(A0) < 600) //A0= LDR
{
flag = 1;
}
if(analogRead(A0) > 600 && flag == 1)
{
myCounter++;
delay(200);
lcd.print(myCounter);
delay(20);
flag=0;
}
}
@Samanwaya Datta, 👍1
1 ответ
▲ 1
Попробуйте этот код. Я внес некоторые изменения и закомментировал это.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3);
int laser = 8;
int pushbutton = 12;
int flag = 0;
int myCounter = 0;
void setup()
{
pinMode(laser,OUTPUT);
pinMode(pushbutton,INPUT_PULLUP); // Обеспечиваем подтягивание
lcd.begin(16, 2);
lcd.print("Person Counter:");
lcd.setCursor(0,1);
lcd.print(0);
}
void loop()
{
lcd.setCursor(0, 1);
digitalWrite(laser,HIGH);
if(analogRead(A0) < 600) //A0= LDR
{
flag = 1;
}
if(analogRead(A0) > 600 && flag == 1)
{
myCounter++;
delay(200);
lcd.print(myCounter);
delay(20);
flag = 0;
}
if(digitalRead(pushbutton) == LOW) // При нажатии кнопки
{
myCounter = 0; // Устанавливаем счетчик на 0
}
}
,
@Help2Engg
Смотрите также:
- Код Arduino для управления 4 светодиодами с 4 кнопок
- DS3231 + кнопка для включения подсветки
- Arduino ждет, пока кнопка не будет отпущена для активации
- Как запрограммировать кнопку джойстика, чтобы сбросить все?
- avrdude ser_open() can't set com-state
- Float печатается только 2 десятичных знака после запятой
- ошибка: espcomm_upload_mem failed при загрузке скетча
- Определение того, была ли нажата и отпущена кнопка
Рад помочь вам., @Help2Engg