Sisukord:

Digitaalne skaala ESP32 abil: 12 sammu
Digitaalne skaala ESP32 abil: 12 sammu

Video: Digitaalne skaala ESP32 abil: 12 sammu

Video: Digitaalne skaala ESP32 abil: 12 sammu
Video: LDmicro 10: Регулятор температуры инкубатора (лестничное программирование ПЛК микроконтроллера с помощью LDmicro) 2024, November
Anonim
Image
Image
Kasutatud ressursid
Kasutatud ressursid

Kas olete kunagi mõelnud digitaalse skaala paigaldamisele ESP32 ja anduri (tuntud kui koormusandur) abil? Täna näitan teile, kuidas seda teha protsessi kaudu, mis võimaldab teha ka muid laboratoorseid katseid, näiteks tuvastada jõud, mida mootor mõnes punktis täidab.

Seejärel demonstreerin mõningaid koormusandurite kasutamisega seotud kontseptsioone, jäädvustan lahtrite andmeid näidisskaala loomiseks ja toon välja muud võimalikud koormusandurite rakendused.

Samm: kasutatud ressursid

• Heltec Lora 32 WiFi ESP

• Laadi lahter (0 kuni 50 njuutonit, kasutades skaalat)

• 1 100k potentsiomeeter (parem, kui kasutate peenreguleerimiseks mitmevoldilist trimpot)

• 1 võimendi op LM358

• 2 1M5 takistit

• 2 10k takistit

• 1 4k7 takisti

• Juhtmed

• Protoboard

• USB -kaabel ESP jaoks

• Kaal, astmeline mahuti või mõni muu kalibreerimismeetod.

2. samm: tutvustamine

Demonstratsioon
Demonstratsioon

3. samm: laadige lahtrid

Laadimisrakud
Laadimisrakud

• Nad on jõu andurid.

• Nad võivad kasutada erinevaid meetodeid rakendatud jõu teisendamiseks proportsionaalsesse suurusjärku, mida saab mõõta. Kõige tavalisemad on need, mis kasutavad lehtede ekstensomeetreid, piesoelektrilist efekti, hüdraulikat, vibreerivaid stringe jne …

• Neid saab klassifitseerida ka mõõtmisvormi järgi (pinge või kokkusurumine)

Samm 4: Laadige rakud ja venitusmõõturid

Koormusandurid ja koormusmõõturid
Koormusandurid ja koormusmõõturid
Koormusandurid ja koormusmõõturid
Koormusandurid ja koormusmõõturid

• Lehtede ekstensomeetrid on trükitud traadiga kiled (tavaliselt plastist), mille takistus võib suuruse muutumisel erineda.

• Selle konstruktsiooni peamine eesmärk on muuta mehaaniline deformatsioon elektrilise suuruse (takistuse) variatsiooniks. See toimub eelistatavalt ühes suunas, nii et saab komponente hinnata. Selleks on tavaline mitme ekstensomeetri kombinatsioon

• Kui see on korralikult keha külge kinnitatud, on selle deformatsioon võrdne keha deformatsiooniga. Seega varieerub selle takistus vastavalt keha deformatsioonile, mis omakorda on seotud deformeeriva jõuga.

• Neid tuntakse ka pingutusmõõturitena.

• Tõmbetugevusega venitades venivad kiud pikemaks ja kitsenevad, suurendades vastupanu.

• Survejõuga kokkusurumisel lühenevad ja laienevad juhtmed, vähendades takistust.

5. samm: Wheatstone'i sild

Wheatstone'i sild
Wheatstone'i sild

• Täpsemaks mõõtmiseks ja vastupidavuse muutuste tõhusamaks tuvastamiseks koormusanduris on venitusmõõtur kokku pandud Wheatstone'i sillaks.

• Selles konfiguratsioonis saame määrata takistuse variatsiooni silla tasakaalustamatuse kaudu.

• Kui R1 = Rx ja R2 = R3, on pingejagurid võrdsed ning ka pinged Vc ja Vb võrdsed, sild on tasakaalus. See tähendab, et Vbc = 0V;

• Kui Rx on muu kui R1, on sild tasakaalust väljas ja pinge Vbc on null.

• On võimalik näidata, kuidas see variatsioon peaks toimuma, kuid siin teeme otsese kalibreerimise, seostades ADC -s loetud väärtuse koormusandurile rakendatud massiga.

6. samm: võimendamine

Võimendus
Võimendus

• Isegi kasutades Wheatstone'i silda lugemise efektiivsemaks muutmiseks, tekitavad koormusanduri metalli mikrodformatsioonid väikesed pinge kõikumised Vbc vahel.

• Selle olukorra lahendamiseks kasutame kahte võimendusastet. Üks, et määrata erinevus ja teine, et sobitada saadud väärtus ESP ADC -ga.

7. samm: võimendamine (skeem)

Võimendus (skeem)
Võimendus (skeem)

• Lahutamisetapi võimenduse annab R6 / R5 ja see on sama mis R7 / R8.

• Inverteerimata viimase etapi võimenduse annab Pot / R10

8. samm: andmete kogumine kalibreerimiseks

Andmete kogumine kalibreerimiseks
Andmete kogumine kalibreerimiseks
Andmete kogumine kalibreerimiseks
Andmete kogumine kalibreerimiseks

• Pärast kokkupanekut seadistame lõpliku võimenduse nii, et suurima mõõdetud massi väärtus oleks ADC maksimaalse väärtuse lähedal. Sel juhul oli lahtrisse kantud 2 kg puhul väljundpinge umbes 3 V3.

• Järgmisena muudame rakendatud massi (teada saldo ja iga väärtuse kohta) ning seostame ADC LEITURi, saades järgmise tabeli.

9. samm: mõõdetud massi ja saadud ADC väärtuse vahelise funktsiooni seose saamine

Funktsioonisuhte saamine mõõdetud massi ja saadud ADC väärtuse vahel
Funktsioonisuhte saamine mõõdetud massi ja saadud ADC väärtuse vahel

Kasutame tarkvara PolySolve, et saada polünoom, mis esindab seost ADC massi ja väärtuse vahel.

10. samm: lähtekood

Lähtekood - #Sisaldab

Nüüd, kui meil on mõõtmiste tegemine ja ADC ja rakendatava massi vahelise seose tundmine, saame liikuda edasi tarkvara tegeliku kirjutamise juurde.

// Bibliotecas para utilização do display oLED #include // Vajalikud seadmed Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Lähtekood - #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 tarkvara kohta

Allikas - globaalsed muutujad ja konstandid

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

Lähtekood - seadistamine ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // sarja alustamine // Inicia või ekraani kuvamine.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Lähtekood - Loop ()

void loop () {float medidas = 0.0; // varievel para manipular as medidas float massa = 0.0; // variavel para armazenar o valor da massa // initsia 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. Seeriaprint (millis () / 1000,0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((massaaž), 1); // massaaži grammid // Puhver puudub, kuva kuvatakse.clear (); // Limpa või buffer do display // kuvamine või alinhamento esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Kui puhvrit ei ole, kuvatakse massa -kuvar.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 või puhver kuvab display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta või alinhamento 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 (); // ülekande puhver para o display delay (50); }

Lähtekood - funktsiooni arvutusMassa ()

// 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. samm: käivitamine ja mõõtmine

Alustamine ja mõõtmine
Alustamine ja mõõtmine

12. samm: failid

Laadige failid alla

INO

PDF

Soovitan: