Բովանդակություն:

ESP32- ով թվային սանդղակ. 12 քայլ
ESP32- ով թվային սանդղակ. 12 քայլ

Video: ESP32- ով թվային սանդղակ. 12 քայլ

Video: ESP32- ով թվային սանդղակ. 12 քայլ
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Նոյեմբեր
Anonim
Image
Image
Օգտագործված ռեսուրսներ
Օգտագործված ռեսուրսներ

Երբևէ մտածե՞լ եք թվային կշեռքի տեղադրման մասին `օգտագործելով ESP32 և տվիչ (հայտնի է որպես բեռնախցիկ): Այսօր ես ձեզ ցույց կտամ, թե ինչպես դա անել մի գործընթացի միջոցով, որը թույլ է տալիս իրականացնել նաև այլ լաբորատոր փորձարկումներ, ինչպես օրինակ ՝ ուժի որոշումը, որը շարժիչը կատարում է որևէ կետի վրա, ի թիվս այլ օրինակների:

Այնուհետև ես կցուցադրեմ բեռնախցիկների օգտագործման հետ կապված որոշ հասկացություններ, կբռնեմ բջիջների տվյալները `օրինակելի մասշտաբ ստեղծելու համար և մատնանշեմ բեռնախցիկների այլ հնարավոր կիրառությունները:

Քայլ 1: Օգտագործված ռեսուրսներ

• Heltec Lora 32 WiFi ESP

• Բեռի բջիջ (0 -ից 50 նյուտոն, սանդղակի օգտագործմամբ)

• 1 պոտենցիոմետր 100 կիլոմետր (ավելի լավ, եթե նուրբ ճշգրտման համար օգտագործում եք բազմավոլտ տրիպոտ)

• 1 Amp Op LM358

• 2 1M5 ռեզիստոր

• 2 10k դիմադրիչ

• 1 4k7 դիմադրություն

• լարեր

• Նախատախտակ

• USB մալուխ ESP- ի համար

• Կշեռք, աստիճանավորված ծավալով տարա կամ չափագրման ցանկացած այլ մեթոդ:

Քայլ 2: rationուցադրություն

Ցույց
Ցույց

Քայլ 3: Բեռնեք բջիջները

Բեռների բջիջներ
Բեռների բջիջներ

• Նրանք ուժ փոխարկիչներ են:

• Նրանք կարող են օգտագործել տարբեր մեթոդներ ՝ կիրառվող ուժը համաչափ մեծության վերածելու համար, որը կարող է օգտագործվել որպես միջոց: Ամենատարածվածներից են թիթեղաչափեր օգտագործող սարքերը, պիեզոէլեկտրական էֆեկտը, հիդրավլիկան, թրթռացող լարերը և այլն…

• Նրանք կարող են դասակարգվել նաև ըստ չափման ձևի (լարվածություն կամ սեղմում)

Քայլ 4. Բեռների բջիջների և լարվածության չափիչներ

Բեռների բջիջներ և լարվածության չափիչներ
Բեռների բջիջներ և լարվածության չափիչներ
Բեռների բջիջներ և լարվածության չափիչներ
Բեռների բջիջներ և լարվածության չափիչներ

• Թիթեղների էքստենսոմետրերը տպագիր մետաղալարով (սովորաբար պլաստմասե) ֆիլմեր են, որոնք ունեն դիմադրություն, որը կարող է տարբերվել դրանց չափի փոփոխության հետ:

• Դրա կառուցումը հիմնականում նպատակ ունի մեխանիկական դեֆորմացիան վերածել էլեկտրական մեծության տատանումների (դիմադրության): Սա նախընտրելի է տեղի ունենալ մեկ ուղղությամբ, որպեսզի բաղադրիչների գնահատումը կատարվի: Դրա համար սովորական է մի քանի ընդարձակաչափերի համադրությունը

• Երբ պատշաճ կերպով կցվում է մարմնին, նրա դեֆորմացիան հավասար է մարմնի դեֆորմացիային: Այսպիսով, նրա դիմադրությունը տատանվում է մարմնի դեֆորմացիայի հետ, որն իր հերթին կապված է դեֆորմացվող ուժի հետ:

• Նրանք հայտնի են նաև որպես լարվածության չափիչներ:

• Երբ ձգվող ուժով ձգվում են, պարանները ձգվում ու նեղանում են ՝ մեծացնելով դիմադրությունը:

• Սեղմող ուժով սեղմվելիս լարերը կարճանում եւ լայնանում են `նվազեցնելով դիմադրությունը:

Քայլ 5: heորենի կամուրջ

Heորենաքարի կամուրջ
Heորենաքարի կամուրջ

• Ավելի ճշգրիտ չափման և բեռնախցիկում դիմադրության տատանումների առավել արդյունավետ հայտնաբերման համար լարվածության չափիչը հավաքվում է heորենի քար կամրջի մեջ:

• Այս կազմաձևում մենք կարող ենք որոշել դիմադրության տատանումները կամրջի անհավասարակշռության միջոցով:

• Եթե R1 = Rx և R2 = R3, լարման բաժանարարները հավասար կլինեն, իսկ Vc և Vb լարումները նույնպես հավասար կլինեն ՝ կամուրջը հավասարակշռության մեջ: Այսինքն, Vbc = 0V;

• Եթե Rx- ը այլ չէ R1- ից, կամուրջը կլինի անհավասարակշիռ, իսկ Vbc լարումը կլինի ոչ զրո:

• Հնարավոր է ցույց տալ, թե ինչպես պետք է տեղի ունենա այս տատանումը, բայց այստեղ մենք կկատարենք ուղիղ ճշգրտում ՝ ADC- ում կարդացված արժեքը կապելով բեռնախցիկին կիրառվող զանգվածի հետ:

Քայլ 6: Ամրացում

Ուժեղացում
Ուժեղացում

• Նույնիսկ օգտագործելով Wheatstone կամուրջը `ընթերցումն ավելի արդյունավետ դարձնելու համար, բեռնախցիկի մետաղի միկրո դեֆորմացիաները փոքր լարման տատանումներ են առաջացնում Vbc- ի միջև:

• Այս իրավիճակը լուծելու համար մենք կօգտագործենք ուժեղացման երկու փուլ: Մեկը `տարբերությունը որոշելու համար, իսկ մյուսը` ESP- ի ADC- ին ստացված արժեքը համապատասխանեցնելու համար:

Քայլ 7: Ամրացում (սխեմա)

Ամրացում (սխեմա)
Ամրացում (սխեմա)

• Հանումի քայլի շահույթը տրվում է R6 / R5- ով և նույնն է, ինչ R7 / R8- ը:

• Չշրջվող վերջնական քայլի շահույթը տրվում է Pot / R10- ի կողմից

Քայլ 8. Տվյալների հավաքագրում ՝ ստուգաչափման համար

Տվյալների հավաքագրում ստուգաչափման համար
Տվյալների հավաքագրում ստուգաչափման համար
Տվյալների հավաքագրում ստուգաչափման համար
Տվյալների հավաքագրում ստուգաչափման համար

• Հավաքվելուց հետո մենք վերջնական շահույթը սահմանում ենք այնպես, որ ամենամեծ չափված զանգվածի արժեքը մոտ լինի ADC- ի առավելագույն արժեքին: Այս դեպքում, բջիջում կիրառվող 2 կգ -ի համար ելքային լարումը 3V3- ի սահմաններում էր:

• Հաջորդը, մենք փոփոխում ենք կիրառվող զանգվածը (որը հայտնի է հաշվեկշռի միջոցով և յուրաքանչյուր արժեքի համար), և մենք կապում ենք ADC- ի LEITUR ՝ ստանալով հաջորդ աղյուսակը:

Քայլ 9. Չափված զանգվածի և ձեռք բերված ADC- ի արժեքի միջև գործառական կապի ձեռքբերում

Չափված զանգվածի և ձեռք բերված ADC- ի արժեքի միջև գործառական կապի ձեռքբերում
Չափված զանգվածի և ձեռք բերված ADC- ի արժեքի միջև գործառական կապի ձեռքբերում

Մենք օգտագործում ենք PolySolve ծրագիրը ՝ բազմանդամ ստանալու համար, որը ներկայացնում է զանգվածի և ADC- ի արժեքի հարաբերակցությունը:

Քայլ 10: Աղբյուրի կոդ

Աղբյուրի կոդը - #Ներառում է

Այժմ, երբ մենք ունենք չափումներ ստանալու և իմանալու ADC- ի և կիրառվող զանգվածի միջև փոխհարաբերությունները, կարող ենք անցնել ծրագրաշարի իրական գրմանը:

// Bibliotecas para useização do display oLED #include // Անհրաժեշտ է apenas para o Arduino 1.6.5 և առաջ #ներառել «SSD1306.h» // o mesmo que #include "SSD1306Wire.h"

Աղբյուրի կոդը - #Սահմանում է

// 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 ajust ծրագրային ապահովման համար

Աղբյուր - Գլոբալ փոփոխականներ և հաստատուններ

SSD1306 էկրան (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

Աղբյուրի կոդ - Կարգավորում ()

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

Աղբյուրի կոդ - հանգույց ()

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 media do ADC e o valor em gramas // para a Serial. Serial.print (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 (); // Լիմպա կամ բուֆեր ՝ ցուցադրելու համար // արագորեն ցուցադրեք esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ուղիղ միացում Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer do display a massa 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 o buffer do display.setTextAlignment (TEXT_ALIGN_LEFT); // Ավելին ՝ 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 (); // փոխանցել բուֆերը կամ ցուցադրման հետաձգումը (50); }

Աղբյուրի կոդ - Ֆունկցիայի հաշվարկ Մասսա ()

// 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 + -2017 medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * medida * մեդիդա; }

Քայլ 11: Սկսում և չափում

Սկսում և չափում
Սկսում և չափում

Քայլ 12: Ֆայլեր

Ներբեռնեք ֆայլերը

ԻՆՈ

PDF

Խորհուրդ ենք տալիս: