Назрел вопрос....калибровка налитого производится только в скетче? или можно это сделать без подключения к компу?
обьеденить землю? просто соеденить минусы?Так, вчера пока собирал макетку сделал ряд глупостей, а может и не ряд. Но расскажу как собирал, может кому поможет. Буду дополнять.
1) Т.к. программа у меня была и все библиотеки у меня были, то первое что сделал - открыл скетч. В нем переключил на библиотеку FastLED. Для этого в основном файле silver_naliv_20.ino закомментировал строку № 80
//#define REPLACE_FASTLED // пункт 0 , если есть , то используется библиотеа microLED, если нет - FastLED
Далее перевел скетч на работу с сервоприводом, для этого поставил комментарий в строке №123
//#define STEPPER_ON
Прошился. Плата именно такая, ну почти. Разводка 1 в 1, расположение компонентов такое же. Цвета их немного другие. Она не на СH340, но я видимо что то подобное уже подключал и проблем не было.
Посмотреть вложение 18625
2) Начал с подключения МП3 плееера, по схеме парой постов выше https://community.alexgyver.ru/attachments/1605894192095-png.18612/
После включения в мониторе порта получил сообщение "mp3 Ok!" Для этого надо в основном файлу убрать комментарии со сток 269 и 273
//Serial.println(F("No mp3!"));
//Serial.println(F("mp3 ok!"));-
3) Подключил дисплей по i2c , я взял побольше 1106. Так же к 5в. После включения (да , я люблю все проверять поэтапно) попал в режим калибровки, который без энкодера прощелкалася и я попал в меню.
Все питание брал пока вот от такого преобразователя. Не забывайте объединить землю! Это важно. С дерьмовым напряжением может просто не запуститься что нибудь, тот же мз3 плеер например. Ему 1 ампер нужен вроде как. Но на самом деле меньше. Дже не пытайтеся повесить на ардуину! Так же , перед заказом компонентов, посчитайте по максимуму сколько ампер вам понадобиться на все это шапито. Удивитесь
Посмотреть вложение 18627
4) Подключил энкодер, круглый, все данные по умолчанию. Главное хорошие контакты ! У меня не очень, провода в макетке шатаются, но тем не менее он заработал сразу. Я зашел в режим калибровки и покрутил туда-сюда, значения менялись и вверх и вниз. Учтите, что значение угла ОТСТАЕТ от вращения энкожера, т.к. в первую очередь идет обработка поворота сервы (она пока не подключена), а в свободное время, когда вы не вращаете энкодер, идет обновление угла. После настройки я попал в основное меню и... и получил полудохлые отзывы от энкодера.. Что такое ? Путем нехитрых действий, я понял, что дикую задержку дает обращение к мп3 плееру, причем если его включить, то все нормально работает.. Это была первая ошибка которую я сделал: Я НЕ ПОДКЛЮЧИЛ 12-ЫЙ ПИН К КОНТАКТУ BUSY MP3, и программа просто не понимала работает плеер или нет и без конца слала ему команды. После подключения все заработало чисто и ровно. А да.. это была не 1-ая ошибка, 1-ая была в том, что я подключил энкодер к 2-м землям , а не к земле и +5в. Но ее я обнаружил еще до включения, так что все проверяйте по 2 раза.
5) Подключил сервопривод. без драйверов. +5 и GND к источнику питания, а управляющий на 9-ый пин . Получил при включении дерг на 90 градусов.. Вроде бы от него избавлялся уже. Поправил код. Поправленный код будет выложен по окончании сборки.
Отдельно хотел остановиться на таймингах для сервы. В настоящее время все настроено так:![]()
И особых дрыгов не замечено. Если SERVO_DELAY сделать совсем маленьким, то помпа и не дернется. Моя серва вполне позволяет снизить это время до 22. STEP_TIME может быть любым, но если сделать его сильно большим, то носик будет двигаться рывками. 10-15 в моем случае нормально.C++:#define STEP_TIME 15 // свободное время между дрыгами сервы, чем больше время, тем проше играть энкодером во время движения, но и серва будет работать медленне #define SERVO_DELAY 25 // время необходимое серве для завершения 1-го шага движения.
С подключением светодиодов проблем никаких нет. Питание к БП.
Расскоментировав строку с #define REPLACE_FASTLED (80-ая) перепрошился на микроЛЕД. С версией 2.3 все работает, проблем пока не выявил. Использование этой библиотеки освободило примерно 6% памяти устройства, что не мало.
6) Подключение помпы. Для подключения помпы мне понадобилось n-канальный мосфет, у меня под руку попал IRF8743, 10к резистор. Подключал по такой схеме:
Посмотреть вложение 18695
Для тех, кто любит цветные картинки вот еще:
Посмотреть вложение 18697
При таком раскладе высокий сигнал на пине D13 включит мотор, низкий - выключит.
7) Подключение датчиков рюмок.
Посмотреть вложение 18747
Прошло без осложнений. Подключал такие вот штуковины. 2 концевые кнопки. Подключаются элементарно, все выходы подписаны. Для стандартной прошивки надо землю на С или COM, а на пин Аn с контакта N0. Тогда разомкнутое значение будет соотв. 1000, а нажатое 10 или меньше. Напомню, что пины А открыт с подтягивающим резистором.
Очевидно, что концевик меньшего размера требует меньшего усилия нажатия. Так что для небольших легких рюмок можно рекомендовать именно его.
Оптический датчик с 1-ой регулировкой подключается к земле (G), питания (VCC) и пину А (out). На стекло срабатывает, на темные матовые предметы нет. Так что если у запланирована рюмка из черного матового стекла - лучше сначала проверить. Значение при поднесении стекла менее 50.
Оптический датчик с 2-мя регулировками подключается аналогично предыдущему, контакт датчика E не подключается никуда. Этот датчик в отличии от предыдущего отлично реагирует на темные матовые поверхности. Так что если есть выбор, то лучше взять его.
Т.к. датчики реагируют на стекло, то надо хорошенько продумать как их герметизировать от случайных проливов.
nota bene:
Иногда память устройства начинает куда то уходить. Помогает перезапуск arduino IDE. У меня так непонятно с чего стало требовать больше 100%. При обычном 98-99% для FastLED
Гостей нельзя, пандемия.а позвать гостей, разрезать ленточку
Можно пожалуйста поподробнее, что за аппаратный сериал?0
Аппаратный сериал, при работе с шаговым двигателем на него подключается кнопка нулевого положения сервы.
1
Аппаратный сериал.
Было бы проще для многих просто нарисовать схему подсоединенийUART , который выведен на пины 0 и 1, по нему идет обмен данными с монитором порта, Serial.begin как раз его инициирует
Он выделен, rx 0, к нему концевик шаговика.Было бы проще для многих просто нарисовать схему подсоединений
С памятью кажется все хорошо с этой платойВозможно у меня где то читает регистры, не помню, но надо проверить. Точно надо убрать библиотеку DIO2, соотв . внести изменения. там не сложно, где будет ругаться убирать 2