Тахометр таймер, помогите новичку.
- Войдите на сайт для отправки комментариев
Всем доброго дня!
Вот, занялся ардуиной, но на все мозгов явно не хватает. Решил сделать полезный прибор для токарного станка, вроде что-то получилось, но не совсем. Тахометр работает, обороты считает, правда при остановке не обнуляется, но это не страшно. Часы тоже работают, но постоянно, а хотелось бы чтоб часы, как таймер, начинали работать при оборотах на тахометре, ну например больше 300, и останавливались меньше 300, и т.д. Таким образом можно было бы считать по времени работу двигателя станка за день. Перерыл кучу разных скетчей, в поисках примеров похожих задач, но ничего найти не могу. Подскажите, где копать? Какие функции за это отвечают. При блокировании строки //time = millis()/1000; часы останавливаются.
Вот мой скетч.
#define RPMpin 2 // датчик Холла #include <LiquidCrystal.h> unsigned long time; LiquidCrystal lcd(12,11,6,5,4,3); long microsold = 0; int rpm = 0; void setup() { attachInterrupt(0, RPM, FALLING); lcd.begin(16, 2); } void loop() { delay(500); lcd.clear(); lcd.print("RPM ="); lcd.setCursor(6,0); lcd.print(rpm,DEC); time = millis()/1000; lcd.setCursor(0,1); if (time/60/60<10); lcd.print(time/60/60); lcd.print(":"); if (time/60%60<10) { lcd.print ("0"); } lcd.print((time/60)%60); lcd.print(":"); if (time%60<10) { lcd.print ("0"); } lcd.print(time%60); } void RPM () { rpm = (1000000.0/(micros() - microsold))*30; microsold = micros(); }
ну, подключи блок питания балалайки параллельно с двигателем токарного станка.
для остановки времени, то я бы добавил три глобал переменных , время_на _цикл , работа_за_ден и хранитель последнего_миллис. Первая обновляется/считается в каждом прогоне как :
Спасибо за ответ. Да оператор "if" знаком, я при помощи его выводил на дисплей какой нибудь символ.
Вам все правильно MagicianT подсказал. Добавлю, что обороты лучше считать не каждый в отдельности, а скопом за промежуток времени. Проверить не на чем сейчас, так что сорри, если ошибся где в синтаксисе, но, думаю смысл должен быть понятен. Ваши участки про вывод на LCD не трогал:
PS оптимизация за вами :)
Спасибо за скетч! Попробую с ним поразбираться, тоже интересно. Сейчас его залил, пока не работает, все по нолям, импульсы с датчика не видит. Вчера по совету MagicianT позанимался со своим скетчем, все заработало. Таймер теперь включается и отключается, работает в режиме накопления, все как надо, спасибо. Добавил это.
if( rpm >= 300){time = millis()/1000;}
Сейчас пробую добавить стрелки, больше меньше. То-есть чтоб показывали, увеличиваются обороты, или уменьшаются. Но пока только работают от заданного числа, до 200 горит одна, после 200 другая. Может кто подскажет, где копать?
Чтобы узнать увеличивается или уменьшается, нужно взять первую производную. Непугаитесь, дифференцирование это очень просто, надо отнять старое от нового значения и посмотреть знак. Старое значение надо сохранить, чтоб не затерлось, также как prevTime например.
Таймер теперь включается и отключается, работает в режиме накопления, все как надо, спасибо. Добавил это.
if( rpm >= 300){time = millis()/1000;}
Вы сейчас перевернули мое мировоззрение... как оно может работать в режиме накопления (я же правильно понимаю, что считать время нужно только когда мотор работает на оборотах >=300), если в любом случае при достижении 300 оборотов запоминается время с момента включения контроллера (всё время - вне зависимости от того работал мотор или нет)?
Вот спасибо за подсказку! Попробую разобраться.
Таймер теперь включается и отключается, работает в режиме накопления, все как надо, спасибо. Добавил это.
if( rpm >= 300){time = millis()/1000;}
Вы сейчас перевернули мое мировоззрение... как оно может работать в режиме накопления (я же правильно понимаю, что считать время нужно только когда мотор работает на оборотах >=300), если в любом случае при достижении 300 оборотов запоминается время с момента включения контроллера (всё время - вне зависимости от того работал мотор или нет)?
Счет начинается при достижении оборотов за 300. Останавливается при меньше 300, и снова продолжается опять за 300 прибавляя время работы. Все как надо.
Сейчас еще раз все проверил, да, счет то на дисплее останавливается, а время фактический идет, и при повторном запуске оно складывается. Надо думать.
Не знаю, что там у вас со счетчиком оборотов не сложилось. Ок, оставляем ваш счетчик, добавляем просто рассчет времени.
Вот Ваш скетч теперь работает, и действительно как надо. большое спасибо! Счетчик останавливается полностью, Только задержку поставил 1000, а то показания тахометра сильно прыгают. Теперь попробую тщательно с этим всем разобраться, и стрелки ввести. Еше раз спасибо!
MagicianT Спасибо за пример, стрелки заработали. Вот только не совсем понимаю как это достигнуто. Пробую разобраться с тахометром от Okta, не совсем все понятно. Ребята, подскажите, где можно почитать про differencial, dayTime, nowTime, prevTime и т.д. А то прочитал весь раздел программирования, не нашел таких функций. А хотелось бы знать что они конкретно выполняют и за что отвечают. И вообще, в разных скетчах, много всего, чего нет в разделе. Где же это читают?
Это не функции. Это переменные, про них и почитайте - без них дальше никак.
Повторю.
Нужно помочь самому себе. Пост:
https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%A1%D0%B8_%28%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0%29
https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%81%D1%82%D1%83%D0%BF_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29
http://lib.ru/CTOTOR/kernigan.txt_with-big-pictures.html
Абрам 30 лет молился богу - я работаю в поте лица, не пропускаю молитв и всегда прошу помочь мне! Ну почему боже ты не можешь дать мне например миллион долларов?
БОГ - Абрам, дай мне шанс - КУПИ ЛОТЕРЕЮ!
Ребята, прочтите книжку! (Керниган и Ритчи) Куча вопросов отпадет.....
Ну а на десерт - 4х томник Кнута "Искусство программирования"- классика жанра ;)
https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
Не всё сразу. Кто-то сразу пониманиет теорию, а комуто надо сначала "пощупать результат", а потом уже рыть теорию (так сказать имея неопровержимые доказательства, что она работает). Понятно, что если человек хочет сразу собрать звездолет, то он мимо кассы. В данном случае, простейший код, на котором можно разобрать простейшие понятия, а дальше обратиться к базовым урокам программирования. С историями возникновения и тому подобным - ознакомление будет само собой, когда в том появится потребность. Начинать с этого - просто сразу убить желание подобными вещами заниматься (ИМХО, если речь идет о хобби). Тыщу раз уже это обсуждалось.
okta , это очень странно
Кто-то сразу пониманиет теорию, а комуто надо сначала "пощупать результат", а потом уже рыть теорию (так сказать имея неопровержимые доказательства, что она работает).
ты не веришь Энштейнову, Герцову, Омову, Теслову и др. нашим ( не ИГИЛ ) ?
"из двух спорящих - один дурак , второй - сволочь"
спроси по буквам , спроси по резисторам....
....помогут :)
Начинать с этого - просто сразу убить желание подобными вещами заниматься (ИМХО, если речь идет о хобби). Тыщу раз уже это обсуждалось.
и чем ты здесь лучше Клапауций 322 , 323 , 324....................................................... ХЗ ?
...ты убиваешь желание , а он уже "мопеды" начал делать....
поток мысли надо как-то ограничить :)))))
Не всё сразу. Кто-то сразу пониманиет теорию, а комуто надо сначала "пощупать результат", а потом уже рыть теорию (так сказать имея неопровержимые доказательства, что она работает)
на такой волне как-то схватился с Лешаком ( давно не видно , лишь бы не заболел ) - обсуждать мона всё , но не УСТОИ !!!!!
поток мысли надо как-то ограничить :)))))
ТАК И СДЕЛАЙ !
....себе
:)-
поток мысли надо как-то ограничить :)))))
ТАК И СДЕЛАЙ !
....себе
:)-
нда... сколько полезного автор темы вынес из ваших мудрых изречений?
Вот, занялся ардуиной, но на все мозгов явно не хватает. Решил сделать полезный прибор для токарного станка, вроде что-то получилось, но не совсем.
нда... сколько полезного автор темы вынес из ваших мудрых изречений?
полезное - грузите бочьками !
Теперь понятно, почему новичкам проще найти инфо на зарубежных сайтах...
Теперь понятно, почему новичкам проще найти инфо на зарубежных сайтах...
это стандартный выход с сайта , если не умеешь спрашивать нормально....
УДАЧИ !
.......новичкам проще........
"А Я ЗА ЧТО ЕЁ ДЕРЖАЛ !!!!!!!!!!"
...я такой же как ты ! не ори здесь... Разбудишь ЗВЕРЯ - сам и дурак....
Теперь понятно, почему новичкам проще найти инфо на зарубежных сайтах...
это стандартный выход с сайта , если не умеешь спрашивать нормально....
УДАЧИ !
Нда... Не почитав тему, не посмотрев кому отвечаем (я что-то спрашивал?)... Полный неадекват...
.......новичкам проще........
"А Я ЗА ЧТО ЕЁ ДЕРЖАЛ !!!!!!!!!!"
...я такой же как ты ! не ори здесь... Разбудишь ЗВЕРЯ - сам и дурак....
Заслуженный троль или просто пьяный бред?
okta ,
"Вот , занялся ардуиной, но на все мозгов явно не хватает"
Прочитавший ТЕМУ , увидевший кому прочитанное написано ,
написал ответ прочитавшему , которому прописанное было предназначено !
кататак :)
Заслуженный троль ! и просто пьяный бред !
Спасибо !
Спасибо !!
Клапауций 322, 323......999, 000 , 001....
и чем ты здесь лучше Клапауций 322 , 323 , 324....................................................... ХЗ ?
Клапауций 000-999 - баноустойчивый ползатель форума arduino.ru
возник, вследствие конфликта с админом форума и его лени ввести верификацию новоиспечённого юзера с помощью почты или иным другим способом.
...ты убиваешь желание , а он уже "мопеды" начал делать....
класс титановый велосипед [название](c)франшиза.
пишутся не для убийства, а для комфортного убийства.
Да что у вас тут за междусобная война? Если у меня есть некоторое свободное время, котрое я готов потратить на ответы для новичков, почему надо влазить в эти темы с непойми какими фразами. Что за бред вы несете? Если в этом еще и модераторы/администраторы форума замешаны, то это вообще груть/печаль.
Клапауций 322 ,
вышеизложенное и подтверждённое тобой = -Клапауций -0000
мине тоже по пояс !!!
но неприятно....
не нано !!!!!!!
Да что у вас тут за междусобная война? Если у меня есть некоторое свободное время, котрое я готов потратить на ответы для новичков, почему надо влазить в эти темы с непойми какими фразами. Что за бред вы несете? Если в этом еще и модераторы/администраторы форума замешаны, то это вообще груть/печаль.
перечитай свои вопросы....
Клапауций 000-999 - баноустойчивый ползатель форума arduino.ru
перед кем ? от кого ? от чего ?
....устойчивый ?
Прочитайте свои посты. И оцените их для тех, кто не в курсе. Что за бред? Можно объяснить? Или тут надо фрейда привлекать и анализировать за что и кого там держали, и кто такой лешак и какие у вас были взаимоотношения...
удачи вам ! а лешака - надо читать ! (на этом сайте )
#35
Если у меня есть некоторое свободное время, котрое я готов потратить на
дык , используйте его....
пардон , ПимБой....
N = 300
если обороты шпинделя > N - записать на SD Ton И ВРЕМЯ
если обороты шпинделя < N - записать на SD Toff И ВРЕМЯ
сняв показания с SD можно узнать левачил ЛИ токарь за смену....
можно писать в память поминутно - за 3...5 лет МК не убьёте.....
про что вопрос-то ?
все вышеизложенные тексты ( коды ) не устойчивы к отключению по питанию.....
МОЯ МНЕНИЯ !
важно чтоб он считал от включения и до выключения прибора, по оборотам. Может еще кто что-то подскажет дельное. Спасибо, буду пробовать копать в этом направлении. А то судя по первому ответу, показалось что тут одни электрики.
ЕЩЁ из авиации некоторые приблудились....
счётчик мото-часов чёли ? НиХеРаСиБеЗаДача !!!!!!
Блок НХРСБ-ЗД-010.006 можно будет впихнуть за 1500р.
воооооооообще - мне "по пояс" !