Სარჩევი:

ESP32 LoRa კონტროლირებადი თვითმფრინავის ძრავა: 10 ნაბიჯი
ESP32 LoRa კონტროლირებადი თვითმფრინავის ძრავა: 10 ნაბიჯი

ვიდეო: ESP32 LoRa კონტროლირებადი თვითმფრინავის ძრავა: 10 ნაბიჯი

ვიდეო: ESP32 LoRa კონტროლირებადი თვითმფრინავის ძრავა: 10 ნაბიჯი
ვიდეო: ESP32 with LoRa using Arduino IDE – Getting Started 2024, ნოემბერი
Anonim
Image
Image
დემონსტრაცია
დემონსტრაცია

დღეს ჩვენ განვიხილავთ თვითმფრინავების ძრავებს, რომლებსაც ხშირად უწოდებენ "ფუნჯის" ძრავებს. ისინი ფართოდ გამოიყენება აერომოდელირებაში, ძირითადად თვითმფრინავებში, მათი სიმძლავრისა და მაღალი ბრუნვის გამო. ჩვენ გავიგებთ ESC და ESP32- ის გამოყენებით ფუნჯოვანი ძრავის კონტროლის შესახებ, ESC– ზე ანალოგიური გააქტიურების შესახებ შიდა LED_PWM კონტროლერის გამოყენებით და პოტენომეტრის გამოყენებით ძრავის სიჩქარის შესაცვლელად.

ნაბიჯი 1: დემონსტრაცია

ნაბიჯი 2: გამოყენებული რესურსები

გამოყენებული რესურსები
გამოყენებული რესურსები
  • მხტუნავები კავშირისთვის
  • Wifi LoRa 32
  • ESC-30A
  • ფუნჯი A2212 / 13t ძრავა
  • USB კაბელი
  • პოტენომეტრი კონტროლისთვის
  • პროტობორდი
  • Ენერგიის წყარო

ნაბიჯი 3: Wifi LoRa 32- Pinout

Wifi LoRa 32- Pinout
Wifi LoRa 32- Pinout

ნაბიჯი 4: ESC (ელექტრონული სიჩქარის კონტროლი)

ESC (ელექტრონული სიჩქარის კონტროლი)
ESC (ელექტრონული სიჩქარის კონტროლი)
ESC (ელექტრონული სიჩქარის კონტროლი)
ESC (ელექტრონული სიჩქარის კონტროლი)
  • სიჩქარის ელექტრონული კონტროლერი
  • ელექტრონული წრე ელექტროძრავის სიჩქარის გასაკონტროლებლად.
  • კონტროლდება სტანდარტული 50Hz PWM servo კონტროლიდან.
  • ის ცვლის საველე ეფექტის ტრანზისტორების (FET) ქსელის გადართვის სიჩქარეს. ტრანზისტორების გადართვის სიხშირის რეგულირებით, ძრავის სიჩქარე იცვლება. ძრავის სიჩქარე იცვლება ძრავის სხვადასხვა გრაგნილებზე მიწოდებული დენის იმპულსების დროის მორგებით.
  • სპეციფიკაციები:

გამომავალი დენი: 30A უწყვეტი, 40A 10 წამის განმავლობაში

ნაბიჯი 5: ESC ელექტრონული სიჩქარის კონტროლი (ESC)

ESC ელექტრონული სიჩქარის კონტროლი (ESC)
ESC ელექტრონული სიჩქარის კონტროლი (ESC)

ნაბიჯი 6: PWM სერვო ძრავის კონტროლი

PWM სერვო ძრავის კონტროლი
PWM სერვო ძრავის კონტროლი

ჩვენ შევქმნით PWM სერვოს, რომელიც იმოქმედებს ESC მონაცემების შეყვანაზე, LED_PWM არხის 0 მიმართულებით GPIO13- ის მიმართულებით და გამოიყენებს პოტენომეტრს მოდულაციის გასაკონტროლებლად.

გადასაღებად ჩვენ გამოვიყენებთ 10 კ -ის პოტენომეტრს ძაბვის გამყოფად. გადაღება მოხდება არხზე ADC2_5, მისაწვდომი GPIO12– ით.

ნაბიჯი 7: ანალოგური გადაღება

ანალოგური გადაღება
ანალოგური გადაღება
ანალოგური გადაღება
ანალოგური გადაღება

ციფრული კონვერტაციის ანალოგი

ჩვენ AD– ს მნიშვნელობებს გადავაქცევთ PWM– ში.

სერვოს PWM არის 50Hz, ამიტომ პულსის პერიოდია 1/50 = 0.02 წამი ან 20 მილიწამი.

ჩვენ უნდა ვიმოქმედოთ მინიმუმ 1 მილიწამიდან 2 მილიწამში.

როდესაც PWM 4095 -ზეა, პულსის სიგანე 20 მილიწამია, რაც იმას ნიშნავს, რომ მაქსიმუმს 4095/10 -ზე უნდა მივაღწიოთ 2 მილიწამამდე, ასე რომ PWM- მა უნდა მიიღოს 410 *.

და სულ მცირე 1 მილიწამის შემდეგ, შესაბამისად 409/2 (ან 4095/20), PWM- მ უნდა მიიღოს 205 *.

* მნიშვნელობები უნდა იყოს მთელი რიცხვი

ნაბიჯი 8: წრე - კავშირები

წრე - კავშირები
წრე - კავშირები

ნაბიჯი 9: წყაროს კოდი

სათაური

#მოიცავს // საჭიროა Arduino 1.6.5 და უკანა ნაწილი #მოიცავს "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 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 (); // ესკვერდას ჩვენებისათვის. setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); }

მარყუჟი

void loop () {leitura = analogRead (Leitura_A); ciclo_A = რუკა (ლეიტურა, 0, 4095, 205, 410); ledcWrite (canal_A, ciclo_A); პოტენცია = რუკა (ლეიტურა, 0, 4095, 0, 100); display.clear (); // limpa o buffer do display.drawString (0, 0, სიმებიანი ("AD:")); display.drawString (32, 0, სიმებიანი (ლეიტურა)); display.drawString (0, 18, სიმებიანი ("PWM:")); display.drawString (48, 18, სიმებიანი (ciclo_A)); display.drawString (0, 36, სიმებიანი ("პოტენცია:")); display.drawString (72, 36, სიმებიანი (პოტენცია)); display.drawString (98, 36, სიმებიანი ("%")); ჩვენება. ჩვენება (); // mostra ჩვენების გარეშე}

ნაბიჯი 10: ფაილები

ჩამოტვირთეთ ფაილები

ინო

PDF

გირჩევთ: