Делаем простые весы с помощью arduino

Как сделать Ардуино весы на 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

/*
  Тестирование производилось на Arduino IDE 1.6.12
  Дата тестирования 06.12.2016г.

*/

 
#include <LiquidCrystal.h>                // Подключяем библиотеку

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 нужен для других целей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector