Pomocí tenzometrického paprsku s Arduino
Tenzometrický paprsek umožňuje zvážit předmět. Tento krátký tutoriál ukazuje, jak to zvládnout pomocí desky Arduino Uno.
Příklad používá následující prvky:
Spojení
Modul je napájen přímo z Arduina, takže nepotřebujeme externí zdroj napájení. Kolíky jsou připevněny podle následující tabulky:
Pin zesilovače | Pin Arduino |
---|---|
VCC | 5 V |
DAT | 3 |
CLK | 2 |
GND | GND |
Na druhou stranu modulu zesilovače připojte tenzometrický paprsek podle barev vodičů.
- ČERVENÁ - červená
- BLK - černá
- WHT - bílá
- GRN - zelená
Schéma zapojení paprsku, zesilovače a Arduino Uno.
Servis
Nejprve by měla být knihovna přidána do prostředí Arduino (Skica -> Zahrnout knihovnu -> Přidat knihovnu .ZIP ...).
V příkladu jsou použity programy z připojené knihovny. Nejprve spusťte kalibrační program SparkFun_HX711_Calibration (Soubor -> Příklady -> HX711 -> SparkFun_HX711_Calibration). Díky tomu můžeme určit koeficient pro použitý tenzometrický paprsek.
Spustíme systém bez zatížení paprsku. Potom položíme předmět známé hmotnosti. Nyní pomocí tlačítek „+“ a „-“ (nebo „a“ a „z“) nastavte čtení tak, aby souhlasilo s naší známou hmotou, např.
Screenshot z monitoru sériového portu.
Níže použitý program (na základě toho z knihovny)
#include "HX711.h" #define DOUT 3 // Arduino pin 3 a výstup DAT senzoru #define CLK 2 // Arduino pin 2 a výstup CLK senzoru Stupnice HX711 (DOUT, CLK); float kalibrace_faktor = -7050; // kalibrační faktor void setup () { Serial.begin (9600); Serial.println ("HX711 - kalibrační program"); Serial.println ("Odstranit zatížení z nosníku"); Serial.println ("Po zahájení čtení vložte známou hmotu na lištu"); Serial.println ("Stisknutím + nebo zvýšíte kalibrační faktor"); Serial.println ("Stisknutím - nebo zvýšíte kalibrační faktor"); scale.set_scale (); scale.tare (); // Nastaví měřítko na 0 long zero_factor = scale.read_average (); // Přečtěte si základy Serial.print ("Nulový faktor:"); // Lze použít k odstranění potřeby tárování váhy. Užitečné pro pevné projekty Serial.println (zero_factor); } void loop () { scale.set_scale (kalibrační_faktor); // Alignment by Calibration Factor Serial.print ("Read:"); Serial.print (scale.get_units (), 1); Serial.print ("kg"); // Můžeme si libovolně vybrat kilogramy nebo libry, protože mezi nimi existuje lineární vztah Serial.print ("Calibration_factor:"); Serial.print (kalibrační_faktor); Serial.println (); if (Serial.available ()) {char temp = Serial.read (); // stáhněte zadanou hodnotu a změňte kalibrační faktor if (temp == '+' || temp == 'a') kalibrační_faktor + = 10; else if (temp == '-' || temp == 'z') kalibrace_faktor - = 10; }}
Pak by měla být v programu SparkFun_HX711_Example použita načtená hodnota (Soubor -> Příklady -> HX711 -> SparkFun_HX711_Example). Použijeme polonizovaný program:
#include "HX711.h" #define kalibrace_faktor -3350.0 // Načíst hodnotu z kalibračního programu #define DOUT 3 // Arduino pin 3 a výstup DAT senzoru #define CLK 2 // Arduino pin 2 a výstup CLK senzoru Stupnice HX711 (DOUT, CLK); void setup () { Serial.begin (9600); Serial.println ("demo v měřítku HX711"); scale.set_scale (kalibrační_faktor); // Nastavte kalibraci scale.tare (); // Resetuje ukazatel na začátek Serial.println ("Čtení:"); } void loop () { Serial.print ("Číst:"); Serial.print (scale.get_units (), 1); //scale.get_units () vrací proměnnou float Serial.print ("kg"); // Můžeme si libovolně vybrat kilogramy nebo libry, ale při změně se změní i kalibrační faktor Serial.println (); }
Nyní můžeme vážit jakékoli položky. Výsledek práce programu se zobrazí na obrazovce níže:
Screenshot z monitoru sériového portu.