Умножитель частоты
- Войдите на сайт для отправки комментариев
Чт, 22/08/2019 - 12:35
Добрый день. Мне для установки круиза в авто нужен умножитель импульсов на 3. Я находил на форуме код, но он для nano не подходит, а плата у меня только такая.
Сейчас пробовал такой код, но скорость иногда скачет, и один раз зависла, пока не перезагрузил ардуино.
long time=0;
void setup() {
}
void loop() {
time=pulseIn(A2, HIGH,35000);
if(time==0||time>30000)
{
noTone(13);
}
else if(time<20500)
{
tone(A3,1500000/time);
}
}
Спасайте((
Насколько скачет и по какой причине зависла?
Осциллографа нет, смотрел по спидометру. +-10 кмч скачет, но это вроде не критично, а вот иногда за 200кмч зашкаливает на одну-две секунды. Причины зависания тоже не знаю, логи ведь не пишутся. Зависло, кстати, ровно на 140кмч
Так пишите, кто не даёт-то.
А как на ардуино логи писать? Ноутбука у меня нет, через консоль не посмотрю
Ну, не знаю, если через консоль не посмотрите, так попробуйте на SD-карту. Но понимать что происходит по-любому надо.
Попробую ноутбук найти. Что в код добавить для отладки?
Скорость скачет, скорее всего, от того что вход помехи ловит коих в машине как грязи. И виснуть из-за того же может.
Поставте RC фильтр на пин к которму подключено. А ардуину питаете от чего?
Ардуино питается от понижающего преобразователя. На входе на пин стоит стабилитрон на 5в с резистором, на выходе транзистор. Так как в машине логика 12в, а в ардуино 5в
Cтабилитрон помехи не фильтрует, добавь RC фильтр. А какой конкретно "понижающий преобразователь"?
Готовый китайский, с Али экспресса когда-то заказывал, сточнее нескажу. Могу фотографию сделать
Я бы ещё раз код посмотрел. Чет он мне странным показался. К примеру, вы вызываете функцию tone() на пине А3, а вот noTone() на пине 13. ;)
Да, верно, там ошибка,без неё ситуация такая же