Перейти к содержанию

Весовой Дозатор На Мк


Рекомендуемые сообщения

В микропроцессорной технике новичек, но возникла необходимость собрать весовой дозатор.

Измеряемые грузы до 100 кг с точностью 0,1 кг. Есть исправная промышленная платформа с тензодатчиками (выходное сопротивление моста около 300 Ом, к-т передачи около 1мВ/кг).

Какой МК с встроенным АЦП посоветуете выбрать для данной задачи? Точность измерения не высока, устроит и до 0,1 кг.

Изменено пользователем DmiXa
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Контроллер то любой пойдет, но прийдется масштабировать сигнал нормирующим усилителем, поскольку контроллер (любой) весьма плохо относится к миливольтным сигналам - слишком высок собственный шум. И еще такая засада ... с таким уровнем сигнала нужно быть осторожней, поскольку любое неудачное соединение проводов может играть роль термопар, которые в свою очередь будут вносить погрешность которую сразу-то и не заметишь.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Контроллер то любой пойдет, но прийдется масштабировать сигнал нормирующим усилителем

Как я понял, встроенный АЦП любой разрядности для моей задачи подойдет (т.е. обеспечит необходимую точность измерения)?

Усилитель на ОУ не подойдет? Может есть микросхемы для усления таких сигналов? Есть ли тогда смысл использовать внешний АЦП?

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

АЦП для твоей точности нужен не менее 10-битного.

Одного операционника для работы с такими сигналами может не хватить, лучше на выход моста включить инструментальный усилитель.

В принципе можно применить внешний сигма-дельта АЦП, они со встроенным усилителем бывают.

Этот вариант особенно актуален, когда от моста до МК большое расстояние.

Хотя я предпочитаю распределенные системы с "интелектульными датчиками", т.е. МК стоит в непосредственной близости от датчика, а уже обработанные данные в цифровом виде гонятся на хост.

Изменено пользователем Migray

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

А что вы скажете про МК все-в-одном типа ADuC847? СтОит ли начинать первые шаги на таких МК?

Изменено пользователем DmiXa
Ссылка на комментарий
Поделиться на другие сайты

НЕа, начинать лучше с более простых. а такие все-в-одном лучше оставить на професиональный уровень... поскольку ты быстро запутаешься в нем что к чему, и будешь долго ломать голову почему не получается.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

А где будет работать устройство?

Эти 8хх адуки плохо работают в условиях ЭМ помех.

А в остальном, чего там сложного.

- Простое 51-е ядро, много где описаное, кстати рекомендую книжку "Проектирование цифровых устройств на однокристальных микроконтроллерах"

- Неплохие АЦП, медленные, но для тензобалки самое то

- Ну и встроенный усилитель пригодится :)

Хотя я предпочитаю брать усилители(АЦП) от Аналоговых Девайсов, а МК другой фирмы, но это из-за особых требований к надежности.

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

Устройство будет управлять углекислотной зарядной станцией. Сильных ЭМ помех быть не должно.

Пока остановился на варианте с ATmega16 и отдельным АЦП AD7730. Главное, чтобы под МК была программа для эмуляции и отладки программы (разбираюсь с VMLAB для AVR и CodeVisionAVR).

Ссылка на комментарий
Поделиться на другие сайты

Ну для этой задачи вовсе не обязательно мегу 16, меги 48 или меги 8 вполне достаточно будет. а если вывод на экран не нужен, может быть пойдет даже tiny13.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

На некоторое время пришлось отложить работу - теперь взялся продолжать.

Пока сделал такой вот макет в Proteus7Pro и CodeVisionAVR V2.03.9. Осталось добавить сохранение некоторых параметров в EEPROM, утрясти вопрос о применении дополнительного АЦП AD7730.

Для начала хочу все-таки попробовать спаять усилитель сигнала с 0,2 до 2 В на ОУ и использовать встроенный в ATmega16 АЦП.

Что можете посоветовать на этот счет?SCALE_2.rar

Ссылка на комментарий
Поделиться на другие сайты

Когда усиливать будешь, выбирай операционник с минимальным смещением нуля - чтобы она была не больше погрешности измерителя, иначе фигня это все будет... у обычных ОУ напряжение смещения - десяток миливольт, оно усилится и съест достоверность младших разрядов АЦП.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 7 месяцев спустя...

Тензомост выдает при 100 кг около 10мВ. Задача усилить сигнал до размаха 5В.

Собрал усилитель на ОУ AD8542 (схема прямого усиления на 1 ОУ). Спаял пока на макетке, провода и ОУ не экранированы. Дейтвие помех и наводок ощущается на младшем (10) разряде в виде скачков в пределах 2-3 ед.

Применил в программе фильт выборок - выборки поступают в сдвиговый регистр из 7 разрядов по которым подсчитывается среднее. После этого даже при неэкранированной конструкции показания стабильны, хотя время от времени проскакивают "выбросы" младшего разряда в пределах единицы (во время какой-нибудь мощной помехи, радиосигнала).

В итоге дискретность измерения получается 100кг/1024 = 0,0976 прибл. 0,1 кг/разряд. Задача-минимум выполнена.

Появилась мысль измерять веса до 25 кг более точно (с дискретой 25/1024 = 0,02 кг/разряд, ипользуя встроенный в МК 10 бит АЦП).

Елси использовать 12 битный АЦП то задача решается, но хотелось бы обойтись встроенным в МК.

Может кто решал похожую задачу? Нужно как-то переключать опорное напряжение на AREF с 1.25 на 5 В и обратно. Конечно, в программе надо будет вводить отдельные для 2х диапазонов коэффициенты пересчета в кг.

И еще интересует алгоритм линеаризации сигнала датчика, где можно почитать?

Изменено пользователем DmiXa
Ссылка на комментарий
Поделиться на другие сайты

У Вас исходно задача укладывалась в 10 разрядов только по разрешению, но никак не по точности.

Поэтому нужно применять МК с 12-разрядным АЦП. Например PIC24. Но даже в таком раскладе потребуется программное накопление и корректная топология измерительных цепей. Масштабирование референса толку не даст, точность будет падать..., да и диапазон допустимых значений референсов у АЦП МК не велик - обычно 3...5 вольт.

Линеаризация в таких приложениях только через интерполяцию, т.е. берете корректирующие точки скажем через 16 дискретов, а между ними производите расчет (линейной интерполяции думаю хватит). Сами точки упаковываете в виде таблицы. Алгоритм не сложен. Делаете 4 правых сдвига исходного измерения (т.е. делите на 16). При этом желательно корректное округление (после третьего сдвига проверяется младший разряд и, если он единица, то после четвертого сдвига к результату прибавляется 1). Результат деления является адресом корректирующей таблицы (ессно относительным, поскольку начальный адрес таблицы не 0). Выбираете из таблицы корректирующую величину. Теперь маскируете 4 мл разряда исходного промера с корректным округлением (как при сдвиге). Вычитаете из исходного замера полученную величину и делите корректирующий коэффициент на результат вычитания. Это и будет величина коррекции результата. Т.е. линейно интерполированная из таблицы поправка (ее нужно прибавить к результату).

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

У Вас исходно задача укладывалась в 10 разрядов только по разрешению, но никак не по точности...

Понимаю, что дискретность измерения это не есть точность.

...Линеаризация в таких приложениях только через интерполяцию, т.е. берете корректирующие точки скажем через 16 дискретов, а между ними производите расчет (линейной интерполяции думаю хватит)...

Не совсем понял. Эти точки выбираются в области значений выходной величины АЦП, т.е. от 0 до 1023? Или с привязкой к измеряемой величине от 0 до 100 кг? И как высчитывается величина поправки в этих точках?

За алгоритм спасибо, смысл понял. Только по-моему при значениях АЦП 0-1023 и 16 корр. точках, делить надо не на 16 а на 64 (1024/16=64) и маскировать не 4, а 6 бит (т.е. отнимать 64).

Изменено пользователем DmiXa
Ссылка на комментарий
Поделиться на другие сайты

Все просто.

Представьте себе непрерывный график некоей функции.

Теперь пусть входной аргумент будет дискретным. Ессно и функция превратится во множество точек лежащих на исходной непрерывной линии этого графика. Если двоичная разрядность аргумента будет 10, то точек будет 1024.

Теперь возьмем и замаскируем четыре младших разряда аргумента (приравняем их нулю). Тогда число точек будет в 16 раз меньше (они сольются по 16 штук в одну точку). График прореживается. Таким образом и создается корректирующая таблица. Только для ее адресации (нахождения входного аргумента-указателя) нужно удалить младшие нули, т.е. сдвигом на 4 разряда вправо поделить исходный аргумент на 16. Фактически имеем коррекции только для точек с нулевыми 4 младшими разрядами. А остальные восстанавливаем пропорционально их расположению между известными точками.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

...Теперь возьмем и замаскируем четыре младших разряда аргумента (приравняем их нулю). Тогда число точек будет в 16 раз меньше (они сольются по 16 штук в одну точку). График прореживается. Таким образом и создается корректирующая таблица. Только для ее адресации (нахождения входного аргумента-указателя) нужно удалить младшие нули, т.е. сдвигом на 4 разряда вправо поделить исходный аргумент на 16. Фактически имеем коррекции только для точек с нулевыми 4 младшими разрядами. А остальные восстанавливаем пропорционально их расположению между известными точками.

То есть получается, мы делим диапазон 0-1023 на 16 частей? тогда получится каждая часть будет равна 64 а не 16. Значит, чтобы определить в какой из областей находится аргумент нужно делить не на 16 а на 64?

Какого вида должны быть поправочные значения? В виде коэффициентов (число с плавающей запятой), или в целых числах? Каким образом их лучше определить, или может можно ввести регулировку этик поправок в подпрограмму калибровки?

Изменено пользователем DmiXa
Ссылка на комментарий
Поделиться на другие сайты

Диапазон лучше разделить на 64 части по 16, т.е. в пределах каждой из 64 частей результат будет определятся собственно значением снятым с АЦП и интерполяцией между двумя ближайшими поправками. Поправки должны применятся к уже измеренному значению, т.е. значение с АЦП преобразуется в вес и к нему уже прибавляется поправка. Как определить поправки? Для этого нужно постепенно увеличивать вес калиброванными значениями, считывать "грязные" показания и по разнице вычислить поправку чтобы суммируясь с этим значением весы показали РЕАЛЬНЫЙ вес установленный на платформу.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Хорошую книжку скачал может кому будет полезно.

http://www.nppsaturn.ru/book/sazonovAA.zip c.170 Линеаризация градуировочных характеристик преобразователей

Ссылка на комментарий
Поделиться на другие сайты

  • 3 года спустя...

Добрый день

По поводу контроллера дозатора

Я разработчик, если мой контроллер не удовлетворяет вашим требованиям то его можно модернизировать

walgan(email)bk.ru

Ссылка на комментарий
Поделиться на другие сайты

Вот бы придумать механику на мой контроллер, у меня была мысль взять пластиковые корзины для мусора и туда мешок тонера

и чтобы их было бы несколько, под разные марки. Но это занимает много места, а может быть придумать подвесить к потолку или к стене.

Здесь надо мозговать, может быть общими усилиями что нибудь придумаем. Дорогу осилит идущий

Ссылка на комментарий
Поделиться на другие сайты

  • 5 лет спустя...

Понимаю, 5 лет прошло... Автор, ты жив? Скачал проект протеуса SCALE_2, попробовал. Все хорошо, но непонятно как работает калибровка и не реагирует кнопка "тара". Да, и насчет фьюзов на 16-й меге...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
×
×
  • Создать...