Turinys:

Skaitmeninė skalė su ESP32: 12 žingsnių
Skaitmeninė skalė su ESP32: 12 žingsnių

Video: Skaitmeninė skalė su ESP32: 12 žingsnių

Video: Skaitmeninė skalė su ESP32: 12 žingsnių
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Liepa
Anonim
Image
Image
Naudojami ištekliai
Naudojami ištekliai

Ar kada pagalvojote apie skaitmeninės svarstyklės montavimą naudojant ESP32 ir jutiklį (žinomą kaip apkrovos matuoklis)? Šiandien aš, be kitų pavyzdžių, parodysiu, kaip tai padaryti naudojant procesą, kuris taip pat leidžia atlikti kitus laboratorinius tyrimus, pvz., Nustatyti variklio atliekamą jėgą.

Tada aš parodysiu kai kurias sąvokas, susijusias su apkrovos elementų naudojimu, užfiksuosiu ląstelių duomenis, kad sukurtume pavyzdinę skalę, ir nurodysiu kitas galimas apkrovos elementų taikymo sritis.

1 žingsnis: naudojami ištekliai

• „Heltec Lora 32 WiFi ESP“

• Įkelti langelį (nuo 0 iki 50 niutonų, naudojant skalę)

• 1 100k potenciometras (geriau, jei tiksliam reguliavimui naudojate kelių voltų trimpą)

• 1 stiprintuvas LM358

• 2 1M5 rezistoriai

• 2 10k rezistoriai

• 1 4k7 rezistorius

• Laidai

• Protoboard

• USB kabelis ESP

• Svarstyklės, indas su graduotu tūriu arba bet koks kitas kalibravimo metodas.

2 žingsnis: demonstracija

Demonstracija
Demonstracija

3 žingsnis: įkelkite langelius

Įkėlimo langeliai
Įkėlimo langeliai

• Jie yra jėgos keitikliai.

• Jie gali naudoti įvairius metodus, kad pritaikytą jėgą paverstų proporcingu dydžiu, kuris gali būti naudojamas kaip matas. Tarp labiausiai paplitusių yra tie, kurie naudoja lakštinius ekstensometrus, Pjezoelektrinį efektą, hidrauliką, vibruojančias stygas ir kt.

• Jie taip pat gali būti klasifikuojami pagal matavimo formą (įtempimas ar suspaudimas)

4 žingsnis: įkelkite elementus ir įtempimo matuoklius

Apkrovos elementai ir deformacijos matuokliai
Apkrovos elementai ir deformacijos matuokliai
Apkrovos elementai ir deformacijos matuokliai
Apkrovos elementai ir deformacijos matuokliai

• Lakštų ekstensometrai yra plėvelės (dažniausiai plastikinės) su atspausdinta viela, kurių atsparumas gali kisti keičiantis jų dydžiui.

• Jo konstrukcija daugiausia skirta mechaninę deformaciją paversti elektrinio dydžio (pasipriešinimo) variacija. Pageidautina, kad tai įvyktų viena kryptimi, kad būtų galima įvertinti komponentus. Tam dažniausiai naudojamas kelių ekstensometrų derinys

• Tinkamai pritvirtinus prie kūno, jo deformacija yra lygi kūno deformacijai. Taigi jo atsparumas kinta priklausomai nuo kūno deformacijos, o tai savo ruožtu yra susijusi su deformuojančia jėga.

• Jie taip pat žinomi kaip įtempimo matuokliai.

• Tempiant jėga, sruogos pailgėja ir susiaurėja, todėl padidėja pasipriešinimas.

• Suspaudžiant suspaudimo jėga, laidai sutrumpėja ir išsiplečia, sumažėja pasipriešinimas.

5 žingsnis: Wheatstone tiltas

Wheatstone tiltas
Wheatstone tiltas

• Siekiant tiksliau išmatuoti ir efektyviau aptikti apkrovos elemento pasipriešinimo kitimą, įtempimo matuoklis surenkamas į Wheatstone tiltą.

• Šioje konfigūracijoje mes galime nustatyti pasipriešinimo kitimą per tilto disbalansą.

• Jei R1 = Rx ir R2 = R3, įtampos dalikliai bus lygūs, o įtampos Vc ir Vb taip pat bus lygios, kai tiltas yra pusiausvyros būsenoje. Tai yra, Vbc = 0V;

• Jei Rx yra kitoks nei R1, tiltas bus nesubalansuotas, o įtampa Vbc bus lygi nuliui.

• Galima parodyti, kaip turėtų atsirasti šis kitimas, tačiau čia mes atliksime tiesioginį kalibravimą, susiedami ADC nuskaitytą vertę su apkrovos elementui pritaikyta mase.

6 žingsnis: stiprinimas

Amplifikacija
Amplifikacija

• Net naudojant „Wheatstone“tiltą, kad skaitymas būtų veiksmingesnis, apkrovos elemento metalo mikro deformacijos sukelia nedidelius įtampos skirtumus tarp Vbc.

• Norėdami išspręsti šią situaciją, naudosime du stiprinimo etapus. Vienas - skirtumui nustatyti, kitas - atitikti gautą vertę pagal ESP ADC.

7 žingsnis: stiprinimas (schema)

Stiprinimas (schema)
Stiprinimas (schema)

• Atimties žingsnio padidėjimas yra R6 / R5 ir yra toks pat kaip R7 / R8.

• Neapverčiamo paskutinio žingsnio padidėjimą suteikia Pot / R10

8 veiksmas: duomenų rinkimas kalibravimui

Duomenų rinkimas kalibravimui
Duomenų rinkimas kalibravimui
Duomenų rinkimas kalibravimui
Duomenų rinkimas kalibravimui

• Surinkę galutinį stiprinimą nustatome taip, kad didžiausios išmatuotos masės vertė būtų artima maksimaliai ADC vertei. Šiuo atveju, kai ląstelėje buvo 2 kg, išėjimo įtampa buvo apie 3 V3.

• Tada mes keičiame taikomą masę (žinomą pagal balansą ir kiekvienai vertei) ir susiejame ADC LEITUR, gaudami kitą lentelę.

9 veiksmas: funkcinio ryšio tarp išmatuotos masės ir gautos ADC vertės gavimas

Funkcijų santykio tarp išmatuotos masės ir gautos ADC vertės gavimas
Funkcijų santykio tarp išmatuotos masės ir gautos ADC vertės gavimas

Mes naudojame „PolySolve“programinę įrangą, kad gautume polinomą, vaizduojantį ryšį tarp masės ir ADC vertės.

10 veiksmas: šaltinio kodas

Šaltinio kodas - #Includes

Dabar, kai žinome, kaip gauti matavimus ir žinome ryšį tarp ADC ir taikomos masės, galime pereiti prie programinės įrangos rašymo.

// 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"

Šaltinio kodas - #Defines

// OS pinos do OLED est cono contoados 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 pagal programinę įrangą

Šaltinis - visuotiniai kintamieji ir konstantos

SSD1306 ekranas (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

Šaltinio kodas - sąranka ()

void setup () {pinMode (PIN, INPUT); // pino de leitura analógica Serial.begin (115200); // inicijuoti serijinį // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Šaltinio kodas - ciklas ()

void loop () {float medidas = 0.0; // vará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. Serijinis atspaudas (milis () / 1000,0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((masažas), 1); // masa em gramas // Escreve no buffer do display display.clear (); // Limpa o buffer do display // rodymas arba alinhamento para ir esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer do not display a mass display.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 arba buferis rodyti display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para a esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balansa"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajust a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // perkelti o buferį para o display delay (50); }

Šaltinio kodas - Funkcijos skaičiuoklėMassa ()

// 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 veiksmas: paleidimas ir matavimas

Pradėjimas ir matavimas
Pradėjimas ir matavimas

12 žingsnis: failai

Atsisiųskite failus

AŠ NE

PDF

Rekomenduojamas: