Оглавление:

Весы Arduino с датчиком нагрузки 5 кг и усилителем HX711: 4 шага (с изображениями)
Весы Arduino с датчиком нагрузки 5 кг и усилителем HX711: 4 шага (с изображениями)

Видео: Весы Arduino с датчиком нагрузки 5 кг и усилителем HX711: 4 шага (с изображениями)

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

В этом руководстве описывается, как сделать небольшие весы, используя готовые детали.

Необходимые материалы:

1. Arduino - в этой конструкции используется стандартный Arduino Uno, другие версии или клоны Arduino также должны работать.

2. HX711 на коммутационной плате - этот микрочип специально разработан для усиления сигналов от тензодатчиков и передачи их другому микроконтроллеру. Тензодатчики подключаются к этой плате, и эта плата сообщает Arduino, что измеряют весоизмерительные ячейки.

3. Датчик веса 5 кг. Датчики веса представляют собой металлические детали особой формы, к которым приклеены тензодатчики. Тензодатчики - это резисторы, которые изменяют свое сопротивление при изгибе. Когда металлическая часть изгибается, сопротивление тензодатчика изменяется (HX711 точно измеряет это небольшое изменение сопротивления). Вы можете купить как HX711, так и датчик веса здесь:

Если вы все же приобрели комплект, оставьте отзыв! Это действительно полезно для будущих покупателей.

4. Прочная плоская монтажная поверхность (x2) - идеально подходит жесткий кусок твердой древесины или металла.

5. Провода разных цветов для соединения всех частей.

6. Блок питания для Arduino.

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

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

Сначала мы собираемся установить датчик веса. Ваше животное будет уникальным, но вот рекомендации, которым вы должны следовать:

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

2. Монтажная пластина и подвижная пластина должны быть как можно более жесткими.

3. Убедитесь, что между монтажными пластинами и датчиком нагрузки установлены жесткие распорки. Подойдут и стойки, и шайбы. Цель состоит в том, чтобы любая сила, приложенная к движущейся пластине, заставляла датчик веса изгибаться и скручиваться. Без прокладок нагрузка передавалась бы непосредственно с движущейся пластины на неподвижную, не влияя на датчик нагрузки.

Шаг 2: Подключите тензодатчики и HX711

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

См. Схему подключения, чтобы узнать, как подключить тензодатчики, HX711 и Arduino.

На алюминиевых тензодатчиках несколько тензодатчиков уже подключены вместе для моста Уитстона. Все, что вам нужно сделать, это правильно сориентировать провода к плате HX711.

Шаг 3. Добавьте библиотеку HX711 в вашу среду разработки Arduino

Библиотека HX711 доступна здесь:

См. Эту ссылку на веб-сайте Arduino для получения инструкций о том, как добавить библиотеку в вашу среду разработки Arduino:

Шаг 4: откалибруйте и взвесьте

Калибровка и взвешивание!
Калибровка и взвешивание!

У Sparkfun есть отличные программы Arduino для масштабирования. Самые последние версии доступны на GitHub и перепечатаны ниже:

Первым шагом программного обеспечения является определение коэффициентов калибровки весов. Для этого запустите этот код:

/*

Пример использования коммутационной панели SparkFun HX711 со шкалой Автор: Натан Зейдл SparkFun Electronics Дата: 19 ноября 2014 г. Лицензия: этот код является общественным достоянием, но вы купите мне пиво, если воспользуетесь им, и мы когда-нибудь встретимся (лицензия Beerware). Это калибровочный эскиз. Используйте его, чтобы определить коэффициент калибровки, который используется в основном примере. Он также выводит нулевой коэффициент, полезный для проектов с постоянной массой на шкале между циклами включения питания. Настройте весы и начните набросок БЕЗ гири на весах. После отображения показаний поместите гирю на весы. Нажмите +/- или a / z, чтобы отрегулировать калибровочный_фактор до тех пор, пока выходные значения не будут соответствовать известному весу. Используйте этот калибровочный_фактор на примере эскиза В этом примере используются фунты (фунты). Если вы предпочитаете килограммы, измените Serial.print («фунты»); линия в кг. Коэффициент калибровки будет значительно отличаться, но он будет линейно связан с фунтами (1 фунт = 0,453592 кг). Ваш калибровочный коэффициент может быть как положительным, так и отрицательным. Все зависит от настройки вашей системы масштабирования и направления отклонения датчиков от нулевого состояния. В этом примере кода используется отличная библиотека bogde: "https://github.com/bogde/HX711" Библиотека bogde выпущена под ГЕНЕРАЛЬНОЙ ОБЩЕСТВЕННОЙ ЛИЦЕНЗИЕЙ GNU Вывод 2 Arduino -> HX711 CLK 3 -> DOUT 5V -> VCC GND -> GND Практически любой вывод на Arduino Uno будет совместим с DOUT / CLK. Плата HX711 может питаться от 2,7 В до 5 В, поэтому с питанием Arduino 5 В должно быть все в порядке. * / #include "HX711.h" #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 Масштаб HX711; коэффициент калибровки поплавка = -7050; // - 7050 сработало для моей настройки максимального масштаба 440 фунтов void setup () {Serial.begin (9600); Serial.println («Калибровочный эскиз HX711»); Serial.println («Убрать весь вес с весов»); Serial.println («После начала считывания поместите известный вес на весы»); Serial.println («Нажмите + или a, чтобы увеличить коэффициент калибровки»); Serial.println («Нажмите - или z, чтобы уменьшить коэффициент калибровки»); scale.begin (LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale (); scale.tare (); // Сбрасываем масштаб на 0 long zero_factor = scale.read_average (); // Получение базового значения для чтения Serial.print ("Нулевой коэффициент:"); // Это можно использовать для устранения необходимости тарировать весы. Полезно в проектах постоянного масштаба. Serial.println (нулевой коэффициент); } void loop () {scale.set_scale (коэффициент_калибровки); // Настраиваем на этот коэффициент калибровки Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); Serial.print («фунты»); // Измените это на кг и повторно отрегулируйте коэффициент калибровки, если вы следуете единицам СИ, как здравомыслящий человек Serial.print ("Calibration_factor:"); Serial.print (калибровочный_фактор); Serial.println (); если (Serial.available ()) {char temp = Serial.read (); if (temp == '+' || temp == 'a') калибровочный_фактор + = 10; иначе if (temp == '-' || temp == 'z') калибровочный_фактор - = 10; }}

После калибровки весов вы можете запустить этот пример программы, а затем взломать ее для своих целей:

/*

Пример использования коммутационной панели SparkFun HX711 со шкалой Автор: Натан Зейдл SparkFun Electronics Дата: 19 ноября 2014 г. Лицензия: этот код является общественным достоянием, но вы купите мне пиво, если воспользуетесь им, и мы когда-нибудь встретимся (лицензия Beerware). Этот пример демонстрирует базовый результат масштабирования. См. Эскиз калибровки, чтобы узнать коэффициент калибровки для вашей конкретной настройки датчика веса. В этом примере кода используется отличная библиотека bogde: https://github.com/bogde/HX711 Библиотека bogde выпущена под ОБЩЕЙ ОБЩЕСТВЕННОЙ ЛИЦЕНЗИЕЙ GNU HX711 хорошо справляется с одной задачей: считывает тензодатчики. Коммутационная плата совместима с любыми весоизмерительными ячейками на основе моста из пшеничного камня, что должно позволить пользователю измерять все, от нескольких граммов до десятков тонн. Контакт 2 Arduino -> HX711 CLK 3 -> DAT 5V -> VCC GND -> GND Плата HX711 может питаться от 2,7 В до 5 В, поэтому с питанием Arduino 5 В должно быть все в порядке. * / #include "HX711.h" #define Calibration_factor -7050.0 // Это значение получено с использованием эскиза SparkFun_HX711_Calibration #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 HX711 scale; void setup () {Serial.begin (9600); Serial.println («Демонстрация масштаба HX711»); scale.begin (LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale (коэффициент_калибровки); // Это значение получается с помощью скетча SparkFun_HX711_Calibration scale.tare (); // Предполагая, что на весах нет веса при запуске, сбрасываем весы на 0 Serial.println ("Readings:"); } void loop () {Serial.print ("Чтение:"); Serial.print (scale.get_units (), 1); //scale.get_units () возвращает число с плавающей запятой Serial.print ("lbs"); // Вы можете изменить это значение на kg, но вам потребуется рефакторинг calibre_factor Serial.println (); }

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