Motori me dron i kontrolluar ESP32 LoRa: 10 hapa
Motori me dron i kontrolluar ESP32 LoRa: 10 hapa
Anonim
Image
Image
Demonstrim
Demonstrim

Sot ne po diskutojmë motorët me dronë, të quajtur shpesh motorë "pa furça". Ato përdoren gjerësisht në modelimin e aeroplanëve, kryesisht në dronët, për shkak të fuqisë së tyre dhe rrotullimit të lartë. Ne do të mësojmë për kontrollin e një motori pa furça duke përdorur ESC dhe ESP32, kryerjen e një aktivizimi analog në ESC duke përdorur kontrolluesin e brendshëm LED_PWM dhe përdorimin e një potenciometri për të ndryshuar shpejtësinë e motorit.

Hapi 1: Demonstrim

Hapi 2: Burimet e përdorura

Burimet e Përdorura
Burimet e Përdorura
  • Kërcimtarët për lidhje
  • Wi -Fi LoRa 32
  • ESC-30A
  • Motori pa furça A2212 / 13t
  • Kabllo USB
  • Potenciometër për kontroll
  • Protoboard
  • Furnizimi me energji elektrike

Hapi 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

Hapi 4: ESC (Kontrolli Elektronik i Shpejtësisë)

ESC (Kontrolli Elektronik i Shpejtësisë)
ESC (Kontrolli Elektronik i Shpejtësisë)
ESC (Kontrolli Elektronik i Shpejtësisë)
ESC (Kontrolli Elektronik i Shpejtësisë)
  • Kontrollues elektronik i shpejtësisë
  • Qark elektronik për të kontrolluar shpejtësinë e një motori elektrik.
  • Kontrolluar nga një servo kontroll standard PWM 50Hz.
  • Ai ndryshon shkallën e ndërrimit të një rrjeti të transistorëve të efektit në terren (FET). Duke rregulluar frekuencën e ndërrimit të transistorëve, shpejtësia e motorit ndryshon. Shpejtësia e motorit ndryshon duke rregulluar kohën e impulseve të furnizimit të rrymës në mbështjelljet e ndryshme të motorit.
  • Specifikimet:

Rryma e daljes: 30A e vazhdueshme, 40A për 10 sekonda

Hapi 5: Kontrolli elektronik i shpejtësisë ESC (ESC)

ESC Electronic Speed Control (ESC)
ESC Electronic Speed Control (ESC)

Hapi 6: PWM Servo Motor Control

PWM Servo Motor Control
PWM Servo Motor Control

Ne do të krijojmë një servo PWM për të vepruar në futjen e të dhënave ESC duke drejtuar kanalin 0 të LED_PWM për GPIO13 dhe do të përdorim një potenciometër për të kontrolluar modulimin.

Për kapjen, ne do të përdorim një potenciometër prej 10k si ndarës të tensionit. Kapja do të bëhet në kanalin ADC2_5, e arritshme nga GPIO12.

Hapi 7: Regjistrimi analog

Regjistrimi analog
Regjistrimi analog
Regjistrimi analog
Regjistrimi analog

Konvertimi analog në atë dixhital

Ne do t'i konvertojmë vlerat e AD në PWM.

PWM e servo është 50Hz, kështu që periudha e pulsit është 1/50 = 0.02 sekonda ose 20 milisekonda.

Ne duhet të veprojmë në të paktën 1 milisekond deri në 2 milisekonda.

Kur PWM është në 4095, gjerësia e pulsit është 20 milisekonda, që do të thotë se duhet të arrijmë maksimumin në 4095/10 për të arritur 2 milisekonda, kështu që PWM duhet të marrë 410 *.

Dhe pas të paktën 1 milisekonda, pra 409/2 (ose 4095/20), PWM duhet të marrë 205 *.

* Vlerat duhet të jenë numra të plotë

Hapi 8: Qarku - Lidhjet

Qarku - Lidhjet
Qarku - Lidhjet

Hapi 9: Kodi Burimor

Kokë

#include // Necessário apenas para o Arduino 1.6.5 dhe posterior #përfshijnë "SSD1306.h" // ose mesmo que #include "SSD1306Wire.h" // OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - GPIO16 #përcakto SDA 4 #përcakto SCL 15 #përcakto ekranin RST 16 SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

Variablat

const int freq = 50; const int kanali_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;

Konfigurimi

void setup () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (kanali_A, frekuenca, zgjidhja); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (canal_A, ciclo_A); display.init (); display.flipScreenVertical (); // Vira a tela verticalmente display.clear (); // austa o alinhamento për një ekran esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // austa a fonte para Arial 16 display.setFont (ArialMT_Plain_16); }

Lak

lak void () {leitura = analogRead (Leitura_A); ciclo_A = hartë (leitura, 0, 4095, 205, 410); ledcWrite (kanali_A, ciclo_A); potencia = hartë (leitura, 0, 4095, 0, 100); display.clear (); // limpa ose tampon bëni display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, String (leitura)); display.drawString (0, 18, String ("PWM:")); display.drawString (48, 18, String (ciclo_A)); display.drawString (0, 36, String ("Potência:")); display.drawString (72, 36, String (potencia)); display.drawString (98, 36, String ("%")); display.display (); // mostra pa ekran}

Hapi 10: Skedarët

Shkarkoni skedarët

INO

PDF