Концепция весов
Весы питаются от батареек. Платформа весов парит в воздухе за счет электромагнитного поля. Линейный датчик Холла измеряет магнитное поле для определения веса на платформы. В неё встроен постоянный магнит, а под ней находится электромагнит. Когда груз находится на платформе, она опускается. Линейный датчик Холла чувствует изменение магнитного поля, и повышает значение на выходе, что свидетельствует об увеличении веса.
На рисунке выше показан чертеж механической части и блок-схема устройства. Техническая реализация показана и описана ниже. Эти весы измеряют вес от 0 до 20 г с точностью приблизительно 0,5г.
Повышающий преобразователь
Для электромагнита напряжение с аккумулятора увеличено до 12В при помощи MAX1771. Он управляет IRL530N, который работает начиная с 2В, и может отдавать до 24Вт. Электромагнит потребляет в среднем 3.6Вт, т.е. у нас есть большой запас.
Преобразователь
Это преобразователь обеспечивает 5V для микроконтроллера, датчика Холла, ЖК-дисплея. Это был отдельный проект, который я добавил к весам. Подробней смотрите тут
Управление электромагнитом
Электромагнит управляется при помощи ШИМ через полевой транзистор. Диод компенсирует обратное ЭДС катушки индуктивности, когда транзистор закрыт (что экономит энергию). ШИМ-сигнал 170KHz генерируется LM311. Этот сигнал входит в TC4432 – MOSFET драйвер, который приводит в действие полевой транзистор. Если предположить, что 1N5822 имеет сопротивление около 0,2 Ом, а внутреннее сопротивление соленоида составляет 0,27 Ом, то время L / R 0.80mH / 0,5 Ом = 1,6мс. Сигнал 170KHz с периодом 5,88мкс, поэтому можно предположить, что соленоид получает постоянный ток с незначительными пульсациями.
Микроконтроллер, датчик Холла, дисплей
Я использовал микроконтроллер ATMega168P в этом проекте. Он имеет достаточное количество выводов и АЦП. В качестве линейного датчика Холла я использовал SS49E. Этот датчик выдает аналоговое напряжение от 1,0 В до 4,0 В, пропорциональное напряженности магнитного поля (от -1000 до +1000 Г). 8-символьный ЖК-дисплей это EA DOGM081-W. Они очень легко управляются и могут быть подключены по нескольким протоколам. Я использую его в режиме SPI при питании 5В.
Электромагниты и магниты
Соленоид с воздушным сердечником, индуктивность 0.80mH. Платформа состоит из клея, куска пробки и неодимового магнита внутри и ещё одного в виде диска на верху этой платформы, которая служит как поверхность для груза.
Питание
Весы работают от 4 АА NiMH батарей. Напряжение AA NiMH батареи составляет 1,2 В, т.е. 4 AA NiMH должны выдавать 4.8 в. Однако, как и ожидалось, общее напряжение оказалось около 4В. От батарей они проработают около 30 минут, но их можно запустить от блока питания.
Недостатки
Весы имеет два основных недостатка:
Во-первых, груз должен быть расположен по центру, чтобы не изменять центр тяжести платформы, иначе показания будут неверными
Во-вторых, катушка при использовании более 5 минут начинает греться, что снижает точность, поэтому весы надо калибровать примерно каждые 10 минут.
Расчет веса по данным датчика
Я сделал таблицу зависимости показаний датчика от груза., чтобы получить лучшее представление о взаимосвязи между напряженностью магнитного поля и весом груза. Я предполагал, что всё будет очень нелинейным. К моему удивлению это было не так.
Три линии на графике показывают данные, собранные за разное время (с учетом нагрева катушки). Некоторые различия между ними могут объясняться положением груза на платформе.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Линейный регулятор | 5 В | 1 | ||||
U1 | Драйвер питания и MOSFET | TC4432 | 1 | |||
U2 | Супервизор питания | MCP130 | 1 | |||
U3 | Датчик Холла | SS49E | 1 | |||
U4 | LCD-дисплей | DOGM081 | 1 | |||
IC1 | ИС буфера, драйвера | CD74HC14 | 1 | |||
IC2 | DC/DC импульсный регулятор | MAX1771 | 1 | |||
IC3 | Компаратор | LM311-N | 1 | |||
IC4 | МК AVR 8-бит | ATmega8 | 1 | |||
IC5 | Операционный усилитель | LM358N | 1 | |||
Q1, Q2 | MOSFET-транзистор | IRL530N | 2 | |||
D1, D2 | Диод Шоттки | 1N5822 | 2 | |||
С1 | Конденсатор | 1000 пФ | 1 | |||
С2, С9, С10, С15, С25 | Конденсатор | 0.1 мкФ | 5 | |||
С3, С5, С13 | Электролитический конденсатор | 330 мкФ | 3 | |||
С4, С6, С8, С11, С14, С16-С19, С22-С24 | Конденсатор | 1 мкФ | 12 | |||
С7, С12 | Электролитический конденсатор | 22 мкФ | 2 | |||
С20 | Электролитический конденсатор | 220 мкФ | 1 | |||
С21 | Конденсатор | 10 мкФ | 1 | |||
С26 | Электролитический конденсатор | 100 мкФ | 1 | |||
R1 | Резистор | 5.6 кОм | 1 | |||
R2 | Резистор | 0.010 Ом | 1 | 1 Вт | ||
R3 | Резистор | 13 кОм | 1 | |||
R4 | Резистор | 18 кОм | 1 | |||
R5 | Резистор | 1.3 кОм | 1 | |||
R6 | Резистор | 10 Ом | 1 | |||
R7 | Переменный резистор | 10 кОм | 1 | |||
R8-R10 | Резистор | 10 кОм | 3 | |||
R11 | Резистор | 2.2 кОм | 1 | |||
R12 | Резистор | 1.1 кОм | 1 | |||
S1 | Тактовая кнопка | 1 | ||||
L1 | Катушка индуктивности | 22 мкГн | 1 | |||
L2 | Катушка индуктивности | 0.82 мкГн | 1 | |||
G1-G4 | Батарея питания | 1.5 В | 4 | |||
Блок питания | 12 В | 1 | ||||