АЦП на базе микросхемы hx711: различия между версиями
Материал из MIK32 микроконтроллер
Artecoll (обсуждение | вклад) (Новая страница: «Arduino-модуль HX711 на основе АЦП со встроенным усилителем HX711 предназначен для получения дан...») |
Нет описания правки |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Arduino-модуль HX711 на основе АЦП со встроенным усилителем HX711 предназначен для получения данных с тензодатчиков ( датчиков, преобразующих величину деформации в электрический сигнал). Основа модуля – специализированная микросхема HX711. | [[Файл:HX711.jpg|мини|справа|Внешний вид АЦП HX711]] | ||
Arduino-модуль HX711 на основе АЦП со встроенным усилителем HX711 предназначен для получения данных с тензодатчиков (датчиков, преобразующих величину деформации в электрический сигнал). Основа модуля – специализированная микросхема HX711. | |||
Микросхема HX711 позволяет с высокой точностью получать показания веса или давления, оказываемого на тензодатчик (он же - тензорезистор). | |||
Микросхема имеет 2 канала считывания показания счётчика: А и В. Это позволяет подключать к микросхеме HX711 до 2 независимых тензодатчиков. | |||
==Контакты АЦП== | |||
*'''GND''' - земля; | |||
*'''VCC''' - питание 5В; | |||
*'''DT''' - линия данных (любой цифровой вход на Arduino); | |||
*'''SCK''' – линия синхронизации (любой цифровой вход на Arduino); | |||
*'''E–''' , '''E+''' - питание тензорного моста; | |||
*'''A–''' , '''A+''' - подключение канала А; | |||
*'''В–''' , '''В+''' - подключение канала В; | |||
==Спецификация модуля HX711== | |||
*Напряжение питания – 6-5.5 В | |||
*Рабочее напряжение – 5 В | |||
*Количество каналов подключения тензодатчиков – 2 | |||
*Коэффициент усиления: | |||
#для канала А: 64, 128 | |||
#для канала В: 32 | |||
*Дифференциальный вход с напряжением – ± 40 мВ | |||
*Разрядность АЦП – 24 бит | |||
*Частота измерений – 10/80 Гц | |||
*Рабочий ток <10 мА | |||
*Рабочая температура – -40 – 85 °С | |||
*Размеры: 38x21x10 мм | |||
==Схема подключения на примере Arduino Uno== | |||
[[Файл:ТР с АЦП.jpg|обрамить|центр]] | |||
==Пример кода== | |||
<syntaxhighlight lang="c"> | |||
#include "HX711.h" // библиотека для работы с АЦП | |||
#define DT A0 // Указываем номер вывода данных DT | |||
#define SCK A1 // Указываем номер вывода синхронизации SCK | |||
HX711 scale; // создаём объект scale | |||
float calibration_factor = -14.15; // калибровочный коэффициент (необходимо сначала определить) | |||
float units; // переменная для измерений в граммах | |||
float ounces; // в унциях | |||
void setup() { | |||
Serial.begin(9600); // работу порта на 9600 бод | |||
scale.begin(DT, SCK); // инициируем работу с датчиком | |||
scale.set_scale(); // измерение без калибровочного коэффициента | |||
scale.tare(); // сбрасываем значения веса на датчике в 0 | |||
scale.set_scale(calibration_factor); // устанавливаем калибровочный коэффициент | |||
} | |||
void loop() { | |||
Serial.print("Reading: "); // текст в монитор порта | |||
for (int i = 0; i < 10; i ++) { // считаем значения датчика 10 раз | |||
units = + scale.get_units(), 10; // суммируем показания 10 замеров | |||
} | |||
units = units / 10; // усредняем показания, разделив сумму значений на 10 | |||
ounces = units * 0.035274; // переводим вес из унций в граммы | |||
Serial.print(ounces); // выводим в монитор порта вес в граммах | |||
Serial.println(" grams"); // выводим текст в монитор последовательного порта | |||
} | |||
</syntaxhighlight> |
Текущая версия от 21:26, 11 мая 2022
Arduino-модуль HX711 на основе АЦП со встроенным усилителем HX711 предназначен для получения данных с тензодатчиков (датчиков, преобразующих величину деформации в электрический сигнал). Основа модуля – специализированная микросхема HX711. Микросхема HX711 позволяет с высокой точностью получать показания веса или давления, оказываемого на тензодатчик (он же - тензорезистор). Микросхема имеет 2 канала считывания показания счётчика: А и В. Это позволяет подключать к микросхеме HX711 до 2 независимых тензодатчиков.
Контакты АЦП
- GND - земля;
- VCC - питание 5В;
- DT - линия данных (любой цифровой вход на Arduino);
- SCK – линия синхронизации (любой цифровой вход на Arduino);
- E– , E+ - питание тензорного моста;
- A– , A+ - подключение канала А;
- В– , В+ - подключение канала В;
Спецификация модуля HX711
- Напряжение питания – 6-5.5 В
- Рабочее напряжение – 5 В
- Количество каналов подключения тензодатчиков – 2
- Коэффициент усиления:
- для канала А: 64, 128
- для канала В: 32
- Дифференциальный вход с напряжением – ± 40 мВ
- Разрядность АЦП – 24 бит
- Частота измерений – 10/80 Гц
- Рабочий ток <10 мА
- Рабочая температура – -40 – 85 °С
- Размеры: 38x21x10 мм
Схема подключения на примере Arduino Uno
Пример кода
#include "HX711.h" // библиотека для работы с АЦП #define DT A0 // Указываем номер вывода данных DT #define SCK A1 // Указываем номер вывода синхронизации SCK HX711 scale; // создаём объект scale float calibration_factor = -14.15; // калибровочный коэффициент (необходимо сначала определить) float units; // переменная для измерений в граммах float ounces; // в унциях void setup() { Serial.begin(9600); // работу порта на 9600 бод scale.begin(DT, SCK); // инициируем работу с датчиком scale.set_scale(); // измерение без калибровочного коэффициента scale.tare(); // сбрасываем значения веса на датчике в 0 scale.set_scale(calibration_factor); // устанавливаем калибровочный коэффициент } void loop() { Serial.print("Reading: "); // текст в монитор порта for (int i = 0; i < 10; i ++) { // считаем значения датчика 10 раз units = + scale.get_units(), 10; // суммируем показания 10 замеров } units = units / 10; // усредняем показания, разделив сумму значений на 10 ounces = units * 0.035274; // переводим вес из унций в граммы Serial.print(ounces); // выводим в монитор порта вес в граммах Serial.println(" grams"); // выводим текст в монитор последовательного порта }