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

ESP32 LoRa վերահսկվող անօդաչու շարժիչ `10 քայլ
ESP32 LoRa վերահսկվող անօդաչու շարժիչ `10 քայլ

Video: ESP32 LoRa վերահսկվող անօդաչու շարժիչ `10 քայլ

Video: ESP32 LoRa վերահսկվող անօդաչու շարժիչ `10 քայլ
Video: ESP32 with LoRa using Arduino IDE – Getting Started 2024, Նոյեմբեր
Anonim
Image
Image
Ցույց
Ցույց

Այսօր մենք քննարկում ենք անօդաչու թռչող սարքերի շարժիչները, որոնք հաճախ կոչվում են «առանց խոզանակների» շարժիչներ: Դրանք լայնորեն կիրառվում են աերոմոդելավորման մեջ, հիմնականում անօդաչու թռչող սարքերում, իրենց հզորության և բարձր ռոտացիայի շնորհիվ: Մենք կսովորենք ESC- ի և ESP32- ի միջոցով անխոզանակ շարժիչի վերահսկման, ESC- ի անալոգային գործարկման մասին `օգտագործելով ներքին LED_PWM կարգավորիչը և շարժիչի արագությունը փոխելու պոտենցիոմետր օգտագործելու մասին:

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

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

Օգտագործված ռեսուրսներ
Օգտագործված ռեսուրսներ
  • Թռիչքներ միացման համար
  • Wi -Fi LoRa 32
  • ESC-30A
  • Brushless A2212 / 13t շարժիչ
  • USB մալուխ
  • Պոտենցիոմետր վերահսկողության համար
  • Նախատախտակ
  • Սնուցման աղբյուր

Քայլ 3. Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

Քայլ 4: ESC (Էլեկտրոնային արագության վերահսկում)

ESC (Էլեկտրոնային արագության վերահսկում)
ESC (Էլեկտրոնային արագության վերահսկում)
ESC (Էլեկտրոնային արագության վերահսկում)
ESC (Էլեկտրոնային արագության վերահսկում)
  • Էլեկտրոնային արագության վերահսկիչ
  • Էլեկտրական շարժիչի արագությունը վերահսկելու էլեկտրոնային միացում:
  • Վերահսկվում է ստանդարտ 50 Հց PWM սերվոյի հսկիչից:
  • Այն փոփոխում է դաշտային էֆեկտների տրանզիստորների (FET) ցանցի միացման արագությունը: Տրանզիստորների անջատման հաճախականությունը կարգավորելով ՝ շարժիչի արագությունը փոխվում է: Շարժիչի արագությունը փոփոխվում է `մատակարարվող ընթացիկ իմպուլսների ժամանակը հարմարեցնելով շարժիչի տարբեր ոլորուններին:
  • Տեխնիկական պայմաններ.

Ելքային հոսանք ՝ 30A շարունակական, 40A ՝ 10 վայրկյան

Քայլ 5. ESC Էլեկտրոնային արագության վերահսկում (ESC)

ESC Էլեկտրոնային արագության վերահսկում (ESC)
ESC Էլեկտրոնային արագության վերահսկում (ESC)

Քայլ 6: PWM Servo Motor Control

PWM Servo Motor Control
PWM Servo Motor Control

Մենք կստեղծենք PWM սերվո ՝ ESC տվյալների մուտքագրման վրա գործելու համար ՝ LED_PWM- ի 0 ալիքը ուղղելով GPIO13- ի համար, և կօգտագործենք պոտենցիոմետր ՝ մոդուլյացիան վերահսկելու համար:

Գրավման համար մենք կօգտագործենք 10k պոտենցիոմետր ՝ որպես լարման բաժանարար: Գրավումը կիրականացվի ADC2_5 ալիքով, որը հասանելի է GPIO12- ով:

Քայլ 7: Անալոգային նկարահանում

Անալոգային գրավում
Անալոգային գրավում
Անալոգային գրավում
Անալոգային գրավում

Անալոգային թվային փոխակերպում

Մենք AD- ի արժեքները կփոխարկենք PWM- ի:

Servo- ի PWM- ն 50 Հց է, ուստի զարկերակային շրջանը `1/50 = 0.02 վայրկյան կամ 20 միլիվայրկյան:

Մենք պետք է գործենք առնվազն 1 միլիվայրկյանից մինչև 2 միլիվայրկյան:

Երբ PWM- ը 4095 է, զարկերակի լայնությունը 20 միլիվայրկյան է, այսինքն `մենք պետք է հասնենք առավելագույնի 4095/10 -ին` հասնելու 2 միլիվայրկյանի, այնպես որ PWM- ը պետք է ստանա 410 *:

Եվ առնվազն 1 միլիվայրկյանից հետո, հետևաբար 409/2 (կամ 4095/20) հետո, PWM- ը պետք է ստանա 205 *:

* Արժեքները պետք է լինեն ամբողջ թվեր

Քայլ 8. Շղթա - Միացումներ

Շղթա - Միացումներ
Շղթա - Միացումներ

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

Վերնագիր

#ներառել // Անհրաժեշտ է Apenas para o Arduino 1.6.5 և հետևում #ներառել "SSD1306.h" // կամ mesmo que #include "SSD1306Wire.h" // OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - GPIO16 #սահմանել SDA 4 #սահմանել SCL 15 #սահմանել RST 16 SSD1306 էկրան (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

Փոփոխականներ

const int հաճախականություն = 50; const int canal_A = 0; const int resolutionucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;

Կարգավորում

void setup () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (canal_A, freq, resolutionucao); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (canal_A, ciclo_A); display.init (); display.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // անհրաժեշտ է esquerda display.setTextAlignment (TEXT_ALIGN_LEFT) համար; // ուղիղ միացում Arial 16 display.setFont (ArialMT_Plain_16); }

Օղակ

void loop () {leitura = analogRead (Leitura_A); ciclo_A = քարտեզ (լեյտուրա, 0, 4095, 205, 410); ledcWrite (canal_A, ciclo_A); potencia = քարտեզ (leitura, 0, 4095, 0, 100); display.clear (); // limpa o buffer do display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, լարային (լեյտուրա)); display.drawString (0, 18, լարային ("PWM:")); display.drawString (48, 18, լարային (ciclo_A)); display.drawString (0, 36, լարային ("Potência:")); display.drawString (72, 36, Լար (հզորություն)); display.drawString (98, 36, լարային («%»)); display.display (); // mostra առանց ցուցադրման}

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

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

ԻՆՈ

PDF

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