Почему мой счетчик холла не считает?
Я хочу использовать датчик эффекта Холла с таймером (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»?
- Как создать несколько запущенных потоков?
- avrdude ser_open() can't set com-state
- Как подключиться к Arduino с помощью WiFi?
- Mac OSX Yosemite не отображает последовательные порты для Uno R3
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
Ваш датчик Холла, который выводит аналоговый сигнал, пропорциональный напряженности магнитного поля, или он выводит сигнал логического уровня? Пожалуйста, отредактируйте свой вопрос, чтобы включить номер детали датчика Холла и/или схему данных., @jose can u c
Мой датчик Холла выводит аналоговый датчик, пропорциональный напряженности магнитного поля. Высокий и низкий работает в нашем случае (хотя нам нужен усилитель телосложения)., @Willis Houtman