Ёмкостной датчик
- Войдите на сайт для отправки комментариев
Добрый день! Гуру, помогите пожалуйста чайнику!
Задачка выглядела примерно так:
Ёмкостной датчик, это труба в трубе. Датчик включен в качестве конденсатора в генератор насчётчике ВИ-1. При наполнении зазора между трубами, частота генерации меняется. Этот узел работает надёжно и стабильно. Дальше - Ардуина. Поскольку, тему я знаю плохо, и с подключением индикатора мне не справиться, то в качестве индикатора решил использовать готовый цифровой вольтметр. Ардуина же должна выдавать аналоговый сигнал по выходу PWM с соответствующим уровнем, который подключен к этому вольтметру.
Сразу раскрою карты: я - полнейший дилетант. Ардуину освоил на уровне мигания диодиком, шевеления сервами и прочими несложными операциями. После долгих неудачных попыток сделать надёжный и стабильный блок частотомера, нашёл готовый в сети. Ссылку потерял, там шла речь про велоспидометр.
К готовому блоку программы этого велоспидометра я добавил с десяток своих строк (почти все они в "void loop()". В общем, после некоторой отладки всё заработало. Всё супер, и как мечталось, если бы одна проблема:
Скетч не запускается при подаче питания. Чтобы он запустился, надо подключить ардуину к компьютеру, войти в "монитор порта", дать команду "run@ или "print", тогда всё начинает работать.
Скорее всего, так сделан блок частотомера, который я дёрнул из сети. Для меня он неимоверно сложен, и логики его работы я не понимаю.
Просьба к специалистам: проверьте пожалуйста скетч на предмет незапускаемости без подключения к компьютеру:
Ардуина же должна выдавать аналоговый сигнал по выходу PWM с соответствующим уровнем, который подключен к этому вольтметру.
Кому это, интересно, она так задолжала? PWM выдаёт, а вот аналоговый сигнал с каким-бы то ни было уровнем, отличным от HIGH и LOW она никому не должна.
Чтобы он запустился, надо подключить ардуину к компьютеру, войти в "монитор порта", дать команду "run@ или "print", тогда всё начинает работать.
В том коде, что Вы привели нет ни одной операции чтения чего-либо из порта. Так что Вы можете подавать команду "run@", "print" или даже "lyaba-zyaba" сколько угодно, программа всё равно не читает никаких команд. Так что дело не в этом.
И пожалуйста, соблюдайте правила форума. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Аналоговый сигнал 0-5В получается из-за ёмкости, которая стоит на входе вольтметра. Это работает. Меня вообще всё устраивает, кроме того, что скетч не запускается без компьютера.
О правилах не знал, буду соблюдать. Как редактировать первое сообщение, не нашёл.
В чём может быть причина? В дефекте загрузчика, или сам камень битый?
В чём может быть причина? В дефекте загрузчика, или сам камень битый?
Опубликуйте код номрально. Смотреть на него так очень трудно и теб более обсуждать.
Для этого не обязательно править первое сообщение, отдельным сообщением опубликуйте.
Ок.
Пояснение: аналоговый вход А5, это для подстройки. На нём делитель с подстроечником, чтобы можно было выставить нужную цифру при полном баке. Так надо, поскольку диэлектрическая проницаемость сжиженного газа бывает разной. Установка на "ноль" при пустом баке делается один раз, правкой кода (1-я строка). Все "принты" в конце - это чисто для настройки, при работе они не нужны. Конечная цель - строка "analogWrite(6,PW);", больше ничего не требуется.
В этом коде я не вижу причин почему бы он начинал работать только после плясок с бубнами вокруг сериала. Ищите причины в питании и вообще в схеме.
14-ая строка не нужна. PWM не нуждается в конфигурации порта. Уберите от греха подальше.
16-ая строка непонятна. 5-ый цифровой пин, кажется нигде не используется. Или я что-топропустил? Если не используется, то тоже убирайте.
14-я строка, понял.
16-я строка: 5-й цифровой пин, это как раз входной сигнал от генератора. Достался от автора базового кода (велоспидометр). Я его и использую.
14-я строка, понял.
16-я строка: 5-й цифровой пин, это как раз входной сигнал от генератора. Достался от автора базового кода (велоспидометр). Я его и использую.
В каком месте Вы его используете? Я не нашёл. Номер строки?
Ага, дошло, Вы его в строке 26 используете, сорри.
Евгений, спасибо! Вы меня успокоили, код не виноват. Менять в схеме мне особо нечего, отладка происходит на плате Ардуино Уно. Проще всего попробовать заменить контроллер.
Вопрос снят, дело в контроллере. После замены стал запускаться без сериала. Спасибо!