W dzisiejszym artykule zajmiemy się podłączeniem i prezentacją działania belki tensometrycznej o górnej granicy zakresu pomiarowego równej 10 kg. Pomiary wykonamy dla dwóch przedmiotów o różnej wadze, następnie otrzymane wyniki porównamy ze wskazaniami wagi elektrycznej.
Spis treści
- Opis teoretyczny
- Schemat podłączenia
- Przygotowanie warunków pracy
- Kod programu
- Proces kalibracji
- Pliki źródłowe
-
Cyfrowy Czujnik nacisku 20kg (200N)14.00zł
-
Cyfrowy Czujnik nacisku 10kg (100N)14.00zł
-
Cyfrowy Czujnik nacisku 5kg (50N)14.76zł
-
Cyfrowy Czujnik nacisku 1kg (10N)14.76zł
Opis teoretyczny
Belka tensometryczna to zbudowany ze stali nierdzewnej czujnik służący do pomiaru ciężaru. Pomiar odbywa się za pomocą właściwości drutu miedzianego jaką jest zmiana rezystancji w zależności od długości. Pod wpływem naprężenia przyklejony do belki miedziany drut odkształca się w wyniku czego zmienia się również jego rezystancja.
Schemat podłączenia
Belkę podłączymy do arduino za pomocą wzmacniacza XFW-HX711. Odpowiednie połączenia belki ze wzmacniaczem prezentują się następująco :
- Czerwony przewód belki – E+ wzmacniacza,
- czarny przewód belki – E- wzmacniacza,
- biały przewód belki – A- wzmacniacza,
- zielony przewód belki – A+ wzmacniacza
W kolejnym kroku należy podłączyć wzmacniacz do naszego adruino uno. W tym przypadku łączymy urządzenia według następujących połączeń :
- VCC – 5 V arduino,
- GND – GND arduino,
- DT – pin 6 arduino,
- SCK – pin 5 arduino
Przygotowanie warunków pracy
Aby belka prawidłowo wskazywała odczyt ciężaru, niezbędne jest zapewnienie odpowiednego środowiska pracy. W tym celu stronę belki z przyczepionymi kablami należy przytwierdzić za pomocą mocnej taśmy lub śrub do stałej powierzchni. Dzięki temu zapewnimy swobodne odkształcanie się drugiej strony belki co pozwoli na prawidłowy odczyt wskazań. W przeciwnym wypadku jeżeli belka nie będzie odpowiednio przytwierdzona, to nie będzie możliwe jej odkształcenie w wyniku czego otrzymamy wskazanie równe 0 g. Możemy również przykręcić do belki element służący jako stolik w celu pomiaru większych elementów. Przykład takiego stolika zaprezentowany jest w filmiku na końcu artykułu.
Kod programu
Jeżeli udało nam się zapewnić odpowiednie warunki pracy, to możemy przejść do pisania programu. Wykorzystamy gotowy program z biblioteki HX711 (do pobrania na końcu artykułu). Działanie programu opiera się na wykorzystaniu metod obiektu klasy HX711. Podczas ładowania programu skala jest tarowana, a następnie ponownie ustawiana w oparciu o argument jakim jest stała kalibracyjna. Następnie za pomocą metody scale.get_units() otrzymujemy pomiar w gramach. Wynik wyświetlamy za pomocą monitora portu szeregowego dla szybkości transmisji ustawionej na 9600 baudów.
#include "HX711.h" HX711 scale(6, 5); float calibration_factor = -175; float units; float ounces; void setup() { Serial.begin(9600); scale.set_scale(); scale.tare(); long zero_factor = scale.read_average(); } void loop() { scale.set_scale(calibration_factor); Serial.print("Reading: "); units = scale.get_units(), 10; if (units < 0) { units = 0.00; } Serial.print(units); Serial.print(" grams"); Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); }
Proces kalibracji
Niezbędnym elementem do otrzymania poprawnych wyników jest odpowiednie skalibrowanie belki. W tym celu posłużymy się zmienną calibration_factor, której wartość będziemy zmieniać aby uzyskać prawidłowy pomiar. Do kalibracji niezbędny nam będzie dowolny przedmiot którego dokładną wagę znamy, dzięki czemu będziemy mogli oszacować błąd pomiaru. Kalibrację przeprowadzamy według następujących kroków, które powtarzamy do momentu uzyskania prawidłowego wyniku.
- Upewnij się że warunki pracy pozostały niezmienne ( nic nie naciska na miejsce gdzie przytwierdzona jest belka ). Zmiana warunków pracy może spowodować powstanie dodatkowych naprężeń lub sił nie osiowych działających na belkę co będzie skutkowało nie liniową zmianą wagi w stosunku do stałej kalibracyjnej.
- Zdejmij mierzony przedmiot z belki.
- Zmień wartość stałej
- Przeładuj program
- Połóż przedmiot i obserwuj wyniki. Jeżeli nagle znacznie się różnią, upewnij się że nie zmieniłeś warunków pracy.
Prawidłowo skalibrowany czujnik powinien wskazywać ciągle wartość 0 w przypadku braku obciążenia oraz przybliżoną wartość ciężaru przedmiotu w przypadku obciążenia.
Czasem może się zdarzyć że czujnik zaczyna pokazywać ciągle rosnące wartości mimo braku obciążenia. W tym przypadku należy ponownie załadować program lub w przypadku braku skutku, zmienić wartość stałej kalibracyjnej.