Оглавление:

Как собрать весы для Arduino: 8 шагов (с изображениями)
Как собрать весы для Arduino: 8 шагов (с изображениями)

Видео: Как собрать весы для Arduino: 8 шагов (с изображениями)

Видео: Как собрать весы для Arduino: 8 шагов (с изображениями)
Видео: Вольтамперметр на Атмега 8 для блока питания 2024, Июль
Anonim
Как построить весы для Arduino
Как построить весы для Arduino

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

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

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

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

Я также покажу вам, как их откалибровать, даже если у вас нет стандартных весов.

Проведя свое исследование и проверив его, построив свои собственные весы, я написал принципы весов, включая все, что я мог сделать для поиска неисправностей, в Restart Project Wiki. Иди и посмотри!

Шаг 1: выбор тензодатчиков

Выбор тензодатчиков
Выбор тензодатчиков
Выбор тензодатчиков
Выбор тензодатчиков

Все цифровые весы построены на базе 4-контактного датчика веса или четырех 3-контактных датчиков веса. Что получить, зависит от того, какие весы вы хотите сделать. Все они электрически совместимы и довольно дешевы, так что вы можете передумать позже или получить более одного типа для экспериментов.

Для кухонных или почтовых весов с максимальной нагрузкой в диапазоне от 100 г до 10 кг вы можете получить 4-контактные датчики веса, состоящие из алюминиевого стержня. Он установлен горизонтально, поддерживается одним концом и поддерживает платформу для взвешивания другим. К нему прикреплены 4 тензодатчика. Я полностью объясняю, как это работает, в своей статье в вики, поэтому я не буду повторять это здесь.

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

Здесь больше подходят четыре трехконтактных весоизмерительных датчика. Широко доступны модели, рассчитанные на 50 кг каждая, а вместе они будут весить до 200 кг.

Другие с еще более высокими рейтингами предназначены для подвешивания измеряемого веса по образцу багажных весов.

Шаг 2: что еще вам нужно

Что еще вам нужно
Что еще вам нужно

В дополнение к тензодатчикам или тензодатчикам вам понадобятся:

  • Ардуино. Вы можете использовать практически любой тип, который вам нравится, но я использовал Nano, поскольку он имеет встроенный интерфейс USB и стоит всего несколько фунтов.
  • Модуль HX711. Он может поставляться в комплекте с датчиком веса, но доступен по очень низкой цене как отдельный элемент из многих источников.
  • Для прототипирования понадобится 400-точечная макетная плата, перемычки, контактные и розеточные планки.

Вам также понадобится дерево, пластик, шурупы, клей или все, что вам нужно для вашей конкретной версии проекта.

Шаг 3: Подготовка деталей

Подготовка деталей
Подготовка деталей
Подготовка деталей
Подготовка деталей

Чтобы использовать модуль HX711 на макетной плате, припаяйте полоску шириной 4 к контактам интерфейса (GND, DT, SCK, VCC) HX711.

Для легкого подключения и отключения тензодатчика (особенно, если вы экспериментируете с более чем одним типом) припаяйте 6-контактную планку разъемов к аналоговым контактам. (Вам нужны только контакты E +, E-, A- и A +, но я все равно установил полосу шириной 6 на случай, если я захочу поэкспериментировать с двумя другими.)

Если вы используете 4-проводной датчик нагрузки, вам необходимо припаять 4 вывода датчика нагрузки к полосе с 4 выводами. Первые два контакта будут E + и E-, а два других - A- и A +. Я заклеил паяные соединения лентой из ПВХ, чтобы защитить их. Отметка на одном конце и соответствующая отметка на штыревом гнезде означают, что я знаю, в какую сторону его подключать, хотя я не думаю, что это имеет значение.

Разные весоизмерительные ячейки по-разному кодируют провода, но легко определить, какие из них. С помощью тестового измерителя в диапазоне сопротивления измерьте сопротивление между каждой парой проводов. Есть 6 возможных пар из 4 проводов, но вы получите только 2 разных показания. Будет 2 пары, которые показывают на 33% больше, чем остальные 4, скажем, 1000 Ом вместо 750 Ом. Одна из этих пар - E + и E-, а другая - A + и A- (но неважно, какая).

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

Шаг 4: Как использовать 3-проводные тензодатчики

Как использовать 3-проводные тензодатчики
Как использовать 3-проводные тензодатчики

Если вы используете четыре трехпроводных датчика веса, вам придется соединить их вместе с помощью куска картона и взять соединения E +, E-, A + и A- из комбинации.

Поскольку цвета ваших проводов могут отличаться от моих, давайте назовем 3 цвета проводов каждого датчика веса A, B и C.

С помощью тестового измерителя в диапазоне сопротивления измерьте сопротивление между каждой парой проводов. Есть 3 возможных пары, но вы будете измерять только 2 разных показания. Определите пару, которая читает дважды любой из двух других. Назовите эту пару A и C. Тот, который вы пропустили, - B. (Сопротивление между B и A или C составляет половину сопротивления между A и C.)

Проще говоря, вам нужно соединить 4 датчика веса квадратом, причем провод A каждого подключен к проводу A его соседа, а провод C - к проводу C его соседа на другой стороне. Провода B двух тензодатчиков на противоположных сторонах квадрата - это E + и E-, а провода B другой пары - это A + и A-.

Шаг 5: Подключение макета

Подключение макета
Подключение макета

Подключить макетную плату очень просто, требуется всего 4 перемычки. Библиотека Fritzing только предложила мне немного другую версию модуля HX711, чем моя, но схема подключения такая же. Вы можете следовать схеме или, если вы используете другой Arduino, подключите его, как показано в таблице ниже:

Вывод Arduino HX711 Вывод 3V3 VCC GND GND A0 SCK A1 DT

Шаг 6: Установка тензодатчиков

Установка тензодатчиков
Установка тензодатчиков
Установка тензодатчиков
Установка тензодатчиков

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

Самый простой способ установить четыре трехпроводных датчика веса - между двумя листами ДСП. Я использовал маршрутизатор, чтобы сделать 4 неглубоких углубления в основании, чтобы точно определить местонахождение четырех ячеек. В моем случае углубления нуждались в более глубоком центральном углублении, чтобы две заклепки внизу не касались основания.

Я использовал пистолет для клея-расплава, чтобы удерживать тензодатчики на месте на основании, а также закрепить полосу на основании посередине. Затем я сильно прижал к ним платформу для взвешивания, чтобы выступы на вершинах тензодатчиков образовали небольшие углубления. Я углубил их с помощью маршрутизатора и проверил, что они все еще хорошо выровнены с тензодатчиками. Затем я нанёс термоклей на каждое углубление и вокруг него и быстро прижал платформу для взвешивания к тензодатчикам, пока клей не затвердел.

Шаг 7: программирование Arduino

Я предполагаю, что на вашем компьютере установлена Arduino IDE, и вы знаете, как ее использовать. Если нет, ознакомьтесь с одним из многих руководств по Arduino - моя цель здесь не в этом.

В раскрывающемся меню IDE выберите Sketch - Include Library - Manage Libraries…

Введите hx711 в поле поиска. Должен найти HX711-master. Щелкните Установить.

Скачайте прикрепленный файл HX711.ino с примером скетча. В раскрывающемся меню "Файл IDE" откройте только что загруженный файл. IDE скажет, что он должен быть в папке - позвольте ей поместить его в одну.

Скомпилируйте и загрузите скетч, затем щелкните последовательный монитор в среде IDE.

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

Для каждого показания он дает калиброванное среднее значение 20 и стандартное отклонение. Стандартное отклонение - это диапазон значений, в пределах которого ожидается 68% всех измерений. 95% будут лежать в пределах удвоенного диапазона, а 99,7% - в трехкратном диапазоне. Поэтому это полезно в качестве меры диапазона случайных ошибок в результате.

В этом примере после первого чтения я положил на платформу новую монету фунта, которая должна весить 8,75 г.

HX711 Demo Инициализация весов Исходный средний (20): 1400260 После настройки весов: Исходный: 1400215 Исходный средний (20): 1400230 Исходный средний (5) - тара: 27,00 Калиброванный средний (5): 0,0 Показания: Среднее, Стандартное отклонение 20 показаний: -0,001 0,027 Измеренное время: среднее значение 1,850 секунды, стандартное отклонение 20 показаний: 5,794 7,862 Время измерения: среднее значение 1,848 секунды, стандартное отклонение 20 значений: 8,766 0,022 Время измерения: среднее значение 1,848 секунды, стандартное отклонение 20 показаний: 8,751 0,034 Затраченное время: 1,849 секунды Среднее значение, стандартное отклонение 20 показаний: 8,746 0,026 Затраченное время: 1,848 секунды

Шаг 8: Калибровка

Калибровка
Калибровка

Скетч Arduino на предыдущем шаге содержит два значения калибровки (или масштабные коэффициенты), относящиеся к моему 1 кг и моему набору из четырех трехпроводных весоизмерительных ячеек по 50 кг. Они находятся в строках 19 и 20. Вам нужно будет выполнить собственную калибровку, начиная с любого произвольного калибровочного значения, такого как 1 (в строке 21).

У меня не было стандартных весов, поэтому для тензодатчика на 1 кг я использовал новую монету за 1 фунт, которая весит 8,75 г. В идеале вы должны использовать что-нибудь весом не менее одной десятой от максимального веса весов.

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

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

Рекомендуемые: