Прошу помощи.
- Войдите на сайт для отправки комментариев
Пт, 26/08/2016 - 19:29
Нужно собрать тахометр на авто.
В данный мометн собрана схемка на гекконе, но проблема в том что я не могу заставить его показывать его обороты в минуту, у меня на экране просто счетчик оборотов за все время. Прошу, помогите заставить его показывать обороты за минуту, с обновлением строки хотябы в раз в секунду.
01 | #define reed A0 //Номер пина к которому подключен геркон |
02 | #include <LiquidCrystal.h> |
03 | LiquidCrystal lcd(7, 8, 9, 10, 11, 12); |
04 |
05 | int gek; //показания гекона |
06 | int ledPin = 13; |
07 | int rpm; |
08 | unsigned long odd; //количество оборотов колеса |
09 | int current; |
10 | int last; |
11 | unsigned long time; |
12 | int odd1; |
13 |
14 |
15 | void setup (){ |
16 | Serial .begin(9600); |
17 | lcd.begin(16, 2); |
18 | lcd.print( "test" ); |
19 | time = millis(); |
20 | } |
21 |
22 | void loop (){ |
23 | gek = digitalRead(reed); // считываем знаение A0 |
24 | Serial .println(odd1); // выводим в Serial Monitor |
25 |
26 | current = digitalRead(gek); |
27 | if (current && !last) odd++; |
28 | last=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 |
54 | if (gek > 0) |
55 | digitalWrite(ledPin, HIGH); |
56 | if (gek < 1) |
57 | digitalWrite(ledPin, LOW); |
58 |
59 |
60 |
61 | lcd.setCursor(0, 1); |
62 | lcd.print( "ODD" ); |
63 | lcd.setCursor(4, 1); |
64 | lcd.print(odd); |
65 |
66 |
67 |
68 | } |
Также есть еще вопрос, можно вместо гекона поставить датчик холла? У меня имеется лишний, а именно дачик абс с BMW E34. Из себя представляет простую катушку с сердечнеком...
Странный у Вас код. Давайте по порядку.
Что у Вас подключено к пинам 0 и 1? Зачем Вы с этих пинов что-то читаете в строках 26 и 34?
И вообще, логика программы абсолютно неочевидна. Не опишете?
Ну, и так по мелочи. Переменные
odd1 в строке 24
odd1 в строке 27
last в строке 27
используются до определения.
К выводу А0 подключен геккон, считывать с него у меня получилось, получилось считать обороты за все время работы Ардуины.
Я в програмировании ну просто безсилен, я слесарь по образованию, и вот решил как то ардуину купить, сейчас дошли до нее руки, а голова уже кипит...
Помогите, прошу.
Да, нет, я не про А0.
В строках 26 и 34 Вы читаете с цифровых пинов 0 и 1. Что туда подключено и зачем Вы это читаете?
Прикольно:
gek = digitalRead(reed); // строка 23
current = digitalRead(gek); // строка 26
Нужно собрать тахометр на авто.
В данный мометн собрана схемка на гекконе
Нехорошо издеваться над животными.
Честно, сам не знаю, собирал код из кусков чужих скетчей.
Подскажите что убрать из кода, и как считать обороты в минуту и выводить на дисплей.
Понятно. Вам, похоже, прямая дорога в "Ищу исполнителя".
...и почитать, чем геркон отличается от геккона....
...и почитать, чем геркон отличается от геккона....
цветом?
Устройство, которое автор хочет сделать, по сути является частотомером. Это для определения направления поиска. Наиболее близкими частными случаями являются спидометр или тахометр. На форуме подобные темы есть. Сам недавно деал спидометр, прада я считал количество импульсов за секунду. Единственное- геркон даёт дребезг, с которым придётся побороться программно. Индуктивный датчик потребует некой схемы (несложной), которая приведёт его сигнал в вид, понятный контроллеру. Датчик Холла будет наиболее выгодным в этом отношении.
Индуктивный датчик потребует некой схемы (несложной), которая приведёт его сигнал в вид, понятный контроллеру. Датчик Холла будет наиболее выгодным в этом отношении.
Плюсую.
Помощи вы могжите и не дождаться от тусующихся сдесь профессионалов, а вот для примера могу предложить посмотреть вот эту статейку http://cxem.net/arduino/arduino66.php
А так быстрее найдете подходящий вариант набрав в поисковике "тахометор на arduino" или что то подобное.
Помощи вы могжите и не дождаться от тусующихся сдесь профессионалов.
Гуру то здесь причем? Зачем дергать код из десяти мест и дальше заниматься его скрещиванием?
Стоит всего две задачи - отмерить контрольный промежуток, посчитать количество щелчков. Перемножением привести к минутам, часам, суткам и т.д. Это вроде в учебнике математики класс за 3-4. Скорость поезда никогда по столбам не вычисляли? ТС даже не начал это делать.((((