- Необходими компоненти за изграждане на скала за тегло на Arduino:
- Товарна клетка и модул за сензор HX711:
- Обяснение на веригата:
- Работно обяснение:
- Код за претегляне на Arduino:
Днес ще изградим машина за уайт Arduino, като свържем товарната клетка и сензора за тегло HX711 с Arduino. Виждали сме машини за тежести в много магазини, където машината показва тежестта само чрез поставяне на артикул върху платформата за претегляне. И така, тук изграждаме същата машина за претегляне, като използваме Arduino и Load клетки, с капацитет от 40 kg. Тази граница може да бъде допълнително увеличена чрез използване на товарната клетка с по-голям капацитет.
Основният компонент, необходим за изграждането на тази скала за претегляне на Arduino, е сензор, който може да преобразува теглото в еквивалентен електрически сигнал. Този датчик се нарича като товарна клетка, така че в този проект ние ще използваме тази товарна клетка като наш сензор за тегло Arduino. Също така използвахме същата клетка за натоварване в няколко други проекта, като например преносима машина за претегляне на дребно Arduino, скала за претегляне на Raspberry pi и т.н., можете също да ги проверите, ако се интересувате.
Необходими компоненти за изграждане на скала за тегло на Arduino:
- Arduino Uno
- Товарна клетка (40 кг)
- HX711 Модул за усилвател на товарната клетка
- 16x2 LCD
- Свързващи проводници
- USB кабел
- Макет
- Гайки болтове, рамка и основа
Товарна клетка и модул за сензор HX711:
Товарната клетка е преобразувател, който преобразува силата или налягането в електрическа мощност. Големината на този електрически изход е право пропорционална на приложената сила. Натоварващите клетки имат тензодатчик, който се деформира при прилагане на натиск върху него. И тогава тензодатчикът генерира електрически сигнал при деформация, тъй като ефективното му съпротивление се променя при деформация. Товарната клетка обикновено се състои от четири тензодатчици в конфигурация на мост Уитстоун. Товарната клетка се предлага в различни диапазони като 5 кг, 10 кг, 100 кг и повече, тук използваме товарна клетка, която може да тежи до 40 кг.
Сега електрическите сигнали, генерирани от товарната клетка, са в няколко миливолта, така че те трябва да бъдат допълнително усилени от някакъв усилвател и следователно в картината се появява сензор за претегляне HX711. Модулът на сензора за претегляне HX711 има чип HX711, който е 24-точен A / D преобразувател (аналогов към цифров преобразувател). HX711 има два аналогови входни канала и можем да получим печалба до 128 чрез програмиране на тези канали. Така че модулът HX711 усилва ниската електрическа мощност на товарните клетки и след това този усилен и цифрово преобразуван сигнал се подава в Arduino за извеждане на теглото.
Товарната клетка е свързана с усилвателя HX711 Load cell с помощта на четири проводника. Тези четири проводника са червен, черен, бял и зелен / син. Възможно е да има леки вариации в цветовете на проводниците от модул на модул. Под подробностите за връзката и диаграмата:
- ЧЕРВЕНИЯ проводник е свързан към E +
- ЧЕРЕН проводник е свързан към E-
- БЯЛА жица е свързана към A-
- ЗЕЛЕНИЯ проводник е свързан към A +
Закрепване на товарната клетка с платформа и основа:
Тази стъпка не е задължителна и можете директно да поставите тежестите върху товарната клетка без платформа и можете просто да я затегнете, без да я фиксирате с някаква основа, но е по-добре да прикачите платформа за поставяне на големите неща върху нея и да я фиксирате на основа така че да спре. Така че тук трябва да направим рамка или платформа за поставяне на нещата за измерване на теглото. Необходима е и основа за фиксиране на товарната клетка върху нея чрез гайки и болтове. Тук сме използвали твърд картон за рамката за поставяне на нещата върху нея и дървена дъска като основа. Сега направете връзките, както е показано на електрическата схема и сте готови за работа.
Обяснение на веригата:
Връзките за този проект са лесни и схемата е дадена по-долу. 16x2 LCD щифта RS, EN, d4, d5, d6 и d7 са свързани с номера на пинове 8, 9, 10, 11, 12 и 13 на Arduino съответно. DT и SCK щифтовете на модула HX711 са директно свързани с щифтовете A0 и A1 на Arduino. Връзките на товарните клетки с модула HX711 са вече обяснени по-рано и също показани в схемата по-долу.
Работно обяснение:
Принципът на работа на този проект за измерване на теглото на Arduino е лесен. Преди да влезем в подробности, първо трябва да калибрираме тази система за измерване на правилното тегло. Когато потребителят го включи, системата автоматично ще започне калибриране. И ако потребителят иска да го калибрира ръчно, натиснете бутона. Създадохме функция void calibrate () за калибриране, проверете кода по-долу.
За калибриране изчакайте LCD индикация за поставяне на 100 грама върху товарната клетка, както е показано на снимката по-долу. Когато LCD дисплеят покаже „поставете 100g“, поставете теглото от 100g върху товарната клетка и изчакайте. След няколко секунди процесът на калибриране ще приключи. След калибриране потребителят може да постави всяко тегло (максимум 40 кг) върху товарната клетка и може да получи стойността над LCD в грамове.
В този проект използвахме Arduino, за да контролираме целия процес. Натоварващата клетка усеща теглото и подава аналогово електрическо напрежение към усилвателния модул HX711. HX711 е 24-битов ADC, който усилва и преобразува цифрово изхода на товарната клетка. След това тази усилена стойност се подава към Arduino. Сега Arduino изчислява изхода на HX711 и преобразува това в стойностите на теглото в грамове и го показва на LCD. За калибриране на системата се използва бутон. Написахме програма Arduino за целия процес, проверете кода и демонстрационното видео в края на този урок.
Код за претегляне на Arduino:
Програмиращата част на този проект е малко сложна за начинаещи. В този проект не използвахме библиотека за свързване на сензора за натоварване HX711 с Arduino. Току-що проследихме листа с данни за HX711 и бележките за приложението. Въпреки че за тази цел има някои библиотеки, където трябва само да включите тази библиотека и можете да получите теглото, като използвате един ред код.
На първо място, включихме заглавен файл за LCD и дефинирахме щифтовете за същия. И за бутон също. След това декларира някои променливи с цел изчисляване.
#include
След него създадохме функцията по-долу за четене на данни от модула HX711 и връщане на изхода му.
unsigned long readCount (void) {unsigned long Count; неподписан char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Брой = 0; pinMode (DT, INPUT); докато (digitalRead (DT)); за (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Count = Count << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Брой = Брой ^ 0x800000; digitalWrite (SCK, LOW); връщане (Count); }
След него сме инициализирали LCD и даваме указания за входните и изходните щифтове в void setup ().
void setup () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Тегло"); lcd.setCursor (0,1); lcd.print ("Измерване"); забавяне (1000); lcd.clear (); калибриране (); }
Следващата функция void loop () прочетохме данни от модула HX711 и ги преобразувахме в тегло (грамове) и ги изпратихме на LCD дисплея.
празен цикъл () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("тегло:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Тегло"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; проба = 0; w = 0; брой = 0; калибриране (); }}
Преди това създадохме функция за калибриране, в която сме калибрирали системата, като сме поставили тежестта от 100 gm върху товарната клетка.
void calibrate () {lcd.clear (); lcd.print ("Калибриране…"); lcd.setCursor (0,1); lcd.print ("Моля, изчакайте…"); за (int i = 0; i <100; i ++) {count = readCount (); проба + = брой; Serial.println (брой); }……………….
И така, тук научихме основното свързване на товарната клетка и сензора за тегло HX11 с Arduino за измерване на тежестите. В нашите текстови уроци ще създадем някои приложения, базирани на измерване на теглото, като интелигентен контейнер, автоматична порта и др.