Table des matières:
- Étape 1: Démonstration
- Étape 2: Ressources utilisées
- Étape 3: Wifi LoRa 32- Brochage
- Étape 4: ESC (contrôle électronique de la vitesse)
- Étape 5: ESC Contrôle de vitesse électronique (ESC)
- Étape 6: Contrôle du servomoteur PWM
- Étape 7: Capture analogique
- Étape 8: Circuit - Connexions
- Étape 9: Code source
- Étape 10: Fichiers
Vidéo: Moteur de drone contrôlé ESP32 LoRa : 10 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Aujourd'hui, nous discutons des moteurs de drones, souvent appelés moteurs « brushless ». Ils sont largement utilisés en aéromodélisme, principalement dans les drones, en raison de leur puissance et de leur rotation élevée. Nous apprendrons à contrôler un moteur sans balais à l'aide de l'ESC et de l'ESP32, à effectuer un actionnement analogique sur l'ESC à l'aide du contrôleur interne LED_PWM et à utiliser un potentiomètre pour modifier la vitesse du moteur.
Étape 1: Démonstration
Étape 2: Ressources utilisées
- Cavaliers de connexion
- Wifi LoRa 32
- ESC-30A
- Moteur Brushless A2212 / 13t
- cable USB
- Potentiomètre de contrôle
- Protoboard
- Source de courant
Étape 3: Wifi LoRa 32- Brochage
Étape 4: ESC (contrôle électronique de la vitesse)
- Contrôleur de vitesse électronique
- Circuit électronique pour contrôler la vitesse d'un moteur électrique.
- Contrôlé à partir d'une servocommande PWM 50 Hz standard.
- Il fait varier la vitesse de commutation d'un réseau de transistors à effet de champ (FET). En ajustant la fréquence de commutation des transistors, la vitesse du moteur est modifiée. La vitesse du moteur est modifiée en ajustant la synchronisation des impulsions de courant fournies aux divers enroulements du moteur.
- Caractéristiques:
Courant de sortie: 30A en continu, 40A pendant 10 secondes
Étape 5: ESC Contrôle de vitesse électronique (ESC)
Étape 6: Contrôle du servomoteur PWM
Nous allons créer un servo PWM pour agir sur l'entrée de données ESC en dirigeant le canal 0 du LED_PWM pour le GPIO13, et utiliser un potentiomètre pour contrôler la modulation.
Pour la capture, nous utiliserons un potentiomètre de 10k comme diviseur de tension. La capture se fera sur le canal ADC2_5, accessible par GPIO12.
Étape 7: Capture analogique
Conversion analogique-numérique
Nous allons convertir les valeurs de AD en PWM.
Le PWM du servo est de 50 Hz, donc la période d'impulsion est de 1/50 = 0,02 seconde ou 20 millisecondes.
Nous devons agir en au moins 1 milliseconde à 2 millisecondes.
Lorsque le PWM est à 4095, la largeur d'impulsion est de 20 millisecondes, ce qui signifie que nous devrions atteindre le maximum à 4095/10 pour atteindre 2 millisecondes, donc PWM devrait recevoir 410*.
Et après au moins 1 milliseconde, donc 409/2 (ou 4095/20), le PWM devrait recevoir 205*.
* Les valeurs doivent être des nombres entiers
Étape 8: Circuit - Connexions
Étape 9: Code source
Entête
#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 #définir SDA 4 #définir SCL 15 #définir RST 16 Affichage SSD1306 (0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos do objeto "display"
Variables
const int freq = 50;const int canal_A = 0; const int resolucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; puissance int = 0; int leitura = 0; int ciclo_A = 0;
Installer
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 une telle verticalement display.clear(); //juste ou ajuste pour un affichage display.setTextAlignment(TEXT_ALIGN_LEFT); //juste une police pour Arial 16 display.setFont(ArialMT_Plain_16); }
Boucle
boucle vide () { leitura = analogRead (Leitura_A); ciclo_A = map(leitura, 0, 4095, 205, 410); ledcWrite(canal_A, ciclo_A); puissance = carte(leitura, 0, 4095, 0, 100); display.clear();//limpa o buffer faire 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(puissance)); display.drawString(98, 36, String("%")); display.display(); //mostra pas d'affichage }
Étape 10: Fichiers
Télécharger les fichiers
INO
Conseillé:
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : Dans ce rapide Instructable, nous allons faire un simple contrôleur de moteur pas à pas à l'aide d'un moteur pas à pas. Ce projet ne nécessite aucun circuit complexe ni microcontrôleur. Alors sans plus tarder, commençons
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : Dans l'un de mes précédents Instructables, je vous ai montré comment contrôler un moteur pas à pas à l'aide d'un moteur pas à pas sans microcontrôleur. C'était un projet rapide et amusant, mais il est venu avec deux problèmes qui seront résolus dans ce Instructable. Alors, esprit
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Comment faire fonctionner un moteur à courant continu sans balai Drone Quadcopter à l'aide du contrôleur de vitesse de moteur sans balai HW30A et d'un testeur de servomoteur: 3 étapes
Comment faire fonctionner un moteur à courant continu sans balais pour drone quadrirotor à l'aide du contrôleur de vitesse de moteur sans balai HW30A et d'un testeur de servomoteur : L'appareil peut également être utilisé comme générateur de signal pour régulateur de vitesse électrique (ESC), alors vous ne pouvez pas
Comment contrôler le moteur à courant continu sans balai Drone Quadcopter (type à 3 fils) en utilisant le contrôleur de vitesse du moteur HW30A et Arduino UNO: 5 étapes
Comment contrôler le moteur CC sans balai du drone quadrirotor (type 3 fils) à l'aide du contrôleur de vitesse du moteur HW30A et de l'Arduino UNO : Description : Le contrôleur de vitesse du moteur HW30A peut être utilisé avec 4 à 10 batteries NiMH/NiCd ou 2-3 cellules LiPo. Le BEC est fonctionnel avec jusqu'à 3 cellules LiPo. Il peut être utilisé pour contrôler la vitesse du moteur Brushless DC (3 fils) avec un maximum jusqu'à 12Vdc.Specific