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.

zveme vás ke spolupráci!