Код для считывания импульсов и вывод на экран

Fela23
Offline
Зарегистрирован: 16.04.2017
Недавно на сайте был предствавлен проект, который подсчитывает обороты двигателя (DC), с помощью датчика Холла 
Код этой программы предствален ниже. Но я вместо датчика Холла решил использовать геркон (на велосипедных спидометрах используется, 
замыкает контакт при намагничивании). Пин датчика тот же 8й, и другая ножка к +5 через резистор 10 Ком на всякй. Нужно чтоб при поступлении на вход 8 - "1" добавлял +1 к состоянию пина Холла и выводил на дисплей
, т.е. подсчитывал обороты. Вроде все просто, но я не могу осилить это, т.к. новичек. Пробывал все что умел, прочел, но макет выдает следующее 
то подсчитывает как счетчик до тех пор пока геркон не замыкается, либо вообще не реагирует на геркон. В общем пока плохо у меня получается, 



//библиотека экрана и пины подключения
#include <LiquidCrystal.h>
LiquidCrystal lcd( 9,10,4, 5, 6, 7);   // пины экрана

//пин датчика Холла
int HollPin = 8;

//переменная запоминания данных датчика
boolean lastButton = LOW;

//переменная импульсов
int impulsi = 0;

void setup()
{
//датчик холла вход
 pinMode(HollPin, INPUT);

   // задаём дисплей 
  lcd.begin(16, 2);
  
  // пишем в верхней строке.
  lcd.print("schitaem impulci");
  
}

void loop()
{
   lcd.setCursor(2,1);
 lcd.print(impulsi);   
  
  if (digitalRead(HollPin) == HIGH && lastButton == LOW)
 {
   impulsi = impulsi + 1;
    lastButton = HIGH;
  }
  else
  {
    //lastButton = LOW;
    lastButton = digitalRead(HollPin);
  }
}

 

nik182
Offline
Зарегистрирован: 04.05.2015

Прочитайте на форуме и сайте про дребезг контактов.

JasKo
Offline
Зарегистрирован: 21.11.2015

Если геркон при срабатывании замыкает пин на общий провод, то это уровень LOW, а теперь нимательно посмотри на строку 40

Fela23
Offline
Зарегистрирован: 16.04.2017

Гиркон замыкает +5V ардуины с 8 пином (который считывает импульсы) т.е. на HIGH срабатывает и записывает импульс выводя на дисплей. А код этот не мой, он от такой же схемы но та схема с датчиком холла и как я понял считает LOW переключения, конечно же я поменял в коде у себя ЛОУ на ХАЙ но не хочет работать
 

 

JasKo
Offline
Зарегистрирован: 21.11.2015

Ну тогда этот пин надо резистором притянуть к общей шине. Иначе на нем когда он не замкнут герконом на 5В присутсвует неизвесно что вместо LOW.