ESP32 LoRa Kontrollü Drone Motoru: 10 Adım
ESP32 LoRa Kontrollü Drone Motoru: 10 Adım
Anonim
Image
Image
Gösteri
Gösteri

Bugün, sıklıkla "fırçasız" motorlar olarak adlandırılan drone motorlarını tartışıyoruz. Güçleri ve yüksek rotasyonları nedeniyle aeromodelling'de, özellikle drone'larda yaygın olarak kullanılırlar. ESC ve ESP32 kullanarak fırçasız bir motoru kontrol etmeyi, dahili LED_PWM kontrol cihazını kullanarak ESC üzerinde bir analog çalıştırma gerçekleştirmeyi ve motor hızını değiştirmek için bir potansiyometre kullanmayı öğreneceğiz.

1. Adım: Gösteri

2. Adım: Kullanılan Kaynaklar

Kullanılan Kaynaklar
Kullanılan Kaynaklar
  • Bağlantı için jumperlar
  • Wifi LoRa 32
  • ESC-30A
  • Fırçasız A2212 / 13t Motor
  • USB kablosu
  • Kontrol için potansiyometre
  • protokol
  • Güç kaynağı

3. Adım: Wifi LoRa 32- Pin Çıkışı

Wifi LoRa 32- Pin Çıkışı
Wifi LoRa 32- Pin Çıkışı

Adım 4: ESC (Elektronik Hız Kontrolü)

ESC (Elektronik Hız Kontrolü)
ESC (Elektronik Hız Kontrolü)
ESC (Elektronik Hız Kontrolü)
ESC (Elektronik Hız Kontrolü)
  • Elektronik Hız Kontrol Cihazı
  • Bir elektrik motorunun hızını kontrol etmek için elektronik devre.
  • Standart bir 50Hz PWM servo kontrolünden kontrol edilir.
  • Alan etkili transistörler (FET'ler) ağının anahtarlama hızını değiştirir. Transistörlerin anahtarlama frekansı ayarlanarak motor hızı değiştirilir. Motor hızı, motorun çeşitli sargılarına sağlanan akım darbelerinin zamanlamasını ayarlayarak değiştirilir.
  • Özellikler:

Çıkış akımı: 30A sürekli, 40A 10 saniye

Adım 5: ESC Elektronik Hız Kontrolü (ESC)

ESC Elektronik Hız Kontrolü (ESC)
ESC Elektronik Hız Kontrolü (ESC)

Adım 6: PWM Servo Motor Kontrolü

PWM Servo Motor Kontrolü
PWM Servo Motor Kontrolü

GPIO13 için LED_PWM'nin 0 kanalını yönlendirerek ESC veri girişine etki edecek bir PWM servo oluşturacağız ve modülasyonu kontrol etmek için bir potansiyometre kullanacağız.

Yakalama için voltaj bölücü olarak 10k'lık bir potansiyometre kullanacağız. Yakalama, GPIO12 tarafından erişilebilen ADC2_5 kanalında yapılacaktır.

Adım 7: Analog Yakalama

Analog Yakalama
Analog Yakalama
Analog Yakalama
Analog Yakalama

Analogdan dijitale dönüştürme

AD değerlerini PWM'ye çevireceğiz.

Servonun PWM'si 50Hz'dir, yani darbe periyodu 1/50 = 0.02 saniye veya 20 milisaniyedir.

En az 1 milisaniye ile 2 milisaniye arasında hareket etmemiz gerekiyor.

PWM 4095'te olduğunda, darbe genişliği 20 milisaniyedir, yani 2 milisaniyeye ulaşmak için 4095/10'da maksimuma ulaşmalıyız, yani PWM 410 * almalıdır.

Ve en az 1 milisaniyeden sonra, bu nedenle 409/2 (veya 4095/20), PWM 205 * almalıdır.

* Değerler tamsayı olmalıdır

Adım 8: Devre - Bağlantılar

Devre - Bağlantılar
Devre - Bağlantılar

Adım 9: Kaynak Kodu

başlık

#include // Arduino 1.6.5 ve posterior için gerekli olan #include "SSD1306.h" // veya daha fazla bilgi #include "SSD1306Wire.h" //OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 SSD1306 ekran(0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos "görüntüleme" nesnesi yapıyor

Değişkenler

const int sıklık = 50;sabit int kanal_A = 0; const int çözünürlük = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potensi = 0; int zaman = 0; int ciclo_A = 0;

Kurmak

void setup(){ 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 dikeymente display.clear(); //ajusta ya da esquerda display.setTextAlignment(TEXT_ALIGN_LEFT); // Arial 16 display.setFont(ArialMT_Plain_16); }

Döngü

void loop() { leitura = analogRead(Leitura_A); ciclo_A = harita(leitura, 0, 4095, 205, 410); ledcWrite(canal_A, ciclo_A); potencia = harita(leitura, 0, 4095, 0, 100); display.clear();//limpa o tampon 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("Potencia:")); display.drawString(72, 36, String(potencia)); display.drawString(98, 36, String("%")); display.display(); //mostra görüntü yok }

Adım 10: Dosyalar

Dosyaları indirin

BEN HAYIR

PDF