Belka tensometryczna NA27 5kg
Belka tensometryczna działająca w zakresie do do 5 kg, (ok. 50 N). Najmniejsza wersją stosowana np. do wag kuchennych, wag przenośnych. Przewód połączeniowy posiada końcówki ze zdjętą izolacją, a jego długość to 25 cm.
Specyfikacja
- Napięcie pracy: od 5 V do 12 V
- Zakres pomiarowy: 5 kg (ok. 50 N)
- Wyjście: sygnał analogowy
- Obudowa: NA27 - aluminiowa
- Przewód: czterożyłowy, φ0,8 o długości 25 cm
- Wymiary: 80 x 13 x 13 mm
- Masa: 28 g
Wykorzystanie belki tensometrycznej przy pomocy Arduino
Belka tensometryczna umożliwia zważenie danego przedmiotu. Ten krótki poradnik pokazuje jak ją obsłużyć wykorzystując płytkę Arduino Uno.
Podłączenie
Moduł jest zasilany bezpośrednio z Arduino, więc nie potrzebujemy zewnętrznego źródła energii. Piny podpinamy według poniższej tabeli
Pin wzmacniacza |
Pin Arduino |
VCC |
5 V |
DAT |
3 |
CLK |
2 |
GND |
GND |
Z drugiej strony modułu wzmacniacza podpinamy belkę tensometryczną według kolorów przewodów.
- RED - czerwony
- BLK - czarny
- WHT - biały
- GRN – zielony
Obsługa
Na początku bibliotekę należy dodać do środowiska Arduino (Szkic -> Include Library -> Add .ZIP Library...).
W przykładzie zostały wykorzystane programy z dołączonej biblioteki. Na początek należy uruchomić program kalibracyjny SparkFun_HX711_Calibration (Plik -> Przykłady -> HX711 -> SparkFun_HX711_Calibration). Dzięki niemu możemy określić współczynnik dla użytej belki tensometrycznej.
Uruchamiamy układ bez obciążenia na belce. Następnie wkładamy przedmiot o znanej masie. Teraz za pomocą przycisków "+" i "-" (lub "a" i "z") ustawiamy odczyt tak, aby zgadzał się z naszą znaną masą.
Kod programu
Poniżej wykorzystany program (na podstawie tego z biblioteki)
#include "HX711.h"
#define DOUT 3 //pin 3 Arduino i wyjście DAT czujnika
#define CLK 2 //pin 2 Arduino i wyjście CLK czujnika
HX711 scale(DOUT, CLK);
float
calibration_factor = -7050;
//współczynnik kalibracji
void
setup
() {
Serial.begin(9600);
Serial.println(
"HX711 - program kalibracyjny"
);
Serial.println(
"Usun obciazenie z belki"
);
Serial.println(
"Po rozpoczeciu odczytu, umiesc znana mase na belce"
);
Serial.println(
"Wcisnij + lub a by zwiekszyc wspolczynnik kalibracji"
);
Serial.println(
"Wcisnij - lub z by zwiekszyc wspolczynnik kalibracji"
);
scale.set_scale();
scale.tare();
//Resetuje skalę na 0
long
zero_factor = scale.read_average();
//Odczyt podstawy
Serial.print(
"Zero factor: "
);
//Może być wykorzystane aby usunąć potrzebę tarowania skali.
//Użyteczne w projektach o stałej skalli
Serial.println(zero_factor);
}
void
loop
() {
scale.set_scale(calibration_factor);
//Wyrównanie według współczynnika kalibracji
Serial.print(
"Odczyt: "
);
Serial.print(scale.get_units(), 1);
Serial.print(
" kg"
);
//Dowolnie możemy wybrać kilogramy lub funty
//ponieważ między nimi jest liniowa zależność
Serial.print(
" Wspolczynnik_kalibracji: "
);
Serial.print(calibration_factor);
Serial.println();
if
(Serial.available())
{
char
temp = Serial.read();
//pobranie wpisanej wartości i zmiana współczynnika kalibracji
if
(temp ==
'+'
|| temp ==
'a'
)
calibration_factor += 10;
else
if
(temp ==
'-'
|| temp ==
'z'
)
calibration_factor -= 10;
}
}
Następnie odczytaną wartość należy wykorzystać w programie SparkFun_HX711_Example (Plik -> Przykłady -> HX711 -> SparkFun_HX711_Example). My użyjemy spolszczonego programu:
#include "HX711.h"
#define calibration_factor -3350.0 //Odczytana wartość z programu kalibracyjnego
#define DOUT 3 //pin 3 Arduino i wyjście DAT czujnika
#define CLK 2 //pin 2 Arduino i wyjście CLK czujnika
HX711 scale(DOUT, CLK);
void
setup
() {
Serial.begin(9600);
Serial.println(
"HX711 scale demo"
);
scale.set_scale(calibration_factor);
//Ustawienie kalibracji
scale.tare();
//Zerowanie wskazania na początek
Serial.println(
"Odczyty:"
);
}
void
loop
() {
Serial.print(
"Odczyt: "
);
Serial.print(scale.get_units(), 1);
//scale.get_units() zwraca zmienną float
Serial.print(
" kg"
);
//Dowolnie możemy wybrać kilogramy lub funty
//lecz przy zmianie zmienia się również współczynnik kalibracji
Serial.println();
}