מנוע מזל"ט מבוקר ESP32 LoRa: 10 שלבים
מנוע מזל"ט מבוקר ESP32 LoRa: 10 שלבים
Anonim
Image
Image
הפגנה
הפגנה

היום אנו דנים במנועי מזל"ט, המכונים לעתים קרובות מנועים ללא מברשת. הם נמצאים בשימוש נרחב בתחום הדגמים, בעיקר במל"טים, בשל כוחם וסיבובם הגבוה. נלמד על שליטה במנוע ללא מברשות באמצעות ESC ו- ESP32, ביצוע הפעלה אנלוגית ב- ESC באמצעות בקר LED_PWM הפנימי, ושימוש בפוטנציומטר לשינוי מהירות המנוע.

שלב 1: הפגנה

שלב 2: שימוש במשאבים

משאבים בשימוש
משאבים בשימוש
  • מגשרים לחיבור
  • Wifi LoRa 32
  • ESC-30A
  • מנוע A2212 / 13t ללא מברשות
  • כבל יו אס בי
  • פוטנציומטר לשליטה
  • פרוטובארד
  • ספק כוח

שלב 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

שלב 4: ESC (בקרת מהירות אלקטרונית)

בקרת מהירות אלקטרונית (ESC)
בקרת מהירות אלקטרונית (ESC)
בקרת מהירות אלקטרונית (ESC)
בקרת מהירות אלקטרונית (ESC)
  • בקר מהירות אלקטרוני
  • מעגל אלקטרוני לשליטה על מהירות המנוע החשמלי.
  • נשלט מבקרת סרוו PWM רגילה של 50 הרץ.
  • זה משנה את קצב המיתוג של רשת טרנזיסטורים של אפקט שדה (FET). על ידי התאמת תדר המיתוג של הטרנזיסטורים, מהירות המנוע משתנה. מהירות המנוע מגוונת על ידי התאמת התזמון של פולסי הזרם המסופקים לפיתולים השונים של המנוע.
  • מפרטים:

זרם פלט: 30A רציף, 40A למשך 10 שניות

שלב 5: בקרת מהירות אלקטרונית ESC (ESC)

בקרת מהירות אלקטרונית ESC (ESC)
בקרת מהירות אלקטרונית ESC (ESC)

שלב 6: בקרת מנועי סרוו PWM

בקרת מנועי סרוו PWM
בקרת מנועי סרוו PWM

ניצור סרוו PWM שיפעל על קלט נתוני ESC על ידי הפניית ערוץ 0 של LED_PWM עבור ה- GPIO13, ונשתמש בפוטנציומטר לשליטה באפנון.

לצורך הלכידה נשתמש בפוטנציומטר של 10k כמפריד מתח. הצילום יתבצע בערוץ ADC2_5, הנגיש על ידי GPIO12.

שלב 7: לכידת אנלוגי

לכידת אנלוגי
לכידת אנלוגי
לכידת אנלוגי
לכידת אנלוגי

המרה אנלוגית לדיגיטלית

אנו נמיר את ערכי AD ל- PWM.

PWM של הסרוו הוא 50Hz, כך שתקופת הדופק היא 1/50 = 0.02 שניות או 20 אלפיות השנייה.

עלינו לפעול לפחות בין 1 אלפית השנייה לשתי אלפיות השנייה.

כאשר ה- PWM הוא 4095, רוחב הדופק הוא 20 מילי שניות, כלומר עלינו להגיע למקסימום ב- 4095/10 כדי להגיע ל -2 מילי שניות, כך ש- PWM צריך לקבל 410 *.

ואחרי לפחות אלפית השנייה, ולכן 409/2 (או 4095/20), ה- PWM אמור לקבל 205 *.

* הערכים חייבים להיות מספרים שלמים

שלב 8: מעגל - חיבורים

מעגל - חיבורים
מעגל - חיבורים

שלב 9: קוד המקור

כּוֹתֶרֶת

#include // Necessário apenas para o Arduino 1.6.5 e posterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA -GPIO4 // OLED_SCL -GPIO15 // OLED_RST - תצוגת GPIO16 #define SDA 4 #define SCL 15 #define RST 16 SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"

משתנים

const int freq = 50; const int canal_A = 0; const int resolucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;

להכין

הגדרת חלל () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (canal_A, freq, resolucao); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (canal_A, ciclo_A); display.init (); display.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); }

לוּלָאָה

לולאת void () {leitura = analogRead (Leitura_A); ciclo_A = מפה (לייטורה, 0, 4095, 205, 410); ledcWrite (canal_A, ciclo_A); פוטנסיה = מפה (לייטורה, 0, 4095, 0, 100); display.clear (); // limpa o buffer לעשות תצוגה 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 ללא תצוגה}

שלב 10: קבצים

הורד את הקבצים

INO

PDF