Table des matières:
- Étape 1: Démonstration
- Étape 2: Contrôle du moteur PWM
- Étape 3: Ressources utilisées
- Étape 4: Kit de développement ESP 32 - Brochage
- Étape 5: Montage de la turbine
- Étape 6: Circuit - Connexions
- Étape 7: Mesure sur l'oscilloscope
- Étape 8: Code source
- Étape 9: Télécharger les fichiers
Vidéo: Turbine électrique avec ESP32 : 9 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Aujourd'hui, je vais parler d'une turbine électrique avec ESP32. L'assemblage a une pièce qui a été imprimée en 3D. Je présenterai une fonction PWM de l'ESP32 adaptée au contrôle des moteurs électriques. Ceci sera utilisé dans un moteur à courant continu. Je démontrerai également le fonctionnement de ce MCPWM (Motor Control PWM) dans une application pratique.
J'ai utilisé ESP32 LoRa dans ce projet, et je pense qu'il est important de noter ici que ce microcontrôleur a deux blocs à l'intérieur. Ces blocs sont capables de contrôler trois moteurs chacun. Ainsi, il est possible de contrôler jusqu'à six moteurs avec PWM, tous indépendamment. Cela signifie que le contrôle que j'utiliserai ici n'est pas le standard (qui est quelque chose de similaire à l'Arduino). Au lieu de cela, le contrôle est la puce elle-même, ce qui garantit à l'ESP32 beaucoup de flexibilité en ce qui concerne le contrôle du moteur.
Étape 1: Démonstration
Étape 2: Contrôle du moteur PWM
Schéma général:
• La fonction MCPWM de l'ESP32 peut être utilisée pour contrôler différents types de moteurs électriques. Il a deux unités.
• Chaque unité possède trois paires de sorties PWM.
• Chaque paire de sorties A/B peut être synchronisée avec l'un des trois temporisateurs de synchronisation 0, 1 ou 2.
• Une minuterie peut être utilisée pour synchroniser plus d'une paire de sorties PWM
Diagramme complet:
• Chaque unité est également capable de collecter des signaux d'entrée en tant que SIGNES DE SYNCHRONISATION;
• Détecter les SIGNES DE DÉFAUT pour les surintensités ou les surtensions du moteur;
• Obtenir des commentaires avec CAPTURE SIGNALS, tels que la position du moteur
Étape 3: Ressources utilisées
• Cavaliers de connexion
• Heltec Wifi LoRa 32
• Moteur à courant continu commun
• Pont H - L298N
• Cable USB
• Protoboard
• Source de courant
Étape 4: Kit de développement ESP 32 - Brochage
Étape 5: Montage de la turbine
Étape 6: Circuit - Connexions
Étape 7: Mesure sur l'oscilloscope
Étape 8: Code source
Entête
#include //Não é necessário caso use Arduino IDE#include "driver/mcpwm.h" //inclui a biblioteca "Motor Control PWM" nativa do ESP32 #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 display(0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos do objeto "display" #define GPIO_PWM0A_OUT 12 //Déclara GPIO 12 como PWM0A #define GPIO_PWM0B_OUT 14 //Déclara GPIO 14 como PWM0B
Installer
void setup() { Serial.begin(115200); 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); //mcpwm_gpio_init(unidade PWM 0, saida A, porta GPIO) => Instancia o MCPWM0A no pino GPIO_PWM0A_OUT declarado no começo do código mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0A, GPIO_PWM); //mcpwm_gpio_init(unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT declarado no começo do código mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0B, GPIO_PWM_PWM); mcpwm_config_t pwm_config; pwm_config.fréquence = 1000; // fréquence = 500 Hz, pwm_config.cmpr_a = 0; //Ciclo de trabalho (cycle de service) do PWMxA = 0 pwm_config.cmpr_b = 0; //Ciclo de trabalho (cycle de service) do PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; //Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; //Définir ciclo de trabalho em nível alto //Inicia(Unidade 0, Timer 0, Config PWM) mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config); //Définir PWM0A & PWM0B com comme configurações acima }
Les fonctions
//Função que configura o MCPWM operador A (Unidade, Timer, Porcentagem (ciclo de trabalho))static void brushed_motor_forward(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) { //mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) { //mcpwm_do(set_dosignade_do (0, 1 ou 2), Opérateur (A ou B)); => Desliga o sinal do MCPWM no Operador B (Définir o sinal em Baixo) mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_B); //mcpwm_set_duty(unidade PWM(0 ou 1), Número do timer(0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% do PWM)); => Configura a porcentagem do PWM no Operador A (Ciclo de trabalho) mcpwm_set_duty(mcpwm_num, timer_num, MCPWM_OPR_A, duty_cycle); //mcpwm_set_duty_tyoe(unidade PWM(0 ou 1), Número do timer(0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alto ou baixo)); => définir le nível do ciclo de trabalho (alto ou baixo) mcpwm_set_duty_type(mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); //Nota: Chame essa função toda vez que for chamado "mcpwm_set_signal_low" ou "mcpwm_set_signal_high" para manter o ciclo de trabalho configurado anteriormente } //Função que configura o MCPWM Do operador B (Unidade, Timer)ciclo de tracentagem (unidade, Timer)ciclo de tracentagem static void brushed_motor_backward(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) { mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_A); //Desliga o sinal do MCPWM no Operador A (Define o sinal em Baixo) mcpwm_set_duty(mcpwm_num, timer_num, MCPWM_OPR_B, duty_cycle); //Configura a porcentagem do PWM no Operador B (Ciclo de trabalho) mcpwm_set_duty_type(mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); //définir le nível do ciclo de trabalho (alto ou baixo) } //Função que para o MCPWM de ambos os Operadores static void brushed_motor_stop(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num_num) { mcpwm_m_set_num_mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num_num); //Desliga o sinal do MCPWM no Operador A mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_B); //Desliga o sinal do MCPWM no Operador B }
Boucle
void loop() { //Move o motor no sentido horário brushed_motor_forward(MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled("50"); retard (2000); //Para o moteur brushed_motor_stop(MCPWM_UNIT_0, MCPWM_TIMER_0); oled("0"); retard (2000); //Move o motor no sentido antihorário brushed_motor_backward(MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled("25"); retard (2000); //Para o moteur brushed_motor_stop(MCPWM_UNIT_0, MCPWM_TIMER_0); oled("0"); retard (2000); // Aceleracao i de 1 a 100 for(int i=10;i<=100;i++){ brushed_motor_forward(MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled(String(i)); retard (200); } // Desacceleração i de 100 a 1 delay(5000); for(int i=100;i>=10;i--){ brushed_motor_forward(MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled(String(i)); retard (100); } retard (5000); }
Étape 9: Télécharger les fichiers
INO
DESSIN
Conseillé:
Un amplificateur imprimé en 3D pour instrument de musique électrique. : 11 étapes (avec photos)
Un amplificateur imprimé en 3D pour instrument de musique électrique. : Définition du projet. J'espère créer un amplificateur imprimable à utiliser avec un violon électrique ou tout autre instrument électrique. amplificateur actif et le garder petit.Ele
Voiture jouet électrique alimentée par RC : 10 étapes (avec photos)
Voiture jouet électrique à télécommande : par : Peter Tran 10ELT1 Les tutoriels détaillent les trois étapes de la conception d'une voiture : Câble captif Infrar
Serrure de porte électrique avec lecteur d'empreintes digitales et lecteur RFID : 11 étapes (avec photos)
Serrure de porte électrique avec lecteur d'empreintes digitales et lecteur RFID : le projet a été conçu pour éviter la nécessité d'utiliser des clés. Pour atteindre notre objectif, nous avons utilisé un capteur optique d'empreintes digitales et un Arduino. Cependant, il y a des individus qui ont une empreinte digitale illisible et le capteur ne la reconnaîtra pas. Puis penser à un
Comment construire un longboard électrique avec commande par téléphone : 6 étapes (avec photos)
Comment construire un longboard électrique avec contrôle par téléphone : les longboards électriques sont géniaux ! TESTEZ LES VIDÉOS DANS LA VIDÉO CI-DESSUS COMMENT CONSTRUIRE UN LONGBOARD ÉLECTRIQUE CONTRLÉ À PARTIR D'UN TÉLÉPHONE AVEC BLUETOOTH Mise à jour n° 1 : Grip Tape installé, quelques ajustements au contrôleur de vitesse m'ont permis d'avoir plus de vitesse hors du bo
Boîte de charge électrique IKEA avec interrupteurs individuels : 6 étapes (avec photos)
Boîte de charge électrique IKEA avec interrupteurs individuels : Donc, l'autre jour, j'ai vu cette instructable sur la façon de faire une centrale électrique facile à l'aide d'une boîte IKEA : The-IKEA- Charging-box---no-more-cable-mess ! J'avais vraiment besoin quelque chose de similaire, alors je suis allé acheter une de ces boîtes chez IKEA, mais elle m'est restée