
Съдържание:
- Стъпка 1: Демонстрация
- Стъпка 2: Използвани ресурси
- Стъпка 3: Wifi LoRa 32- Pinout
- Стъпка 4: ESC (електронен контрол на скоростта)
- Стъпка 5: ESC Електронен контрол на скоростта (ESC)
- Стъпка 6: Управление на PWM серво мотора
- Стъпка 7: Аналогово улавяне
- Стъпка 8: Верига - Връзки
- Стъпка 9: Изходен код
- Стъпка 10: Файлове
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36



Днес обсъждаме безпилотни двигатели, често наричани „безчеткови“двигатели. Те се използват широко в авиационното моделиране, главно в дронове, поради тяхната мощност и висока ротация. Ще научим как да управляваме безчетков двигател с помощта на ESC и ESP32, да извършваме аналогично задействане на ESC с помощта на вътрешния контролер LED_PWM и да използваме потенциометър за промяна на скоростта на двигателя.
Стъпка 1: Демонстрация
Стъпка 2: Използвани ресурси

- Джъмпери за свързване
- Wi -Fi LoRa 32
- ESC-30A
- Безчетков двигател A2212 / 13t
- USB кабел
- Потенциометър за управление
- Protoboard
- Захранване
Стъпка 3: Wifi LoRa 32- Pinout

Стъпка 4: ESC (електронен контрол на скоростта)


- Електронен регулатор на скоростта
- Електронна схема за управление на скоростта на електродвигател.
- Управлява се от стандартно 50Hz PWM серво управление.
- Той променя скоростта на превключване на мрежа от полеви транзистори (FET). Чрез регулиране на честотата на превключване на транзисторите се променя скоростта на двигателя. Скоростта на двигателя се променя чрез регулиране на времето на подаваните токови импулси към различните намотки на двигателя.
- Спецификации:
Изходен ток: 30А непрекъснато, 40А за 10 секунди
Стъпка 5: ESC Електронен контрол на скоростта (ESC)

Стъпка 6: Управление на PWM серво мотора

Ще създадем PWM серво, което да действа при въвеждане на ESC данни, като насочим канал 0 на LED_PWM за GPIO13 и ще използваме потенциометър за управление на модулацията.
За улавяне ще използваме потенциометър от 10k като делител на напрежение. Заснемането ще се извърши по канал ADC2_5, достъпен от GPIO12.
Стъпка 7: Аналогово улавяне


Аналогово -цифрово преобразуване
Ще преобразуваме стойностите на AD в PWM.
ШИМ на серво е 50Hz, така че периодът на импулса е 1/50 = 0,02 секунди или 20 милисекунди.
Трябва да действаме за поне 1 милисекунда до 2 милисекунди.
Когато ШИМ е на 4095, ширината на импулса е 20 милисекунди, което означава, че трябва да достигнем максимума при 4095/10, за да достигнем 2 милисекунди, така че ШИМ трябва да получи 410 *.
И след поне 1 милисекунда, следователно 409/2 (или 4095/20), ШИМ трябва да получи 205 *.
* Стойностите трябва да са цели числа
Стъпка 8: Верига - Връзки

Стъпка 9: Изходен код
Заглавка
#include // Необходими апени за Arduino 1.6.5 e posterior #включва "SSD1306.h" // o 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 freq = 50; const int канал_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;
Настройвам
void setup () {pinMode (pin_Atuacao_A, OUTPUT); ledcSetup (channel_A, freq, resolucao); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (channel_A, ciclo_A); display.init (); display.flipScreenVertical (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento за esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // добавяне на фон за Arial 16 display.setFont (ArialMT_Plain_16); }
Цикъл
void loop () {leitura = analogRead (Leitura_A); ciclo_A = карта (leitura, 0, 4095, 205, 410); ledcWrite (channel_A, ciclo_A); potencia = карта (leitura, 0, 4095, 0, 100); display.clear (); // ограничение или буфер за показване display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, String (leitura)); display.drawString (0, 18, String ("ШИМ:")); 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: Файлове
Изтеглете файловете
АЗ НЕ
Препоръчано:
Стъпков двигател Контролиран стъпков двигател без микроконтролер!: 6 стъпки

Стъпков двигател, управляван от стъпков двигател без микроконтролер !: В тази бърза инструкция ще направим прост контролер за стъпков двигател, използващ стъпков двигател. Този проект не изисква сложни схеми или микроконтролер. Така че, без да се замисляме, нека започнем
Стъпков двигател Контролиран стъпков двигател без микроконтролер (V2): 9 стъпки (със снимки)

Стъпков двигател, управляван от стъпков двигател без микроконтролер (V2): В една от предишните ми инструкции, аз ви показах как да управлявате стъпков двигател, използвайки стъпков двигател без микроконтролер. Това беше бърз и забавен проект, но той дойде с два проблема, които ще бъдат решени в тази инструкция. И така, остроумие
Модел локомотив със стъпков двигател - Стъпков двигател като въртящ се енкодер: 11 стъпки (със снимки)

Модел локомотив със стъпков двигател | Стъпков двигател като въртящ се енкодер: В една от предишните инструкции научихме как да използваме стъпков двигател като въртящ се енкодер. В този проект сега ще използваме въртящия се енкодер със стъпков двигател, за да управляваме модел локомотив, използвайки микроконтролер Arduino. Така че, без fu
Стъпков двигател Контролиран стъпков двигател - Стъпков двигател като въртящ се енкодер: 11 стъпки (със снимки)

Стъпков двигател Контролиран стъпков двигател | Стъпков двигател като въртящ се енкодер: Имате ли няколко стъпкови двигателя, които лежат наоколо и искат да направят нещо? В тази инструкция нека използваме стъпков двигател като въртящ се енкодер, за да контролираме позицията на друг стъпков двигател, използвайки микроконтролер Arduino. Така че без да се замисляме, нека да
24v DC двигател към високоскоростен универсален двигател (30 волта): 3 стъпки

24v DC двигател към високоскоростен универсален двигател (30 волта): Здравейте! В този проект ще ви науча как да преобразувате нормален играчка 24V DC мотор в 30V универсален двигател. Лично аз вярвам, че видео демонстрацията описва най -добре един проект . Така че момчета, бих ви препоръчал първо да изгледате видеото. Проект V