Ваги на тензодатчиках (NAU7802)
Написано для прошивки 0.2.205 (коміт 310a825) · порталу 0.0.216Можливо, застаріло: поточна прошивка 0.2.238, поточний портал 0.0.344
Тензодатчик найчастіше продають «у комплекті з HX711», і за більшістю туторіалів саме так його й підключають. До oCBot так не вийде: модуль HX711 прошивка не підтримує, і купити його «про запас» — викинути гроші. Ця стаття про те, що ставити замість нього, як це підключити і що ваги вміють у 0.2.205, а що додасть наступний реліз.
Чому NAU7802, а не HX711#
Сам тензодатчик (брусок на 4 дроти) підходить будь-який, у тому числі той, що продається «до HX711». Питання лише в платі АЦП між датчиком і контролером.
| NAU7802 | HX711 | |
|---|---|---|
| Шина | I²C — та сама, де вже живуть плати розширення | власний протокол DT/SCK, не I²C |
| Піни контролера | нових не треба | 2 GPIO, а вільних на KC868-A6 і A16 немає |
| У прошивці | є, з 0.2.205, тип плати «Ваги NAU7802» | немає |
Щоб знайти HX711 два піни, довелося б забрати шину 1-Wire, на якій висять термометри. NAU7802 дорожчий, але стає на наявну шину і вже підтримується.
Адреса NAU7802 незмінна — 0x2A. Отже, на одну шину I²C — лише одна така плата, тобто одні ваги на контролер.
Підключення#
| Від | До |
|---|---|
| контролер 3V3 / GND | NAU7802 3V3 / GND |
| контролер SDA (IO4 на A6 і A16) | NAU7802 SDA |
| контролер SCL (IO15 на A6, IO5 на A16) | NAU7802 SCL |
| датчик червоний / чорний | E+ / E− — живлення моста |
| датчик білий / зелений | A− / A+ — сигнал |
- Датчик — на вхід CH1. Другий канал плати не використовується.
- Кольори дротів у китайських брусків бувають інші. Пара E+ / E− має між собою опір близько 1 кОм, пара A+ / A− — друга пара.
- Два бруски можна повісити паралельно на ті самі клеми: платформа на двох брусках, покази — сума навантаження.
- Брусок кріплять через проставки так, щоб він міг гнутися: одним кінцем до основи, силу — до вільного кінця, стрілкою донизу.
Що налаштувати в інтерфейсі#
- «Плати розширення» → «Додати» → шина I2C → «Ваги NAU7802 — тензодатчик». Адресу 0x2A підставлено й заблоковано.
- «Периферія» → «Додати» → тип «Вага» → джерело — ця плата, канал 0 → «Зберегти».
- Картка «Вага» показує відфільтровані відліки АЦП: плата опитується кожні пів секунди, згладжування зі сталою часу близько 2 с.
Якщо плата не озвалась, слот лишається порожнім, а картка показує «нема даних». Відключили модуль на ходу — те саме попередження має з'явитись приблизно за 15 с.
Кілограми й тара — з наступного релізу#
У 0.2.205 картка показує сирі відліки, а не грами. Перерахунок у кілограми — калібрування периферії — вийде в наступному релізі після 0.2.205: показ = сире значення × коефіцієнт k + зсув, а в картці периферії з'явиться майстер «одна точка / дві точки / тара для ваг» з живим сирим значенням.
Поки ви на 0.2.205, перевірте, що ваги справні, і зберіть дані для калібрування: пари «маса → відліки» з розділу нижче знадобляться майстру.
Перевірка, перш ніж будувати на вазі сценарій#
Ця частина прошивки ще не ганялась на залізі. Тому перш ніж доручати вазі кінець бродіння чи засип, пройдіть кілька кроків і запишіть числа:
- Реакція. Натисніть на платформу — відліки ростуть; відпустіть — повертаються.
- Лінійність. Два-три вантажі відомої маси (гиря, пляшка з водою, зважена на кухонних вагах) — відліки мають рости пропорційно масі. Запишіть пари «маса → відліки»: це і є майбутня калібрувальна таблиця.
- Дрейф. Порожня платформа і платформа з вантажем — по 12–24 години. Дешевий датчик повзе на десятки грамів за добу і реагує на температуру в приміщенні. Для кінця бродіння, де маса змінюється повільно, це важливо.
Увімкніть ваги за 10–15 хвилин до вимірювання: датчик і плата мають прогрітися до температури приміщення, інакше перші покази поповзуть.
Суміжні статті#
- Датчики електричні та ваги — ваги поруч із лічильниками енергії: що з периферії є в прошивці.
- Плата розширення PCA9685 — та сама шина I²C: як плати ділять її адресами.
- Датчики рівня рідини — інший спосіб знати, скільки в ємності.
Модуль NAU7802 і тензодатчик-балка 20 кг — у каталозі.