Bilancia Arduino con cella di carico da 5 kg e amplificatore HX711

Questo Instructable descrive come realizzare una piccola bilancia utilizzando parti prontamente disponibili.

Materiale necessario:

1. Arduino: questo design utilizza un Arduino Uno standard, dovrebbero funzionare anche altre versioni o cloni di Arduino

2. HX711 su breakout board - Questo microchip è appositamente progettato per amplificare i segnali dalle celle di carico e segnalarli a un altro mircocontroller. Le celle di carico si collegano a questa scheda e questa scheda indica ad Arduino cosa misurano le celle di carico.

3. Cella di carico da 5 kg - Le celle di carico sono parti metalliche di forma speciale con estensimetri incollati. Gli estensimetri sono resistori che cambiano la loro resistenza quando sono piegati. Quando la parte metallica si piega, la resistenza della cella di carico cambia (l'HX711 misura accuratamente questo piccolo cambiamento di resistenza). Puoi acquistare sia l'HX711 sia la cella di carico qui: //www.amazon.com/Degraw-Load-Cell-HX711-Combo/dp/B075317R45/

Se acquisti il ​​kit, lascia una recensione! È davvero utile per i futuri acquirenti.

4. Robusta superficie di montaggio piatta (x2) - ideale per un pezzo rigido di legno duro o metallo.

5. Cavi in ​​vari colori per il collegamento di tutte le parti

6. Alimentatore per Arduino

Passaggio 1: montare la cella di carico

Innanzitutto monteremo la cella di carico. La tua montatura sarà unica, ma ecco le linee guida che devi seguire:

1. La cella di carico in alluminio deve avere 4 fori maschiati e un'etichetta che indica la direzione della forza. Montare il lato senza l'etichetta sulla superficie fissa e montare il lato con l'etichetta sulla superficie mobile. La freccia sul lato etichettato deve essere rivolta verso il basso nella direzione in cui la piattaforma si sposterà quando viene applicato un carico.

2. La piastra di montaggio e la piastra mobile devono essere entrambe il più rigide possibile

3. Accertarsi di inserire una qualche forma di distanziale rigido tra le piastre di montaggio e la cella di carico. Distanziatori o rondelle funzionano entrambi bene. L'obiettivo è che qualsiasi forza applicata alla piastra mobile faccia piegare e torcere la cella di carico. Senza distanziali, il carico verrebbe trasferito direttamente dalla piastra mobile alla piastra fissa senza influire sulla cella di carico.

Passaggio 2: cablare le celle di carico e HX711

Vedere lo schema di cablaggio per come collegare le celle di carico, HX711 e Arduino.

Sulle celle di carico in alluminio, più estensimetri sono già collegati insieme per un ponte di Wheatstone. Tutto quello che devi fare è collegare i fili alla scheda HX711 con l'orientamento corretto.

Passaggio 3: Aggiungi la libreria HX711 all'IDE di Arduino

La libreria HX711 è disponibile qui: //github.com/bogde/HX711

Vedere questo collegamento sul sito Web di Arduino per istruzioni su come aggiungere la libreria all'IDE di Arduino: //www.arduino.cc/en/Guide/Libraries

Passaggio 4: calibrare e pesare!

Sparkfun ha ottimi programmi Arduino per eseguire la bilancia. Le versioni più aggiornate sono disponibili su GitHub e ristampate di seguito: //github.com/sparkfun/HX711-Load-Cell-Amplifier

Il primo passaggio del software consiste nel determinare i fattori di calibrazione per la bilancia. Per fare questo, esegui questo codice:

 / * Esempio di utilizzo della scheda breakout SparkFun HX711 con una bilancia Di: Nathan Seidle SparkFun Electronics Data: 19 novembre 2014 Licenza: questo codice è di dominio pubblico ma mi acquisti una birra se la usi e ci incontreremo un giorno (licenza Beerware). Questo è lo schizzo di calibrazione. Usalo per determinare il fattore di calibrazione utilizzato dall'esempio principale. Fornisce inoltre lo zero_factor utile per i progetti che hanno una massa permanente sulla scala tra i cicli di alimentazione. Imposta la tua bilancia e avvia lo schizzo SENZA un peso sulla bilancia Una volta visualizzate le letture posiziona il peso sulla bilancia Premi +/- o a / z per regolare il fattore di calibrazione fino a quando le letture di output corrispondono al peso noto Usa questo fattore di calibrazione nello schizzo di esempio Questo esempio presuppone sterline (libbre). Se preferisci i chilogrammi, modifica Serial.print ("lbs"); linea a kg. Il fattore di calibrazione sarà significativamente diverso ma sarà linearmente correlato a libbre (1 libbre = 0, 453592 kg). Il fattore di calibrazione può essere molto positivo o molto negativo. Tutto dipende dalla configurazione del sistema di pesatura e dalla direzione in cui i sensori deviano dallo stato zero Questo codice di esempio utilizza l'eccellente libreria di bogde: "// github.com/bogde/HX711" La libreria di bogde è rilasciata sotto un GNU GENERAL PUBLIC LICENSE Pin Arduino 2 -> HX711 CLK 3 -> DOUT 5V -> VCC GND -> GND Quasi tutti i pin di Arduino Uno saranno compatibili con DOUT / CLK. La scheda HX711 può essere alimentata da 2, 7 V a 5 V, quindi la potenza di Arduino 5 V dovrebbe andare bene. * / #include "HX711.h" #define DOUT 3 #define CLK 2 scala HX711; float Calibration_factor = -7050; // - 7050 ha funzionato per il mio setup di scala massima 440lb void setup () {Serial.begin (9600); Serial.println ("schizzo di calibrazione HX711"); Serial.println ("Rimuovi tutto il peso dalla bilancia"); Serial.println ("Dopo l'inizio delle letture, posizionare il peso noto sulla bilancia"); Serial.println ("Premi + o a per aumentare il fattore di calibrazione"); Serial.println ("Premere - o z per ridurre il fattore di calibrazione"); scale.begin (DOUT, CLK); scale.set_scale (); scale.tare (); // Reimposta la scala su 0 long zero_factor = scale.read_average (); // Ottieni una baseline leggendo Serial.print ("Zero factor:"); // Questo può essere usato per rimuovere la necessità di tarare la bilancia. Utile in progetti su scala permanente. Serial.println (zero_factor); } void loop () {scale.set_scale (calibrazione_fattore); // Adatta a questo fattore di calibrazione Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); Serial.print ("lbs"); // Cambia in kg e regola nuovamente il fattore di calibrazione se segui le unità SI come una persona sana Serial.print ("calibrazione_fattore:"); Serial.print (calibration_factor); Serial.println (); if (Serial.available ())} 

Dopo aver calibrato la bilancia, è possibile eseguire questo programma di esempio, quindi hackerarlo per i propri scopi:

 / * Esempio di utilizzo della scheda breakout SparkFun HX711 con una bilancia Di: Nathan Seidle SparkFun Electronics Data: 19 novembre 2014 Licenza: questo codice è di dominio pubblico ma mi acquisti una birra se la usi e ci incontreremo un giorno (licenza Beerware). Questo esempio dimostra l'output di base della scala. Vedi lo schizzo di calibrazione per ottenere il fattore_ calibrazione per la tua specifica configurazione della cella di carico. Questo codice di esempio utilizza l'eccellente libreria di bogde: "// github.com/bogde/HX711" La libreria di bogde è rilasciata sotto una LICENZA PUBBLICA GENERALE GNU L'HX711 fa bene una cosa: leggere le celle di carico. La scheda breakout è compatibile con qualsiasi cella di carico basata su ponte in pietra di grano che dovrebbe consentire all'utente di misurare qualsiasi cosa, da pochi grammi a decine di tonnellate. Pin Arduino 2 -> HX711 CLK 3 -> DAT 5V -> VCC GND -> GND La scheda HX711 può essere alimentata da 2, 7 V a 5 V, quindi la potenza Arduino 5 V dovrebbe andare bene. * / #include "HX711.h" #define calibrazione_factor -7050.0 // Questo valore è ottenuto usando lo schizzo SparkFun_HX711_Calibration #define DOUT 3 #define CLK 2 HX711; void setup () {Serial.begin (9600); Serial.println ("demo scala HX711"); scale.begin (DOUT, CLK); scale.set_scale (calibration_factor); // Questo valore si ottiene utilizzando lo schizzo SparkFun_HX711_Calibration scale.tare (); // Supponendo che non vi sia peso sulla bilancia all'avvio, reimpostare la bilancia su 0 Serial.println ("Letture:"); } void loop () {Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); //scale.get_units () restituisce un float Serial.print ("lbs"); // Puoi cambiarlo in kg ma dovrai rifattorizzare calibrazione_factor Serial.println (); } 

Articoli Correlati