Почему мой счетчик холла не считает?
Я хочу использовать датчик эффекта Холла с таймером (millis). Счетчик должен сбросить через 1 секунду и распечатать данный счетчик.
const int Hallsensor=3;
int HallValue;
int LastHallValue;
int Hcount =0;
unsigned long timer = 0;
unsigned long start_time = 0;
void setup() {
pinMode(Hallsensor, INPUT);
Serial.begin(9600);
counting = true;
start_time = millis();
}
void loop() {
LastHallValue = HallValue;
timer = millis();
if((timer - start_time) >= 1000) {
HallValue = digitalRead(Hallsensor);
if (HallValue == LOW and LastHallValue == HIGH) {
Hcount++;
Serial.println(Hcount);
} else {
if(counting == true) {
Serial.print("Count is");
Serial.println(Hcount);
counting = false;
}
}
}
}
@Willis Houtman, 👍0
Обсуждение1 ответ
▲ 0
const int Hallsensor=3;
int HallValue;
int LastHallValue;
int Hcount =0;
unsigned long timer = 0;
unsigned long lastChangeTime = 0;
void setup()
{
pinMode(Hallsensor, INPUT);
Serial.begin(9600);
counting = true;
start_time = millis();
}
void loop()
{
LastHallValue = HallValue;
HallValue = digitalRead(Hallsensor);
if (HallValue == LOW and LastHallValue == HIGH){
Hcount++;
lastChangeTime = millis();
Serial.println(Hcount);
}
else{
if(counting == true){
Serial.print("Count is");
Serial.println(Hcount);
counting = false;
// Serial.println(LastHallValue);
}
}
if( (Hcount>0) && (millis() - lastChangeTime) >= 1000){
Hcount = 0;// сбросить счетчик, если он не увеличился в последнюю секунду.
}
}
,
@Gerben
Просто публикация другого кода без объяснения причин не является полезным ответом. **Укажите, что вы изменили** и дайте хотя бы несколько слов объяснения того, какую проблему это решает., @Chris Stratton
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Ваш датчик Холла, который выводит аналоговый сигнал, пропорциональный напряженности магнитного поля, или он выводит сигнал логического уровня? Пожалуйста, отредактируйте свой вопрос, чтобы включить номер детали датчика Холла и/или схему данных., @jose can u c
Мой датчик Холла выводит аналоговый датчик, пропорциональный напряженности магнитного поля. Высокий и низкий работает в нашем случае (хотя нам нужен усилитель телосложения)., @Willis Houtman