Микросхема HX711 с микроконтроллером PIC • Все своими руками






Микросхема HX711 с микроконтроллером PIC

Программа считывания данных с микросхемы HX711

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


HX711 подключение

Я покупал этот модуль на AliExpress в количестве четырех штук и именно в таком виде. С этими микросхемами я столкнулся впервые. Контактные гребенки припаивал сам. В результате экспериментов у трех из них плавали показания и вверх и вниз. В результате проверки напряжений, присутствующих на элементах модуля, ничего подозрительного выявить не удалось. При визуальном анализе монтажа дефектов тоже выявить не удалось. Грешным делом уже стал подозревать наших китайских партнеров в некачественной продукции. После долгих мытарств снова пропаял гребенки, прополоскал платы в спирте и дрейф показаний прекратился. Грязь порождала неконтролируемые блуждающие паразитные токи, на которые реагировала микросхема. Все это указывает на то, что микросхема способна работать с очень маленьким уровнем входного сигнала. А раз это так, то экранирование платы строго обязательно. Вообще, при работе с этой микросхемой, надо уделить особое внимание и качеству питающего напряжения, его фильтрации, как по частоте первичной сети, так и по частоте преобразования, если блок питания импульсный. Можно поставить на входе модуля LC фильтр по питающему напряжению. Самое лучшее, это питать модуль от аккумуляторных батарей.

HX711 Datasheet PDF ru

Протокол взаимодействия микросхемы с микроконтроллером специфический и очень простой – контроллер формирует на входе синхронизации SCK импульс, а она ему выдает бит данных, причем старшими разрядами вперед. АЦП микросхемы двадцати четырех разрядное, т.е. нам надо будет считать 24 бита информации. Но, так как в соответствии с документацией на микросхему, данные представлены в дополнительном коде, то полезной информации мы будем иметь лишь 23 бита. Потому, что старший бит старшего байта трехбайтового числа в данном случае используется для передачи знака числа. Отсюда следует, что имея максимально возможное 23х битовое число – 0111 1111 1111 1111 1111 1111, мы получим в десятичном коде – 8 388 607, 8 – это килограммы, 388 – граммы, а 607 – миллиграммы. У меня в наличии два тензодатчика на максимальный вес пять килограмм, именно с такими разрядами весовых единиц они и работали, конечно, с расхождениями в показаниях.

Аналогово-цифровой преобразователь HX711, программа.

Программа не сложная с указанием необходимых комментариев. На строках 27 и 28 записана процедура ожидания на считывание данных с АЦП. Для увеличения помехозащищенности в программу можно ввести перепроверку готовности HX711 через небольшую временну’ю паузу. При экспериментах я не использовал экранирование модуля и подводящих проводов с тензодатчика, поэтому разряды миллиграмм и десятков миллиграмм менялись с большой частотой.

По умолчанию, в соответствии с документацией, при подаче на вход SCK двадцати пяти синхронизирующих импульсов, входной усилитель имеет Кус равный 128 и частоту повторений преобразования – 80 раз в секунду. Отсюда и это мерцание разрядов. Чтобы уменьшить частоту вывода информации на индикатор, было решено считывать оцифрованные данные восемь раз и на индикатор выводить их среднее арифметическое значение. Пробовал считывать шестнадцать раз, но частота смены показаний стала слишком медленная.

Программа взаимодействия с HX711

Если чтение данных с микросхемы закончить не двадцать пятым, а сформировать еще и двадцать шестой импульс (закомментированные строки в коде – 56… 62), то следующее чтение данных будет уже с канала В, у которого фиксированный коэффициент усиления – Кус равен 32. А если сформировать еще и двадцать седьмой импульс, то следующее чтение данных будет опять с канала А, но коэффициент усиления будет уже в два раза меньше – 64.

Успехов! К.В.Ю.

Скачать файл ASM

Просмотров:2 095
Комментариев нет




Оставить комментарий