Sisällysluettelo:

Digitaalinen asteikko ESP32: 12 askelta
Digitaalinen asteikko ESP32: 12 askelta

Video: Digitaalinen asteikko ESP32: 12 askelta

Video: Digitaalinen asteikko ESP32: 12 askelta
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Heinäkuu
Anonim
Image
Image
Käytetyt resurssit
Käytetyt resurssit

Oletko koskaan ajatellut digitaalisen asteikon asentamista ESP32: n ja anturin (joka tunnetaan punnituskennona) avulla? Tänään näytän sinulle, kuinka tämä tehdään prosessin avulla, joka mahdollistaa myös muita laboratoriokokeita, kuten moottorin voiman tunnistamisen tiettyyn pisteeseen.

Esittelen sitten joitain punnituskennojen käyttöön liittyviä käsitteitä, kerään solutietoja esimerkkiasteikon luomiseksi ja huomautan muita mahdollisia kuormituskennojen sovelluksia.

Vaihe 1: Käytetyt resurssit

• Heltec Lora 32 WiFi ESP

• Lataa solu (0-50 newtonia asteikolla)

• 1 100k: n potentiometri (parempi, jos käytät monivoltista trimpotia hienosäätöön)

• 1 vahvistin LM358

• 2 1M5 vastusta

• 2 10k vastukset

• 1 4k7 vastus

• Johdot

• Protoboard

• USB -kaapeli ESP: tä varten

• Vaaka, astia, jossa on asteikko tai jokin muu kalibrointimenetelmä.

Vaihe 2: Esittely

Esittely
Esittely

Vaihe 3: Lataa solut

Lataa solut
Lataa solut

• Ne ovat voimanmuuntimia.

• He voivat käyttää erilaisia menetelmiä muuntaakseen käytetyn voiman suhteelliseksi suuruudeksi, jota voidaan käyttää mittauksena. Yleisimpiä ovat levyn ulottuvuusmittarit, pietsosähköinen vaikutus, hydrauliikka, tärinäjouset jne.

• Ne voidaan luokitella myös mittausmuodon mukaan (jännitys tai puristus)

Vaihe 4: Lataa kennot ja venymämittarit

Kuormituskennot ja venymämittarit
Kuormituskennot ja venymämittarit
Kuormituskennot ja venymämittarit
Kuormituskennot ja venymämittarit

• Arkki -ekstensometrit ovat kalvoja (yleensä muovisia), joissa on painettu lanka ja joiden vastus voi vaihdella koon muuttuessa.

• Sen rakenteella pyritään pääasiassa muuttamaan mekaaninen muodonmuutos sähköisen suuruuden (vastuksen) vaihteluksi. Tämä tapahtuu mieluiten yhteen suuntaan, jotta komponenttien arviointi voidaan suorittaa. Tätä varten useiden ekstensometrien yhdistelmä on yleinen

• Kun runko on kiinnitetty oikein, sen muodonmuutos on sama kuin rungon muodonmuutos. Siten sen vastus vaihtelee rungon muodonmuutoksen mukaan, mikä puolestaan liittyy muodonmuutosvoimaan.

• Niitä kutsutaan myös jännitysmittariksi.

• Vetovoimalla venytettynä säikeet venyvät ja kapenevat lisäämällä vastusta.

• Puristettaessa puristusvoimalla johdot lyhenevät ja laajenevat, mikä vähentää vastusta.

Vaihe 5: Wheatstone Bridge

Wheatstonen silta
Wheatstonen silta

• Mittauslaite on koottu Wheatstone -siltaan tarkemman mittauksen ja kuormituskennon vastusvaihtelun havaitsemisen tehostamiseksi.

• Tässä kokoonpanossa voimme määrittää vastuksen vaihtelun sillan epätasapainon kautta.

• Jos R1 = Rx ja R2 = R3, jännitteenjakajat ovat yhtä suuret ja myös jännitteet Vc ja Vb ovat samat sillan ollessa tasapainossa. Eli Vbc = 0V;

• Jos Rx on muu kuin R1, silta on epätasapainossa ja jännite Vbc on nolla.

• On mahdollista näyttää, miten tämän vaihtelun pitäisi tapahtua, mutta tässä teemme suoran kalibroinnin, joka liittää ADC: ssä luetun arvon punnituskennoon asetettuun massaan.

Vaihe 6: Vahvistus

Vahvistus
Vahvistus

• Jopa käyttämällä Wheatstonen siltaa lukemisen tehostamiseksi, punnituskennon metallin mikrovääristymät aiheuttavat pieniä jännitevaihteluita Vbc: n välillä.

• Tämän tilanteen ratkaisemiseksi käytämme vahvistuksen kahta vaihetta. Toinen määrittää eron ja toinen vastaa ESP: n ADC: n arvoa.

Vaihe 7: Vahvistus (järjestelmä)

Vahvistus (järjestelmä)
Vahvistus (järjestelmä)

• Vähennysvaiheen vahvistus on R6 / R5 ja se on sama kuin R7 / R8.

• Käänteisen viimeisen vaiheen vahvistuksen antaa potti / R10

Vaihe 8: Tietojen kerääminen kalibrointia varten

Tietojen kerääminen kalibrointia varten
Tietojen kerääminen kalibrointia varten
Tietojen kerääminen kalibrointia varten
Tietojen kerääminen kalibrointia varten

• Kokoonpanon jälkeen asetamme lopullisen vahvistuksen siten, että suurimman mitatun massan arvo on lähellä ADC: n maksimiarvoa. Tässä tapauksessa 2 kg: n kennoon syötetty lähtöjännite oli noin 3 V3.

• Seuraavaksi muutamme käytettyä massaa (joka tunnetaan tasapainosta ja jokaisesta arvosta) ja liitämme ADC: n LEITURin, jolloin saadaan seuraava taulukko.

Vaihe 9: Toimintasuhteen saaminen mitatun massan ja saadun ADC -arvon välillä

Toimintasuhteen saaminen mitatun massan ja saadun ADC -arvon välillä
Toimintasuhteen saaminen mitatun massan ja saadun ADC -arvon välillä

Käytämme PolySolve -ohjelmistoa polynomin saamiseen, joka edustaa ADC: n massan ja arvon välistä suhdetta.

Vaihe 10: Lähdekoodi

Lähdekoodi - #Sisältää

Nyt kun saamme mittaukset ja tiedämme ADC: n ja käytetyn massan välisen suhteen, voimme siirtyä itse ohjelmiston kirjoittamiseen.

// Bibliotecas para useizaçã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"

Lähdekoodi - #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 ohjelmistolla

Lähde - globaalit muuttujat ja vakiot

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

Lähdekoodi - asennus ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // sarjan aloittaminen // Inicia tai näyttö display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Lähdekoodi - silmukka ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float massa = 0.0; // variável para armazenar o valor da massa // aloitetaan 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. Sarjajälki (millis () / 1000,0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((massa), 1); // massa em gramas // Escreve no buffer do display display.clear (); // Limpa tai puskurin näyttö // ajota tai alinhamento esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no puskuri ei näytä massa -näyttöä.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 tai puskuri näyttää display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta tai alinhamento para a esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // escreve no puskurinäyttö.setFont (ArialMT_Plain_16); // Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no puskuri} display.display (); // siirrä puskuri para o display delay (50); }

Lähdekoodi - Function calculaMassa ()

// 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; }

Vaihe 11: Käynnistys ja mittaus

Käynnistys ja mittaus
Käynnistys ja mittaus

Vaihe 12: Tiedostot

Lataa tiedostot

INO

PDF

Suositeltava: