Sadržaj:

Digitalna vaga sa ESP32: 12 koraka
Digitalna vaga sa ESP32: 12 koraka

Video: Digitalna vaga sa ESP32: 12 koraka

Video: Digitalna vaga sa ESP32: 12 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Novembar
Anonim
Image
Image
Korišteni resursi
Korišteni resursi

Jeste li ikada razmišljali o postavljanju digitalne vage pomoću ESP32 i senzora (poznatog kao mjerna ćelija)? Danas ću vam pokazati kako to učiniti kroz proces koji dopušta i druga laboratorijska ispitivanja, poput identificiranja sile koju motor vrši na neku točku, između ostalih primjera.

Zatim ću demonstrirati neke koncepte koji se odnose na upotrebu mjernih ćelija, snimiti podatke o ćelijama za izradu primjerne ljestvice i ukazati na druge moguće primjene mjernih ćelija.

Korak 1: Korišteni resursi

• Heltec Lora 32 WiFi ESP

• Učitaj ćeliju (0 do 50 newtona, koristeći vagu)

• 1 potenciometar od 100k (bolje ako koristite viševoltni trimpot za fino podešavanje)

• 1 pojačalo Op LM358

• 2 otpornika 1M5

• 2 10k otpornika

• 1 4k7 otpornik

• Žice

• Protoboard

• USB kabel za ESP

• Vaga, posuda s postepenim volumenom ili bilo koja druga metoda kalibracije.

Korak 2: Demonstracija

Demonstracija
Demonstracija

Korak 3: Učitajte ćelije

Učitaj ćelije
Učitaj ćelije

• To su pretvarači sile.

• Mogu koristiti različite metode za prevođenje primijenjene sile u proporcionalnu veličinu koja se može koristiti kao mjera. Među najčešćim su oni koji koriste ekstenzometre od lima, piezoelektrični efekt, hidrauliku, vibrirajuće žice itd …

• Mogu se klasificirati i prema obliku mjerenja (napetost ili kompresija)

Korak 4: Mjerene ćelije i mjerači napona

Merne ćelije i merači napona
Merne ćelije i merači napona
Merne ćelije i merači napona
Merne ćelije i merači napona

• Ekstenzometri za ploče su filmovi (obično plastični) sa tiskanom žicom koji imaju otpor koji može varirati ovisno o promjeni njihove veličine.

• Njegova konstrukcija uglavnom ima za cilj pretvaranje mehaničke deformacije u varijaciju električne veličine (otpora). To se po mogućnosti događa u jednom smjeru, tako da se može izvršiti evaluacija komponente. Zbog toga je uobičajena kombinacija nekoliko ekstenzometara

• Kada se pravilno pričvrsti na tijelo, njegova deformacija jednaka je deformaciji tijela. Stoga njegov otpor varira s deformacijom tijela, koja je pak povezana sa silom deformacije.

• Poznati su i pod imenom tenzimetri.

• Kada se istežu vlačnom silom, niti se izdužuju i sužavaju, povećavajući otpor.

• Kada se komprimiraju tlačnom silom, žice se skraćuju i šire, smanjujući otpor.

Korak 5: Wheatstoneov most

Wheatstoneov most
Wheatstoneov most

• Radi preciznijeg mjerenja i radi efikasnije detekcije varijacije otpora u mjernoj ćeliji, mjerač naprezanja je sastavljen u Wheatstonov most.

• U ovoj konfiguraciji možemo odrediti varijaciju otpora kroz neravnotežu mosta.

• Ako je R1 = Rx i R2 = R3, razdjelnici napona će biti jednaki, a naponi Vc i Vb će također biti jednaki, s mostom u ravnoteži. Odnosno, Vbc = 0V;

• Ako je Rx različit od R1, most će biti neuravnotežen, a napon Vbc neće biti nula.

• Moguće je pokazati kako bi do ove varijacije trebalo doći, ali ovdje ćemo napraviti direktnu kalibraciju, povezujući očitanu vrijednost u ADC -u s masom primijenjenom na ćeliju opterećenja.

Korak 6: Pojačavanje

Amplification
Amplification

• Čak i pomoću Wheatstonovog mosta kako bi čitanje bilo efikasnije, mikro deformacije u metalu mjerne ćelije proizvode male varijacije napona između Vbc.

• Za rješavanje ove situacije koristit ćemo dvije faze pojačanja. Jedan za određivanje razlike, a drugi za usklađivanje dobivene vrijednosti s ADC -om ESP -a.

Korak 7: Pojačavanje (shema)

Pojačavanje (shema)
Pojačavanje (shema)

• Dobitak koraka oduzimanja je dat sa R6 / R5 i isti je kao R7 / R8.

• Dobitak neinvertirajućeg završnog koraka dat je Pot / R10

Korak 8: Prikupljanje podataka za kalibraciju

Prikupljanje podataka za kalibraciju
Prikupljanje podataka za kalibraciju
Prikupljanje podataka za kalibraciju
Prikupljanje podataka za kalibraciju

• Nakon sastavljanja postavili smo konačni dobitak tako da vrijednost najveće izmjerene mase bude blizu maksimalne vrijednosti ADC -a. U ovom slučaju, za 2 kg primijenjeno u ćeliji, izlazni napon je bio oko 3V3.

• Zatim mijenjamo primijenjenu masu (poznatu putem vage i za svaku vrijednost) i povezujemo LEITUR ADC -a, dobivajući sljedeću tablicu.

Korak 9: Dobijanje odnosa funkcija između izmjerene mase i vrijednosti dobivenog ADC -a

Dobivanje odnosa funkcija između izmjerene mase i vrijednosti dobivenog ADC -a
Dobivanje odnosa funkcija između izmjerene mase i vrijednosti dobivenog ADC -a

Koristimo softver PolySolve za dobivanje polinoma koji predstavlja odnos između mase i vrijednosti ADC -a.

Korak 10: Izvorni kod

Izvorni kod - #Uključuje

Sada kada imamo kako doći do mjerenja i znati odnos između ADC -a i primijenjene mase, možemo prijeći na stvarno pisanje softvera.

// Bibliotecas para utilizationção to display oLED #include // Potrebni apeni za Arduino 1.6.5 i prednji #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Izvorni kod - #Defines

// Os pinos to OLED estão conectados ao ESP32 pelos seguintes GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve servo podešavanje por software

Izvor - Globalne varijable i konstante

SSD1306 ekran (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" const int amostras = 10000; // numero de amostras coletadas para média const int pin = 13; // pino de leitura

Izvorni kod - Postavljanje ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando serijski // Inicia o display display.init (); display.flipScreenVertical (); // Vira a tela verticalmente}

Izvorni kod - Loop ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float massa = 0.0; // varijable para armazenar o valor da massa // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // prikazuje se na sljedećih 5 sekundi {// Uključuje CSV sadržaj u trenu, medij za ADC e o vrijednostima em grama // paralelno. Serial.print (millis () / 1000.0, 0); // instanca im segundos Serial.print (","); Serial.print (medidas, 3); // Valorizirani medij bez ADC -a Serial.print (","); Serial.println ((massa), 1); // massa em gramas // Escreve no baffer do display display.clear (); // Limpa o međuspremniku za prikaz // prilagođavanje alinhamenta za esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no baffer ne prikazuje massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // nema me uspremnika niti valjanosti za ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // prikazuje se 5 poruka {display.clear (); // limpa o međuspremniku za prikaz display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // prebacivanje o baffer para o display delay (50); }

Izvorni kod - Funkcija calculaMassa ()

// função para cálculo da massa obtida regresão // usando oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.74888 medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * medida; }

Korak 11: Pokretanje i mjerenje

Pokretanje i mjerenje
Pokretanje i mjerenje

Korak 12: Datoteke

Preuzmite datoteke

JA NE

PDF

Preporučuje se: