Satura rādītājs:

Digitālā skala ar ESP32: 12 soļi
Digitālā skala ar ESP32: 12 soļi

Video: Digitālā skala ar ESP32: 12 soļi

Video: Digitālā skala ar ESP32: 12 soļi
Video: ESP32 Tutorial 23 - Reading Voltage of potentiometer using ESP32 | SunFounder's ESP32 IoT kit 2024, Novembris
Anonim
Image
Image
Izmantotie resursi
Izmantotie resursi

Vai esat kādreiz domājuši par digitālās skalas uzstādīšanu, izmantojot ESP32 un sensoru (pazīstams kā slodzes sensors)? Šodien es parādīšu, kā to izdarīt, izmantojot procesu, kas ļauj veikt arī citus laboratorijas testus, piemēram, noteikt spēku, ko motors veic kādā punktā, starp citiem piemēriem.

Pēc tam es parādīšu dažus jēdzienus, kas saistīti ar slodzes šūnu izmantošanu, uztveršu šūnu datus, lai izveidotu parauga skalu, un norādīšu uz citiem iespējamiem slodzes šūnu lietojumiem.

1. darbība. Izmantotie resursi

• Heltec Lora 32 WiFi ESP

• Ielādēt šūnu (no 0 līdz 50 ņūtoniem, izmantojot skalu)

• 1 potenciometrs 100k (labāk, ja smalkajai regulēšanai izmantojat daudzvoltes trimpotu)

• 1 pastiprinātājs LM358

• 2 1M5 rezistori

• 2 10k rezistori

• 1 4k7 rezistors

• Vadi

• Protobords

• USB kabelis ESP

• Svari, trauks ar graduētu tilpumu vai jebkura cita kalibrēšanas metode.

2. solis: demonstrācija

Demonstrācija
Demonstrācija

3. solis: ielādējiet šūnas

Slodzes šūnas
Slodzes šūnas

• Tie ir spēka pārveidotāji.

• Viņi var izmantot dažādas metodes, lai pielietoto spēku pārvērstu proporcionālā lielumā, ko var izmantot kā mēru. Visizplatītākie ir tie, kas izmanto lokšņu ekstensometrus, THE pjezoelektrisko efektu, hidrauliku, vibrējošās stīgas utt.

• Tos var klasificēt arī pēc mērīšanas formas (spriegojums vai saspiešana)

4. solis: ielādējiet šūnas un deformācijas mērītājus

Slodzes šūnas un deformācijas mērītāji
Slodzes šūnas un deformācijas mērītāji
Slodzes šūnas un deformācijas mērītāji
Slodzes šūnas un deformācijas mērītāji

• Lokšņu ekstensometri ir plēves (parasti plastmasas) ar iespiestu stiepli, kuru pretestība var mainīties atkarībā no izmēra.

• Tās konstrukcijas galvenais mērķis ir pārveidot mehānisko deformāciju elektriskā lieluma (pretestības) variācijā. Tas notiek vēlams vienā virzienā, lai varētu veikt komponentu novērtēšanu. Šim nolūkam ir izplatīta vairāku ekstensometru kombinācija

• Pareizi piestiprinot pie ķermeņa, tā deformācija ir vienāda ar ķermeņa deformāciju. Tādējādi tā pretestība mainās atkarībā no ķermeņa deformācijas, kas savukārt ir saistīta ar deformējošo spēku.

• Tos sauc arī par deformācijas mērītājiem.

• Stiepjot ar stiepes spēku, dzīslas izstiepjas un sašaurinās, palielinot pretestību.

• Saspiežot ar spiedes spēku, vadi saīsinās un paplašinās, samazinot pretestību.

5. solis: Wheatstone tilts

Wheatstone tilts
Wheatstone tilts

• Lai iegūtu precīzāku mērījumu un lai efektīvāk noteiktu pretestības svārstības slodzes kamerā, deformācijas mērītājs ir samontēts Wheatstone tiltā.

• Šajā konfigurācijā mēs varam noteikt pretestības izmaiņas tilta nelīdzsvarotības dēļ.

• Ja R1 = Rx un R2 = R3, sprieguma dalītāji būs vienādi, un spriegumi Vc un Vb arī būs vienādi ar tiltu līdzsvarā. Tas ir, Vbc = 0V;

• Ja Rx nav R1, tilts būs nelīdzsvarots un spriegums Vbc būs nulle.

• Ir iespējams parādīt, kā šai variācijai vajadzētu notikt, taču šeit mēs veiksim tiešu kalibrēšanu, saistot ADC nolasīto vērtību ar masu, kas uzlikta slodzes elementam.

6. darbība: pastiprināšana

Pastiprināšana
Pastiprināšana

• Pat izmantojot Wheatstone tiltu, lai padarītu lasīšanu efektīvāku, slodzes šūnas metāla deformācijas rada nelielas sprieguma svārstības starp Vbc.

• Lai atrisinātu šo situāciju, mēs izmantosim divus pastiprināšanas posmus. Viens, lai noteiktu atšķirību, un otrs, lai saskaņotu iegūto vērtību ar ESP ADC.

7. darbība: pastiprināšana (shēma)

Pastiprināšana (shēma)
Pastiprināšana (shēma)

• Atņemšanas soļa pastiprinājumu nosaka R6 / R5, un tas ir tāds pats kā R7 / R8.

• Neinvertējošā pēdējā posma ieguvumu nosaka Pot / R10

8. darbība: datu apkopošana kalibrēšanai

Datu vākšana kalibrēšanai
Datu vākšana kalibrēšanai
Datu vākšana kalibrēšanai
Datu vākšana kalibrēšanai

• Kad salikts, mēs iestatām galīgo pastiprinājumu tā, lai lielākās izmērītās masas vērtība būtu tuvu ADC maksimālajai vērtībai. Šajā gadījumā 2 kg šūnā izvades spriegums bija aptuveni 3 V3.

• Pēc tam mēs mainām pielietoto masu (kas zināma, izmantojot līdzsvaru un katrai vērtībai), un mēs saistām ADC LEITUR, iegūstot nākamo tabulu.

9. darbība. Funkciju saistības iegūšana starp izmērīto masu un iegūto ADC vērtību

Funkciju saistības iegūšana starp izmērīto masu un iegūto ADC vērtību
Funkciju saistības iegūšana starp izmērīto masu un iegūto ADC vērtību

Mēs izmantojam PolySolve programmatūru, lai iegūtu polinomu, kas attēlo attiecību starp masu un ADC vērtību.

10. darbība: avota kods

Avota kods - #Ietver

Tagad, kad mums ir, kā iegūt mērījumus un zināt attiecības starp ADC un lietišķo masu, mēs varam pāriet pie programmatūras rakstīšanas.

// Bibliotecas para utilização do display oLED #include // Necessário apenas para o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Avota kods - #Defines

// Os pinos do 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 ser ajustado programmatūra

Avots - globālie mainīgie un konstantes

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

Avota kods - iestatīšana ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // inicializēt sēriju // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Avota kods - cilpa ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float massa = 0.0; // variável para armazenar o valor da massa // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// Envia um CSV contendo o instante, a medida média do ADC e o valor em gramas // para a Serial. Sērijas nospiedums (milis () / 1000,0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((masa), 1); // massa em gramas // Escreve no buffer do display display.clear (); // Limpa o buffer do display // just vai alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer do displeja masas displejs.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // escreve no buffer o valor do ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos {display.clear (); // limpa vai buferis parāda displeju.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta vai alinhamento para a 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 (); // pārsūtīt o buferi para o display delay (50); }

Avota kods - funkciju aprēķinsMassa ()

// função para cálculo da massa obtida pela regressão // usando oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.74810883 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; }

11. darbība: sākšana un mērīšana

Sākšana un mērīšana
Sākšana un mērīšana

12. darbība: faili

Lejupielādējiet failus

ES NĒ

PDF

Ieteicams: