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.


