- Componenti necessari per costruire una bilancia Arduino:
- Cella di carico e modulo sensore di peso HX711:
- Spiegazione del circuito:
- Spiegazione di lavoro:
- Codice della bilancia Arduino:
Oggi costruiremo una macchina Wight Arduino, interfacciando Load Cell e HX711 Weight Sensor con Arduino. Abbiamo visto macchine per pesi in molti negozi, dove la macchina visualizza il peso semplicemente posizionando un articolo sulla piattaforma di pesatura. Quindi qui stiamo costruendo la stessa macchina di pesatura utilizzando Arduino e celle di carico, con una capacità di misurare fino a 40 kg. Questo limite può essere ulteriormente aumentato utilizzando la cella di carico di maggiore capacità.
Il componente principale richiesto per costruire questa bilancia Arduino è un sensore in grado di convertire il peso in un segnale elettrico equivalente. Questo sensore è chiamato cella di carico, quindi in questo progetto utilizzeremo questa cella di carico come sensore di peso Arduino. Abbiamo anche utilizzato la stessa cella di carico in pochi altri progetti come, come la Portable Arduino Retail Weighing Machine, la bilancia Raspberry pi, ecc., Puoi anche verificarli se interessati.
Componenti necessari per costruire una bilancia Arduino:
- Arduino Uno
- Cella di carico (40 kg)
- Modulo amplificatore cella di carico HX711
- LCD 16x2
- Cavi di collegamento
- cavo USB
- Breadboard
- Bulloni a dado, telaio e base
Cella di carico e modulo sensore di peso HX711:
La cella di carico è un trasduttore che trasforma la forza o la pressione in uscita elettrica. L'entità di questa uscita elettrica è direttamente proporzionale alla forza applicata. Le celle di carico hanno un estensimetro, che si deforma quando viene applicata pressione. Quindi l'estensimetro genera un segnale elettrico sulla deformazione quando la sua resistenza effettiva cambia con la deformazione. Una cella di carico di solito è composta da quattro estensimetri in una configurazione a ponte di Wheatstone. La cella di carico è disponibile in varie gamme come 5 kg, 10 kg, 100 kg e altro, qui abbiamo utilizzato la cella di carico, che può pesare fino a 40 kg.
Ora i segnali elettrici generati dalla cella di carico sono in pochi millivolt, quindi devono essere ulteriormente amplificati da qualche amplificatore e quindi entra in gioco il sensore di pesatura HX711. Il modulo sensore di pesatura HX711 ha il chip HX711, che è un convertitore A / D 24 ad alta precisione (convertitore da analogico a digitale). HX711 ha due canali di ingresso analogico e possiamo ottenere un guadagno fino a 128 programmando questi canali. Quindi il modulo HX711 amplifica la bassa potenza elettrica delle celle di carico e quindi questo segnale amplificato e convertito digitalmente viene inviato ad Arduino per ricavarne il peso.
La cella di carico è collegata all'amplificatore della cella di carico HX711 utilizzando quattro fili. Questi quattro fili sono rosso, nero, bianco e verde / blu. Potrebbe esserci una leggera variazione nei colori dei fili da modulo a modulo. Di seguito i dettagli di collegamento e lo schema:
- Il filo ROSSO è collegato a E +
- Il filo NERO è collegato a E-
- Il filo BIANCO è collegato a A-
- VERDE Il filo è collegato a A +
Cella di carico di fissaggio con piattaforma e base:
Questo passaggio è opzionale e puoi mettere direttamente i pesi sulla cella di carico senza una piattaforma e puoi semplicemente fissarla senza fissarla con alcuna base, ma è meglio attaccare una piattaforma per mettere le cose grandi su di essa e fissarla su una base in modo che si fermi. Quindi qui dobbiamo creare un telaio o una piattaforma per mettere le cose per la misurazione del peso. È inoltre necessaria una base per fissare la cella di carico su di essa utilizzando dadi e bulloni. Qui abbiamo usato del cartone duro per il telaio per posizionare le cose sopra e una tavola di legno come base. Ora esegui i collegamenti come mostrato nello schema elettrico e sei pronto per partire.
Spiegazione del circuito:
I collegamenti per questo progetto sono facili e lo schema è fornito di seguito. I pin LCD 16x2 RS, EN, d4, d5, d6 e d7 sono collegati rispettivamente con i numeri di pin 8, 9, 10, 11, 12 e 13 di Arduino. I pin DT e SCK del modulo HX711 sono collegati direttamente ai pin A0 e A1 di Arduino. I collegamenti della cella di carico con il modulo HX711 sono già spiegati in precedenza e mostrati anche nello schema del circuito sottostante.
Spiegazione di lavoro:
Il principio di funzionamento di questo progetto di misurazione del peso Arduino è semplice. Prima di entrare nei dettagli, dobbiamo innanzitutto calibrare questo sistema per misurare il peso corretto. Quando l'utente lo accenderà, il sistema inizierà automaticamente la calibrazione. E se l'utente desidera calibrarlo manualmente, premere il pulsante. Abbiamo creato una funzione void calibrate () per scopi di calibrazione, controlla il codice qui sotto.
Per la calibrazione, attendere l'indicazione dell'LCD per inserire 100 grammi sulla cella di carico come mostrato nell'immagine sottostante. Quando il display LCD mostrerà "mettere 100 g", posizionare il peso di 100 g sulla cella di carico e attendere. Dopo alcuni secondi il processo di calibrazione sarà terminato. Dopo la calibrazione, l'utente può caricare qualsiasi peso (max 40 kg) sulla cella di carico e ottenere il valore in grammi sull'LCD.
In questo progetto, abbiamo utilizzato Arduino per controllare l'intero processo. La cella di carico rileva il peso e fornisce una tensione elettrica analogica al modulo amplificatore di carico HX711. HX711 è un ADC a 24 bit, che amplifica e converte digitalmente l'uscita della cella di carico. Quindi questo valore amplificato viene inviato ad Arduino. Ora Arduino calcola l'output di HX711 e lo converte nei valori di peso in grammi e lo mostra sul display LCD. Un pulsante viene utilizzato per calibrare il sistema. Abbiamo scritto un programma Arduino per l'intero processo, controlla il codice e il video dimostrativo alla fine di questo tutorial.
Codice della bilancia Arduino:
La parte di programmazione di questo progetto è un po 'complessa per i principianti. In questo progetto non abbiamo utilizzato alcuna libreria per interfacciare il sensore di carico HX711 con Arduino. Abbiamo appena seguito il datasheet di HX711 e le note applicative. Sebbene ci siano alcune librerie presenti per questo scopo, in cui devi solo includere quella libreria e puoi ottenere il peso usando una riga di codice.
Prima di tutto, abbiamo incluso un file di intestazione per LCD e definito i pin per lo stesso. E anche per pulsante. Quindi ha dichiarato alcune variabili a scopo di calcolo.
#includere
Dopo di ciò, abbiamo creato la seguente funzione per leggere i dati dal modulo HX711 e restituirne l'output.
unsigned long readCount (void) {unsigned long Count; carattere non firmato i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Conteggio = 0; pinMode (DT, INPUT); while (digitalRead (DT)); per (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Count = Count << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Count = Count ^ 0x800000; digitalWrite (SCK, LOW); return (Count); }
Dopo di ciò, abbiamo inizializzato l'LCD e diamo indicazioni ai pin di input e output in void setup ().
void setup () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Weight"); lcd.setCursor (0,1); lcd.print ("Misura"); ritardo (1000); lcd.clear (); calibrare(); }
Successivamente, nella funzione void loop () , abbiamo letto i dati dal modulo HX711 e convertiti questi dati in peso (grammi) e li abbiamo inviati all'LCD.
void loop () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("weight:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Weight"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; campione = 0; w = 0; count = 0; calibrare(); }}
Prima di questo, abbiamo creato una funzione di calibrazione in cui abbiamo calibrato il sistema posizionando il peso di 100 g sulla cella di carico.
void calibrate () {lcd.clear (); lcd.print ("Calibrazione…"); lcd.setCursor (0,1); lcd.print ("Attendere…"); for (int i = 0; i <100; i ++) {count = readCount (); campione + = conteggio; Serial.println (count); }……………….
Quindi qui abbiamo imparato l' interfaccia di base della cella di carico e del sensore di peso HX11 con Arduino per misurare i pesi. Nei nostri tutorial testuali, creeremo alcune applicazioni basate sulla misurazione del peso come Smart container, Automatic gate ecc.