Делаем простые весы с помощью arduino
Содержание:
- Как сделать Ардуино весы на hx711
- Подробнее о датчиках:
- Принцип работы тензодатчиков
- Подключение LCD keypad shield к Arduino
- Описание протокола I2C
- Тензодатчик. Принцип работы, характеристики
- Зачем все это необходимо
- Устройство
- Схемы подключения датчика давления воздуха
- Как подключить тензодатчик к весовому терминалу
- Способы монтажа различных видов тензодатчиков
- Проверка тензодатчика
- Установка датчика нагрузки на платформу и базу
- Общие сведения
- SoftwareSerial
Как сделать Ардуино весы на hx711
Но, предположим, вы решили сделать простейшие Ардуино весы (мы публиковали отдельный урок), тогда выбирайте один из вариантов, описанных выше, для получения выходящих данных.
Это может быть блютуз или wi-fi модуль, который будет передавать всё на другое устройство. Но можно использовать и обычный LED-экран. Однако, в таком случае, учитывайте, что вам необходимо будет написать немало строчек кода и для того, чтобы этот экран научить выводить нужные вам числа, а в некоторых ситуациях и буквы.
Сами Ардуино весы на hx711 крайне просты, как по конструкции, так и по пайке. Программирование тоже не вызовет больших проблем, ведь, в крайнем случае, вы сможете найти все необходимые библиотеки в интернете. Поэтому можно модифицировать устройство, с помощью дополнительных датчиков переменного электричества.
Выше на картинке вы можете увидеть примерный вариант устройства весов на Arduino Uno. В комплекте с модулем HX711 идет тензорезистор. На фото к нему прикреплены два небольших куска оргстекла — как основа и как опора для измеряемого предмета.
Схема устройства самая простая:
После того как библиотека скачана мы можем добавить наш код. Сначала код программы для калибровки:
/* Setup your scale and start the sketch WITHOUT a weight on the scale Once readings are displayed place the weight on the scale Press +/- or a/z to adjust the calibration_factor until the output readings match the known weight Arduino pin 6 -> HX711 CLK Arduino pin 5 -> HX711 DOUT Arduino pin 5V -> HX711 VCC Arduino pin GND -> HX711 GND */ #include "HX711.h" HX711 scale(A1, A0); // DT, CLK float calibration_factor = -3.7; // this calibration factor is adjusted according to my load cell float units; float ounces; void setup() { Serial.begin(9600); Serial.println("HX711 calibration sketch"); Serial.println("Remove all weight from scale"); Serial.println("After readings begin, place known weight on scale"); Serial.println("Press + or a to increase calibration factor"); Serial.println("Press - or z to decrease calibration factor"); scale.set_scale(); scale.tare(); //Reset the scale to 0 long zero_factor = scale.read_average(); //Get a baseline reading Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. Serial.println(zero_factor); } void loop() { scale.set_scale(calibration_factor); //Adjust to this calibration factor Serial.print("Reading: "); units = scale.get_units(), 10; if (units < 0) { units = 0.00; } ounces = units * 0.035274; Serial.print(ounces); Serial.print(" grams"); Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); if(Serial.available()) { char temp = Serial.read(); if(temp == '+' || temp == 'a') calibration_factor += 1; else if(temp == '-' || temp == 'z') calibration_factor -= 1; } }
И сам код для весов ниже.
В коде добавлен перевод единицы измерения веса из унций в граммы.
#include "HX711.h" HX711 scale(A1, A0); float calibration_factor = -3.7; // калибровка! float units; float ounces; void setup() { Serial.begin(9600); scale.set_scale(); scale.tare(); //Сбрасываем на 0 scale.set_scale(calibration_factor); //Применяем калибровку } void loop() { Serial.print("Reading: "); for(int i = 0;i < 10; i ++) units =+ scale.get_units(), 10; // усредняем показания считав 10 раз units / 10; // делим на 10 ounces = units * 0.035274; // переводим унции в граммы Serial.print(ounces); // отправляем в монитор порта Serial.print(" grams"); Serial.println(); }
В целом на этом всё. Более подробные уроки по использованию этого модуля мы обязательно опубликуем в ближайших уроках. Подробный урок по созданию весов на данном модуле смотрите здесь.
Сделайте весы, которые способны измерять не только ваш вес, но и содержание жира в организме, а также воды. Это будет полезно для тех инженеров, которые следят за собой, но покупать дорогие оригинальные весы не хотят по очевидным причинам.
Подробнее о датчиках:
Тензорезистивные датчики предназначены для создания на их основе весов, датчиков давления или концевых датчиков.
В основе своей конструкции имеют тонкоплёночные резисторы, которые изменяют своё сопротивление при деформации.
Существует 2 версии данных датчиков:
Схема устройства и подключения полу-мостового датчика к микросхеме HX711:
Для 1 тензодатчика:
Для 4 тензодатчиков:
Следует также отметить, что показания тензодатчиков зависят от температуры окружающей среды — при разных температурах показания могут отличаться. Помните это и используйте «тарирование» (обнуление значений датчика) каждый раз при резких перепадах температуры. Если же работа датчика предполагается в условиях перепада температур в известном диапазоне, то вы можете воспользоваться одним из датчиков температуры и создать таблицу зависимости калибровочного коэффициента ( calibration_factor ) от температуры.
Принцип работы тензодатчиков
Во многих отраслях промышленности необходимо измерение размера деформации. Для таких целей применяется тензорезисторы, который помогает преобразовать уровень деформации в определенную электрическую величину. Благодаря этому можно определить её значение.
Тензодатчики – это устройства, которые могут преобразовать механическую деформацию тела в электрический сигнал, который позволяет определить уровень растяжения и сжатия конкретного предмета. Он является резистивным преобразователем и считается одним из главнейших составляющих высокоточного оборудования.
Устройство изготовлено из чувствительного тензорезистора, который производится из тензоматериалов. Чаще всего это фольга или алюминиевая проволока с небольшим сечением. тензодатчик шайбового типа
Бывают самые разные датчики, которые могут использоваться в любых отраслях: атомной, фармацевтической, металлургической и прочих. Виды тензодатчиков:Приборы для измерения нагрузки и силы (динамометры);Измерители давления;Тензодатчики крутящего момента для автомобильных и станочных двигателей.
Тензорезисторы классифицируются не только по своей форме, но и по конструктивным особенностям. Конструкция прибора зависит от типа чувствительного элемента. Для контроля деформации используются следующие типы тензорезисторов:Фольговые;Пленочные;Проволочные.
Пленочные являются аналогом фольговых, за исключением материала, из которого изготовлены. Производители изготавливают такие модели из тензочувствительных пленок с особым напылением, которое увеличивает чувствительность системы. Такие измерительные узлы удобно использовать при необходимости измерить динамические нагрузки. Производство пленок выполняется из таких материалов, как титан, висмут, германий.Проволочные способны измерить нагрузку от нескольких сотых грамма до целых тонн (скажем, весовой бункер и прочие). Их называют одноточечные, т. к в отличие от пленочных и фольговых моделей, они измеряют в одной точке, а не площади. Такая конструкция позволяет использовать проволочные тензодатчики для измерения деформации сжатия и растяжения.проволочная модель
Конструктивно прибор представляет собой тензорезистор с контактным элементом. Он закреплен на верхней панели устройства, которая соприкасается с измеряемым телом. Принцип работы любого тензодатчика основан на воздействии на чувствительный элемент определенной детали. Для включения датчика в сеть применяется специальные электрические отводы, которые подключаются к чувствительной пластине. Благодаря этому в контактном элементе наблюдается постоянное напряжение. Но, при работе датчика на специальную подложку устанавливается деталь. Её вес разрывает цепь и образовывается механическая деформация, которая при помощи контрольных контактов преобразуется в электрический сигнал.
Измерительный мост тензодатчика позволяет измерить наименьшие нагрузки, благодаря чему значительно расширяется использование прибора. Мостовая схема подключения тензометрического датчика основана на законе Ома, при котором если все сопротивления имеют равное значение, то ток, проходящий через резисторы, также будет иметь одинаковое значение. Здесь воздействие из вне принято называть «внешним фактором», а преобразование сигнала – «внутренним». Тогда принцип действия основан на анализе внешнего фактора при помощи внутреннего.
Принцип установки весовых тензодатчиков наглядно демонстрируют модули, которые обычно используют при изготовлении электронных или цифровых весов. В них установлены специальные модули, которые соединены с рабочей поверхностью весов.
Этот измерительный модуль обладает чрезвычайно высокой точностью взвешивания и защищает тензодатчик от повреждений
- Высокая точность измерения;
- Подходят для измерения статических и динамических напряжений, при этом, не искажают полученные данные. Это очень удобно при использовании устройств в транспортных средствах или экстремальных условиях работы;Небольшие размеры позволяют использовать такие датчики практически в любых измерительных устройства.
Разработка сайта Sigmasoft
2020 Тензодатчики веса | Датчики силы, крутящего момента, давдения, премещения | Тензорезисторы | Промышленные контроллеры НВМ
Подключение LCD keypad shield к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► LCD модуль keypad (LCD1602, 2×16, 5V)
► Кабель USB 2.0 A-B x 1 шт.
Подключение
Установите модуль на плату Arduino UNO, подключите кабель и закрущите данный скетч.
/*
Тестирование производилось на Arduino IDE 1.6.12
Дата тестирования 06.12.2016г.
*/
#include <LiquidCrystal.h> // Подключяем библиотеку
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 ); // Указываем порты
void setup()
{
lcd.begin(16, 2); // Инициализируем LCD 16×2
lcd.setCursor(0,0); // Установить курсор на первую строку
lcd.print(«LCD1602»); // Вывести текст
lcd.setCursor(0,1); // Установить курсор на вторую строку
lcd.print(«www.robotchip.ru»); // Вывести текст
Serial.begin(9600); // Включаем последовательный порт
}
void loop() {
int x; // Создаем переменную x
x = analogRead (0); // Задаем номер порта с которого производим считывание
lcd.setCursor(10,1); // Установить курсор на вторую строку
if (x < 100) { // Если x меньше 100 перейти на следующею строк
lcd.print («Right «); // Вывести текст
Serial.print(«Value A0 ‘Right’ is :»); // Вывести текст
Serial.println(x,DEC); // Вывести значение переменной x
}
else if (x < 200) { // Если х меньше 200 перейти на следующию строку
lcd.print («Up «); // Вывести текст
Serial.print(«Value A0 ‘UP’ is :»); // Вывести текст
Serial.println(x,DEC); // Вывести значение переменной x
}
else if (x < 400){ // Если х меньше 400 перейти на следующию строку
lcd.print («Down «); // Вывести текст
Serial.print(«Value A0 ‘Down’ is :»); // Вывести текст
Serial.println(x,DEC); // Вывести значение переменной x
}
else if (x < 600){ // Если х меньше 600 перейти на следующию строку
lcd.print («Left «); // Вывести текст
Serial.print(«Value A0 ‘Left’ is :»); // Вывести текст
Serial.println(x,DEC); // Вывести значение переменной x
}
else if (x < 800){ // Если х меньше 800 перейти на следующию строку
lcd.print («Select»); // Вывести текст
Serial.print(«Value A0 ‘Select’ is :»);// Вывести текст
Serial.println(x,DEC); // Вывести значение переменной x
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
/* */ LiquidCrystal lcd(8,9,4,5,6,7);// Указываем порты voidsetup() { lcd.begin(16,2);// Инициализируем LCD 16×2 lcd.setCursor(,);// Установить курсор на первую строку lcd.print(«LCD1602»);// Вывести текст lcd.setCursor(,1);// Установить курсор на вторую строку lcd.print(«www.robotchip.ru»);// Вывести текст Serial.begin(9600);// Включаем последовательный порт } voidloop(){ intx;// Создаем переменную x x=analogRead();// Задаем номер порта с которого производим считывание lcd.setCursor(10,1);// Установить курсор на вторую строку if(x<100){// Если x меньше 100 перейти на следующею строк lcd.print(«Right «);// Вывести текст Serial.print(«Value A0 ‘Right’ is :»);// Вывести текст Serial.println(x,DEC);// Вывести значение переменной x } elseif(x<200){// Если х меньше 200 перейти на следующию строку lcd.print(«Up «);// Вывести текст Serial.print(«Value A0 ‘UP’ is :»);// Вывести текст Serial.println(x,DEC);// Вывести значение переменной x } elseif(x<400){// Если х меньше 400 перейти на следующию строку lcd.print(«Down «);// Вывести текст Serial.print(«Value A0 ‘Down’ is :»);// Вывести текст Serial.println(x,DEC);// Вывести значение переменной x } elseif(x<600){// Если х меньше 600 перейти на следующию строку lcd.print(«Left «);// Вывести текст Serial.print(«Value A0 ‘Left’ is :»);// Вывести текст Serial.println(x,DEC);// Вывести значение переменной x } elseif(x<800){// Если х меньше 800 перейти на следующию строку lcd.print(«Select»);// Вывести текст Serial.print(«Value A0 ‘Select’ is :»);// Вывести текст Serial.println(x,DEC);// Вывести значение переменной x } |
После загрузки прошивки, плата перегрузится и отобразится надпись, нажмите любую кнопку и информация о нажатой кнопке отобразится на дисплеи и в мониторинге порта.
Ссылки Документация к LCD1602A Документация к LCD ZYMC1602 Документация к HD44780U
Купить на Aliexpress Контроллер Arduino UNO R3 на CH340G Контроллер Arduino UNO R3 на Atmega16U2 Провода DuPont, 2,54 мм, 20 см LCD модуля keypad (LCD1602, 2×16, 5V)
Купить в Самаре и области Контроллер Arduino UNO R3 на CH340G Контроллер Arduino UNO R3 на Atmega16U2 Провода DuPont, 2,54 мм, 20 см LCD модуля keypad (LCD1602, 2×16, 5V)
Описание протокола I2C
Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.
I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.
Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.
Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.
В работе I2C можно выделить несколько преимуществ:
- Для работы требуется всего 2 линии – SDA (линия данных) и SCL (линия синхронизации).
- Подключение большого количества ведущих приборов.
- Уменьшение времени разработки.
- Для управления всем набором устройств требуется только один микроконтроллер.
- Возможное число подключаемых микросхем к одной шине ограничивается только предельной емкостью.
- Высокая степень сохранности данных из-за специального фильтра подавляющего всплески, встроенного в схемы.
- Простая процедура диагностики возникающих сбоев, быстрая отладка неисправностей.
- Шина уже интегрирована в саму Arduino, поэтому не нужно разрабатывать дополнительно шинный интерфейс.
Недостатки:
- Существует емкостное ограничение на линии – 400 пФ.
- Трудное программирование контроллера I2C, если на шине имеется несколько различных устройств.
- При большом количестве устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.
Тензодатчик. Принцип работы, характеристики
Модуль для весов состоит из самого тензорезистивного датчика, который встроен в прочную конструкцию. Микросхема HX711 предназначена для усиления сигнала от тензорезистора и передачи данных в микроконтроллер. После калибровки модуля, можно вычислить степень деформации тензорезистивного датчика по изменению его сопротивления, и рассчитать силу, приложенную к конструкции (вес).
Принцип работы тензодатчика, устройство простейшего датчика
Рабочий элемент модуля – тензорезистор (проволока на гибкой подложке), которую приклеивают к измеряемому предмету. При деформации меняется сопротивление резистора, а соответственно меняется сигнал. Если откалибровать модуль и собрать надежную конструкцию весов на Arduino, то можно добиться хорошей точности. Отметим, что сам датчик может быть рассчитан на разный вес — от 2 кг и более.
Зачем все это необходимо
Упомянутая связка позволяет создать на основе микроконтроллера систему определяющую давление или вес на поверхности чувствительного элемента. Практическое применение аналогичная конструкция имеет на птичниках, когда происходит поштучное взвешивание проходящих живых куриц или уток. Для процедуры в Агро секторе предусмотрен узкий коридор движения особей с датчиком прохождения единицы и платформой определения массы. Кроме названой ниши, точность устройства вполне позволяет его использовать в торговле, связывая разработанные на основе тензометрических сенсоров весы с кассовым аппаратом или компьютером-посредником, ведущим бухгалтерию.
Пригодится аппарат и пасечникам — объединив весы с передатчиком Bluetooth или GSM-модемом можно контролировать «налет» веса пчел в различные периоды года. Достаточно знать чистую массу улья. Все что выше, как раз и будет воск, пчелы и мед.
Устройство
Суммарное количество чувствительных элементов датчика давления зависит от его модели. Главными остается пьезоэлементы, определяющие саму силу действия на свою плоскость. Физическая основа работы – возникновение электрического тока на внутренних кварцевых пластинах в результате их деформации при соприкосновении с влияющим фактором. В настоящем случае, о котором идет речь — газом или жидкостью.
Выработанное аналоговое напряжение идет в модуль АЦП преобразования, где его сила перекодируется в числовой вид и через интерфейсы датчика I2C и SPI отправляется на микроконтроллер. Библиотека функций, ориентированных на работу с конкретным сенсором, переводит полученные величины в понятный человеком вид, на основе единиц измерений давления в стандарте Си — Паскалях.
Все дополнительные измеряющие элементы конкретного устройства действуют похожим образом, конвертируя с помощью АЦП аналоговые значения в цифру, для последующей отправки их в Arduino.
Схемы подключения датчика давления воздуха
Следующая конструкция построена на сенсоре-анероиде BMP180. Экран, в нее входящий, будет отображать текущее давление атмосферного воздуха и температуру окружающей среды. Для изготовления понадобятся:
Элемент | Наименование/характеристика | Количество |
---|---|---|
Микроконтроллер | Arduino UNO/Nano | 1 |
Датчик | BMP180 | 1 |
Экран | HD447080LCD-1602 | 1 |
Резистор | 100 Ом | 1 |
Регулируемый резистор | До 10 кОм | 1 |
Ну и конечно провода для связки всего названого в единую систему.
Библиотека, управляющая сенсором берется тут: https://github.com/adafruit/Adafruit-BMP085-Library
Принципиальная схема
Фотография итогового устройства:
Плата-шилд самодельная, для желающих повторить, она вблизи:
Датчик питается от 3.3V, соответственно и подключаются его контакты получения энергии (VCC и GND) к плате Arduino. Для передачи данных используются входы A5 (SCL) и A4(SDA). Дисплей с микроконтроллером соединяется согласно следующей таблицы:
Arduino | Экран |
---|---|
D6 | E и D4 вместе |
D4 | D5 |
D3 | D6 |
D2 | D7 |
GND | GND |
D7 | RS |
Скетч
Приведенная программа — всего лишь базис операций. Ее можно модифицировать по собственному разумению, добавляя функции отслеживания давления или температуры. Можно даже использовать конечное устройство, после необходимой модификации кода, в качестве своеобразного барометра, предупреждающего об идущей буре. Показания давления, в названом случае сильно упадут.
Как подключить тензодатчик к весовому терминалу
Большинство тензодатчиков поставляется с документацией, в которой указывается цветовая маркировка идущих от него проводов и их назначение. 4-х проводные тензодатчики, судя по названию, имею 4 соединительных линии:
Т.е. две линии это цепи питания и две это выходной сигнал датчика. Для корректной работы необходимо подать питающее напряжение на линии +EXC и –EXC, в соответствии с техническими характеристиками датчика, обычно оно составляет от 5 до 12 вольт. После подачи питания на сигнальных линиях SIG меняется напряжение, и это изменение необходимо фиксировать весоизмерительным прибором.
На рисунке приведена схема подключения тензодатчика четырёхпроводного типа, на примере датчика фирмы Zemic и весоизмерительного прибора КВ-001. Некоторые тензодатчики могут иметь не четыре, а шесть соединительных проводов. Две дополнительные линии называются – линиями обратной связи, и имеют маркировку SENSE. Эти две дополнительные линии позволяют осуществлять компенсацию потерь на длинных проводах. Как видно из рисунка выше, в случае подключения четырехпроводного тензометрического датчика, функция компенсации потерь не используется, и необходимо использовать перемычки для подключения тензодатчика к прибору.
READ Как подключить варочную панель без заземления
Четырехпроводные тензодатчики датчики лучше использовать на короткие расстояния передачи сигнала. Шестипроводные датчики, благодаря линиям обратной связи, обладают большей точность и их можно использовать для больших расстояний, т.к. эти две дополнительные линии позволяют осуществлять компенсацию потерь на длинных проводах.
На рисунке приведена схема подключения тензодатчика шестипроводного типа, на примере датчика фирмы Zemic и весоизмерительного прибора КВ-001.
Способы монтажа различных видов тензодатчиков
Монтаж тензодатчиков на растяжение / сжатие Монтаж тензодатчиков CAS серий SBA/SB/SBS
Модель | НПВ | Шарнирная головка | Гайка | Макс. A | Макс. B |
SBA | 50, 100 кг | RE-6 | M6 × 1.0 | 133,5 | 115,5 |
200, 500 кг, 1 т | RE-12А | M12 × 1.75 | 198,8 | 162,8 | |
2, 3, 5 т | RE-18 | M18 × 1.5 | 278 | 230 | |
SB | 20, 50, 100, 200, 500 кг | RE-18 | M12 × 1.75 | 198 | 162 |
20, 50, 100, 200, 500 кг | RE-18 | M18 × 1.5 | 198 | 162 | |
SBS | 500 кг | RE-12A | M12 × 1.75 | 199,7 | 163,7 |
1, 2 т | RE-18 | M18 × 1.5 | 259,7 | 211,7 | |
5 т | RE-24 | M24 × 2.0 | 360 | 280 |
Монтаж тензодатчиков CAS CT/CTS
Модель | НПВ | Шарнирная головка | Гайка | Макс. A | Макс. B |
CT | 50, 100, 200, 500 кг, 1 т | RE-12B | M12 × 1.25 | 253 | 217 |
2, 3, 5 т | RE-24 | M24 × 2.0 | 392 | 312 | |
CTS | 200, 500 кг, 1 т | RE-12B | M12 × 1.25 | 253 | 217 |
2, 3, 5 т | RE-24 | M24 × 2.0 | 392 | 312 |
Способ встройки тензодатчика CAS серии LS
Модель | НПВ | Узел встройки | Шарнирная головка | Гайка | Макс. A | Макс. B |
LS | 2, 3 т | LSTM-2 | RE-16 | M16 × 2.0 | 234 | 190 |
5 т | LSTM-5 | RE-18 | M18 × 1.5 | 250 | 202 | |
10 т | LSTM-10 | RE-24 | M24 × 2.0 | 349 | 269 | |
20 т | LSTM-20 | RE-39 | M39 × 2.0 | 473 | 371 |
Монтаж тензодатчиков типа «балка на сдвиг»
Монтаж тензодатчиков для взвешивания подвижного груза (скота)
Модель | НПВ | Прокладка | Шаровая опора | Шар | Приемникнагрузки |
BSS, BSA | 500кг, 1, 2т | SP-1 | BCUPT-1 | B-1 | LRCV-1 |
3, 5т | SP-2 | BCUPT-2 | B-2 | LRCV-2 |
Монтаж тензодатчиков с помощью ножки с рокером и ножки шаровой опоры
Модель | НПВ | Прокладка | Ножка с рокером |
BSA-xx-TEND | 500кг, 1, 2т | SP-1 | — |
Модель | НПВ | Прокладка | Ножка шаровой опоры |
BSS, BSA | 500кг, 1, 2т | SP-1 | SF-M |
Монтаж тензодатчиков для взвешивания больших грузов
Монтаж тензодатчиков на сжатие / растяжение-сжатие
Монтаж тензодатчиков серии CC
Модель | НПВ | Нижняя пластина | Верхняя пластина | Нагрузочный болт | A | B |
CC | 50, 100, 200, 500 кг, 1 т | MPCC-1 | LPCC-1 | LBCC-1 | M8 | MPT-1 |
2, 3, 5 т | MPCC-2 | LPCC-2 | LBCC-2 | M12 | MPT-2 | |
10 т | MPCC-3 | LPCC-3 | LBCC-3 | M14 | MPT-3 | |
20 т | MPCC-4 | LPCC-4 | LBCC-4 | M14 | MPT-4 |
Монтаж тензодатчиков серии LS
Модель | НПВ | Нижняя пластина | Верхняя пластина | Нагрузочный болт | A |
LS | 2, 3 т | MPLS-1 | LPLS-1 | LBLS-1 | M6 × 1.0 L=»65″ |
5 т | MPLS-2 | LPLS-2 | LBLS-2 | M8 × 1.25 L=»65″ | |
10 т | MPLS-3 | LPLS-3 | LBLS-3 | M10 × 1.5 L=»85″ | |
20 т | MPLS-4 | LPLS-4 | LBLS-4 | M12 × 1.75 L=»105″ |
Монтаж тензодатчиков серии HC
Проверка тензодатчика
Проверка весовых тензодатчиков является обязательным этапом подготовки измерительного прибора к работе и проводится сразу после подключения всех контактов устройства. Исправность изделия проверяется тремя способами:
- Диагностика тензометрического моста-Уитстона осуществляется замерами с помощью омметра сопротивления на его входе и выходе.
- Проверка в нагруженном состоянии производится милливольтметром, когда датчик подключен к стабильному источнику питания с напряжением от 5 до 12 V.
- Испытание при нулевой нагрузке проводится с помощью вольтметра при отсутствии нагрузки. Если такового под рукой нет, подойдет хороший мультиметр. В процессе потребуется подключить замерное устройство и подать сигнал, чтобы проверить его значение на выходе. Оно должно соответствовать значениям в паспорте датчика.
Установка датчика нагрузки на платформу и базу
Этот этап вы можете пропустить и не использовать никакой платформы/основания, но лучше все таки его сделать для более удобной работы с проектируемыми нами весами. Таким образом, нам необходимо сделать каркас или платформу, на которую мы потом будем класть вещи, вес которых мы хотим измерить. База (основание) также желательна для фиксации на ней датчика нагрузки с помощью болтов. В нашем проекте мы использовали жесткий картон для изготовления каркаса и деревянную доску в качестве базы/основания. Теперь нам осталось сделать всего лишь несколько соединений и наше устройство будет готово.
Общие сведения
Большую часть модуля занимает ЖК дисплей, марки LCD 1602 с синей подсветкой, передача данных осуществляется по 4-битному режиму, подробнее в этой статье. На нижней части расположены шесть кнопок, пять из-за которых используются для навигации и одна кнопка дублирует reset. В верхнем левом углу установлен потенциометр, необходимый для регулировки контрастности ЖК дисплея. Так как LCD keypad shield устанавливается на плату Arduino свеху и фактически занимает разъемы, на модуле расположены дополнительные отверстия, для впаивания проводов или разъемов (на отдельную колодку. выведен интерфейс ICSP).
Из принципиальной схемы, можно увидеть, что база транзистора отвечающая за подсведку модуля подключена к выводу 10 платы Arduino, следовательно, можно отключать ее.
Принцип работы кнопок
Кнопки располагаются в удобном порядке — вверх, вниз, влево, вправо, и SELECT. Все кнопки подключены к одному аналоговому входу «A0» используя цепочку резисторов, которые выдают разное опорное напряжение для «А0» при нажатии любой кнопки. На рисунке показана часть принципиальной схема LCD keypad shield
Их принциписальной схемы видно, если кнопки не нажаты напряжение на «A0» через резистор R2 (2кОм) будет 5В. Другие резисторы не влияют на схему, а при чтении аналогового вывода «A0» будет параметр на верхнем приделе 1023 (или приблизительно). Теперь рассмотрим, что произойдет, если будет нажата кнопка «Вниз». На выводе «А0» будет напряжением, которое разделено между резистором R2 (2кОм) которое подтянуто к +5В и резисторами R3 (330ОМ) и R4 (620Ом) общий суммой 950Ом, которые пытаются тянуть его вниз к 0В. Напряжения на «A0» будет составлять порядка 1.61В, это означает, что если выполнить команду analogRead () на A0, будет возвращено значение около 306, что означает нажатие кнопки «Вниз»
Такой же принцип применим и для других кнопок, напряжением и значение analogRead (), можно посмотреть ниже:
Напряжением и значение analogRead► RIGNT: 0.00В: 0 — 8 bit; 0 — 10 bit
► UP: 0.71В: 36 — 8 bit; 145 — 10 bit
► DOWN: 1.61В: 82 — 8 bit; 306 — 10 bit
► LEFT: 2.47В: 126 — 8 bit; 505 — 10 bit
► SELECT: 3.62В: 185 — 8 bit; 741 — 10 bit
Это позволяет сэкономить целый набор выводов и использовать их для более нужного использования. Принципиальная схема LCD keypad shield, показана на рисунке ниже.
Назначение выводов► A0: Вывод кнопок
► D4: LCD — DB4
► D5: LCD — DB5
► D6: LCD — DB6
► D7: LCD — DB7
► D8: LCD – RS
► D9: LCD Enable
► D10: LCD – отключение подсветки дисплея
SoftwareSerial
В качестве примера подключим модуль по второй схеме (на пины D2 и D3) и загрузим простую программу, которая будет пересылать данные с программного Serial (на пинах D2 и D3, Bluetooth) на аппаратный (который мы можем смотреть через монитор порта в Arduino IDE):
#include <SoftwareSerial.h> SoftwareSerial mySerial(3, 2); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }
Откроем терминал и монитор порта и можем общаться с компьютером, Arduino выступает в роли посредника и перекидывает данные с Bluetooth на USB и наоборот:
Точно так же можно использовать SoftwareSerial для программ и приложений, если аппаратный UART на Arduino нужен для других целей.