ARDUINO Наливатор. Обсуждение проекта

Носмас

✩✩✩✩✩✩✩
12 Дек 2019
64
6
И я попробовал.
Я сделал сами площадки датчиков из латуни и расположил их на внешней лицевой поверхности аппарата.
Использовал TTP229 с выпаиванием двух конденсаторов.Что же получилось.
А получилось следующее (экспериментировал с рюмкой номер 3):
  • срабатывание чёткое на всех 4 рюмках (от пальца в паре сантиметров), хотя потом выяснилось что это не так - 4 рюмка мигает красным цветом;
  • при нажатии кнопки пуск, происходит очень быстрое перемаргивание остальных диодов, но на 3 рюмке по прежнему чёткий красный сигнал светодиода. После пермаргивания идёт нормальный налив (на сухую пока). После налива происходит быстрое и хаотичное моргание остальных диодов с дерганием сервы (вероятно в момент перемаргивания, ардуинка принимает сигнал что рюмки стоят);
  • играл с бп и повер банком: особой разницы не увидел (электролит не ставил пока по питанию).
Думал поможет экранирование. Для того чтобы понять поможет или нет, обмотал все провода светодиодов фольгой для запекания и посадил на минус - глюки не прошли, но мне показалось что их стало меньше. Для того чтобы совсем удостовериться в помехах проводов диодов и датчиков с их проводами оторвал диоды с их мест и всю гирлянду вывел за пределы аппарата - глюки как были так и есть.
Первые мысли следующие:
  • не даёт мне покоя мигание 4-й рюмки, поэтому буду пробовать имитировать механической кнопкой, ну или разбираться что не так;
  • поменять прошивку от Левонти (начну с предложенными выше по ветке библиотек), возможно откачу на более раннюю или попробую от Алекса с морды сайта проекта.
Про правильность монтажа: выше писал про рукожопость или что это было уже не знаю и знать не хочу.
Во-первых выкинул нахер плоские провода, и делал другими проводами.
Во-вторых монтировал всё, как раньше это сказали бы, поблочно/каскадами. Ардуинка с прошивкой под рукой, припаиваю диоды: включаю питание и смотрю работоспособность. Работает - иду следующий узел. После каждого - проверка подачей питания и проверка на работоспособность. И вот как дошло до ttp и начался феерический праздник у диодов и сервы.
Как то так...
Продолжаю.
  • Первым делом заменил сервопривод. Действительно, до включения сервы глюков не было. После замены сервы глюки остались. Вернул старую на место.
  • Далее подсоединил электролит по питанию. На глаз ничего не поменялось - глюки остались.
  • Осталась только прошивка. Не стал подсоединять предложенные выше библиотеки, а взял последнюю прошивку с проекта Алекса. К большому моему сожалению прошивка оказалась без lcd1602, но мне пока интересны глюки. Прошил и все вышеперечисленные глюки пропали, экран только горит засветкой и всё.
  • Хочу напомнить, что для чистоты эксперимента, диодная лента выведена подальше от сенсоров, а именно за пределы аппарата и без всякого экранирования. Ну что, возвращаем диодную ленту на штатное место, к датчикам. Глюков нет.
Возможно смелое заявление, но нет влияния диодов, их проводов на сенсоры - дело в прошивке.
А теперь самое обидное: корпус сделан под 5 рюмок, уже под ttp и lcd1602.
 
Изменено:

Носмас

✩✩✩✩✩✩✩
12 Дек 2019
64
6
Отдельным постом хочу вывести непонятку.
Прошивал ардуинку на месте: подключил питание наливатора и подключил к ноутбуку. После загрузки, отключил от ноутбука ардуинку, на всякий пожарный перегрузил наливатор. Затем игрался с самим наливатором.
Я ни разу не программист, но подумал, а что если в файле сетап вставить строку со ссылкой на библиотеку lcd1602, пробежаться по остальным строкам файла, сравнить.
Подкинул нужную библиотеку и жмакнул Arduino IDE - приветственный экран засветился и потух. И так несколько раз - не смог запустить. Буду перестанавливать.
Что неправильно сделал, кто скажет?
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Продолжаю.
  • Первым делом заменил сервопривод. Действительно, до включения сервы глюков не было. После замены сервы глюки остались. Вернул старую на место.
  • Далее подсоединил электролит по питанию. На глаз ничего не поменялось - глюки остались.
  • Осталась только прошивка. Не стал подсоединять предложенные выше библиотеки, а взял последнюю прошивку с проекта Алекса. К большому моему сожалению прошивка оказалась без lcd1602, но мне пока интересны глюки. Прошил и все вышеперечисленные глюки пропали, экран только горит засветкой и всё.
  • Хочу напомнить, что для чистоты эксперимента, диодная лента выведена подальше от сенсоров, а именно за пределы аппарата и без всякого экранирования. Ну что, возвращаем диодную ленту на штатное место, к датчикам. Глюков нет.
Возможно смелое заявление, но нет влияния диодов, их проводов на сенсоры - дело в прошивке.
А теперь самое обидное: корпус сделан под 5 рюмок, уже под ttp и lcd1602.
Дело в том, что глюк был именно с ТТР, т к моргал соответствующий светодиод (один-три из четырех, в моем случае) и серво отзывалась на какую-либо площадку, в авторежиме, где был скачок сигнала. И в данном случае ТТР является "КОНЦЕВИКАМИ", и ни как програмно не влияет на сам процесс. Надо было обратить внимание на контрольные светодиоды (которых 8 шт), если на них морганий не было (либо все горят или все потухшие) в режиме ожидания, тогда глюк в прошивке.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, в мелких конденсаторах нет смысла, если они стоят параллельно большому электролиту.
http://nauchebe.net/2011/03/filtraciya-pomex-v-istochnikax-pitaniya-mk/ У нас еще и помпа с коллекторным двигателем, и ВЧ помеха от сигнального провода диодов, лучше срезать всю помеху, чем она потом будет где-то вылезать!
 

Носмас

✩✩✩✩✩✩✩
12 Дек 2019
64
6

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Возможно смелое заявление, но нет влияния диодов, их проводов на сенсоры - дело в прошивке.
У нас с VICLER был именно глюк сенсоров от сигнального провода светодиодов.

Ну на помпе стоит конденсатор по схеме
В моем случае, я даже насос не подключал, убрал со схемы все лишнее, нужно было найти причину глюков. По ссылке, в статье по фильтрам питания написано, что вч помеха, подлая, (плохо гасится и хорошо наводится), неполярный конд нужно ставить не далее 5 см от устройства, вот я и навешал их от души.
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Шурупчик, конденсаторы на питании, конечно, никогда не помешают, просто на самой arduino плате они уже есть после стабилизатора и там они гораздо ближе к мк)
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, конденсаторы на питании, конечно, никогда не помешают, просто на самой arduino плате они уже есть после стабилизатора и там они гораздо ближе к мк)
Полностью с Вами согласен, но по темам столько про детали пишут, что они не соответствуют своим номиналам, что решил перестраховаться. И никогда бы не подумал, просто начал отключать ВСЕ , что сигнальный провод, будет давать помеху на емкостный сенсор, что-то с космосом связано) ЗЫ на каждом диоде в паралель +-, стоит маленький смд конд, НЕ ПОМОГ). Фонил сам провод.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Подскажите, для чего на серво вешают резистор 4.7к между сигнальным проводом и "+" ?
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Ну да, тут и ссылки кидали на другой сайт, не знаю можно ли здесь давать чужой адрес?
 

o545be

✩✩✩✩✩✩✩
26 Апр 2020
11
0
Кручу энкодер объема увеличивается до 995 дальше уходит 000,мне бы 50 и ограничить??????
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Шурупчик, это pullup резистор, подтягивающий сигнал к + питанию для более стабильной работы серво. Так по идее чувствительность к помехам должна быть меньше.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, это pullup резистор, подтягивающий сигнал к + питанию для более стабильной работы серво. Так по идее чувствительность к помехам должна быть меньше.
А он поможет для более плавного движения дешёвой 90ой сервы, пока жду 996ю?
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Шурупчик, попробуйте) вообще думаю разницу не заметите. Для более плавной и стабильной работы может большой конденсатор помочь (от 1000uF) Ещё можно отключить фильтрацию в библиотеке ServoSmooth, это отключит ускорения, но может убрать дёргания при маленьких скоростях
ServoSmooth.cpp:
// ====== TICK ======
boolean ServoSmooth::tickManual() {
    if (_tickFlag) {
        _newSpeed = _servoTargetPos - _servoCurrentPos;                            // расчёт скорости
        if (_servoState) {
            _newSpeed = constrain(_newSpeed, -_servoMaxSpeed, _servoMaxSpeed);    // ограничиваем по макс.
            _servoCurrentPos += _newSpeed;                                        // получаем новую позицию           
            //_newPos += (float)(_servoCurrentPos - _newPos) * _k;                // и фильтруем её
            _newPos = _servoCurrentPos;                                            // и не фильтруем
            _newPos = constrain(_newPos, _min, _max);                            // ограничиваем
            writeUs((int)_newPos);                                // отправляем на серво
        }
        .
        .
        .
 
Изменено:

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, попробуйте) вообще думаю разницу не заметите.........
Будьте добры, с паяльником дружу, а вот с "новым программированием", как то тяжеловато. Я в принципе нашел, где нужно поправить код, попробовал через текстовый редактор, но файл .cpp , стал просто текстовым файлом. Ткнине пжл на статью, или какую программой Вы изпользуюте, для редактирование этих файлов. Попробовал через ардуино аде, но файл сохраняется как скетч.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, попробуйте) вообще думаю разницу не заметите. Для более плавной и стабильной работы может большой конденсатор помочь (от 1000uF) Ещё можно отключить фильтрацию в библиотеке ServoSmooth, это отключит ускорения, но может убрать дёргания при маленьких скоростях
ServoSmooth.cpp:
// ====== TICK ======
boolean ServoSmooth::tickManual() {
    if (_tickFlag) {
        _newSpeed = _servoTargetPos - _servoCurrentPos;                            // расчёт скорости
        if (_servoState) {
            _newSpeed = constrain(_newSpeed, -_servoMaxSpeed, _servoMaxSpeed);    // ограничиваем по макс.
            _servoCurrentPos += _newSpeed;                                        // получаем новую позицию         
            //_newPos += (float)(_servoCurrentPos - _newPos) * _k;                // и фильтруем её
            _newPos = _servoCurrentPos;                                            // и не фильтруем
            _newPos = constrain(_newPos, _min, _max);                            // ограничиваем
            writeUs((int)_newPos);                                // отправляем на серво
        }
        .
        .
        .
Правильно ли я сделал, .сср файл открыл текстовым редактором, поправил код, сохранил, и поменял расширение опять на .сср и заменил его в библиотеке?
 
Изменено:

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@Шурупчик, как Вы сохраняете файл после редактирования в текстовом редакторе? Вообще достаточно просто нажать ctrl+S и закрыть редактор. Расширение файла не изменится. Если поменяли .txt на .cpp то работать тоже будет
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
@Шурупчик, как Вы сохраняете файл после редактирования в текстовом редакторе? Вообще достаточно просто нажать ctrl+S и закрыть редактор. Расширение файла не изменится. Если поменяли .txt на .cpp то работать тоже будет
Спасибо разобрался, у Гайвера на сайте есть описание и ссылки на другие платформы.
 

Floki

✩✩✩✩✩✩✩
21 Фев 2020
4
0
Добрый день
Делаю наливатор по схеме AlexGyver. Умудрился сорвать плоссщадку D4 (идёт на модуль привода)
с обеих сторон. Подскажите, можно ли использовать контакт D2 ? И что нужно исправить в прошивке
 

Вложения

axen

★✩✩✩✩✩✩
26 Окт 2019
10
30

Вложения