Прошу помощи.

Granit22
Offline
Зарегистрирован: 18.04.2016

Нужно собрать тахометр на авто.

В данный мометн собрана схемка на гекконе, но проблема в том что я не могу заставить его показывать его обороты в минуту, у меня на экране просто счетчик оборотов за все время. Прошу, помогите заставить его показывать обороты за минуту, с обновлением строки хотябы в раз в секунду. 

 

01#define reed A0 //Номер пина к которому подключен геркон
02#include <LiquidCrystal.h>
03LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
04 
05int gek; //показания гекона
06int ledPin = 13;
07int rpm;
08unsigned long odd; //количество оборотов колеса
09int current;
10int last;
11unsigned long time;
12int odd1;
13 
14 
15void setup(){
16Serial.begin(9600);
17lcd.begin(16, 2);
18lcd.print("test");
19time = millis();
20}
21 
22void loop(){
23gek = digitalRead(reed); // считываем знаение A0
24Serial.println(odd1); // выводим в Serial Monitor
25 
26current = digitalRead(gek);
27if (current && !last) odd++;
28last=current;
29 
30 
31 
32    
33  
34   current = digitalRead(gek);
35   if (current && !last) odd1++;
36   last=current;
37    
38   if (odd1 == 2)
39   {
40    rpm = (150000/(millis() - time));
41    odd1 = 0;
42    time = millis();
43   }
44 
45    
46   lcd.setCursor(9, 1);
47   lcd.print("ODD1");
48   lcd.setCursor(14, 1);
49   lcd.print(rpm);
50     
51    
52 
53 
54if (gek > 0)
55digitalWrite(ledPin, HIGH);
56if (gek < 1)
57digitalWrite(ledPin, LOW);
58 
59 
60 
61lcd.setCursor(0, 1);
62lcd.print("ODD");
63lcd.setCursor(4, 1);
64lcd.print(odd);
65 
66 
67 
68}

Также есть еще вопрос, можно вместо гекона поставить датчик холла? У меня имеется лишний, а именно дачик абс с BMW E34. Из себя представляет простую катушку с сердечнеком...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Странный у Вас код. Давайте по порядку.

Что у Вас подключено к пинам 0 и 1? Зачем Вы с этих пинов что-то читаете в строках 26 и 34?

И вообще, логика программы абсолютно неочевидна. Не опишете?

Ну, и так по мелочи. Переменные

odd1 в строке 24
odd1 в строке 27
last в строке 27

используются до определения.

Granit22
Offline
Зарегистрирован: 18.04.2016

К выводу А0 подключен геккон, считывать с него у меня получилось, получилось считать обороты за все время работы Ардуины. 

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

Помогите, прошу. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, нет, я не про А0.

В строках 26 и 34 Вы читаете с цифровых пинов 0 и 1. Что туда подключено и зачем Вы это читаете?

arduinec
Offline
Зарегистрирован: 01.09.2015

Прикольно:
gek = digitalRead(reed);  // строка 23
current = digitalRead(gek);  // строка 26

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Granit22 пишет:

Нужно собрать тахометр на авто.

В данный мометн собрана схемка на гекконе

Нехорошо издеваться над животными.

 

 
Granit22
Offline
Зарегистрирован: 18.04.2016

Честно, сам не знаю, собирал код из кусков чужих скетчей. 

Подскажите что убрать из кода, и как считать обороты в минуту и выводить на дисплей. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно. Вам, похоже, прямая дорога в "Ищу исполнителя".

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

...и почитать, чем геркон отличается от геккона....

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

OlegK пишет:

...и почитать, чем геркон отличается от геккона....

цветом?

Тарас Петрович
Offline
Зарегистрирован: 21.11.2015

Устройство, которое автор хочет сделать, по сути является частотомером. Это для определения направления поиска. Наиболее близкими частными случаями являются спидометр или тахометр. На форуме подобные темы есть. Сам недавно деал спидометр, прада я считал количество импульсов за секунду. Единственное- геркон даёт дребезг, с которым придётся побороться программно. Индуктивный датчик потребует некой схемы (несложной), которая приведёт его сигнал в вид, понятный контроллеру. Датчик Холла будет наиболее выгодным в этом отношении.

ptr
Offline
Зарегистрирован: 28.05.2016

Тарас Петрович пишет:

Индуктивный датчик потребует некой схемы (несложной), которая приведёт его сигнал в вид, понятный контроллеру. Датчик Холла будет наиболее выгодным в этом отношении.

Плюсую.

diger67
Offline
Зарегистрирован: 25.07.2015

Помощи вы могжите и не дождаться от тусующихся сдесь профессионалов, а вот для примера могу предложить посмотреть вот эту статейку http://cxem.net/arduino/arduino66.php

А так быстрее найдете подходящий вариант набрав в поисковике  "тахометор на arduino"  или что то подобное.

bwn
Offline
Зарегистрирован: 25.08.2014

diger67 пишет:

Помощи вы могжите и не дождаться от тусующихся сдесь профессионалов.

Гуру то здесь причем? Зачем дергать код из десяти мест и дальше заниматься его скрещиванием?
Стоит всего две задачи - отмерить контрольный промежуток, посчитать количество щелчков. Перемножением привести к минутам, часам, суткам и т.д. Это вроде в учебнике математики класс за 3-4. Скорость поезда никогда по столбам не вычисляли? ТС даже не начал это делать.((((