Taula de continguts:
- Pas 1: demostració
- Pas 2: control del motor PWM
- Pas 3: recursos utilitzats
- Pas 4: kit de desenvolupament ESP 32 - Pinout
- Pas 5: muntatge de la turbina
- Pas 6: Circuit - Connexions
- Pas 7: mesura amb oscil·loscopi
- Pas 8: codi font
- Pas 9: baixeu els fitxers
Vídeo: Turbina elèctrica amb ESP32: 9 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Avui parlaré d’una turbina elèctrica amb ESP32. El conjunt té una part que es va imprimir en 3D. Presentaré una funció PWM de l’ESP32 que és adequada per controlar motors elèctrics. S’utilitzarà en un motor de corrent continu. També demostraré el funcionament d’aquest MCPWM (Motor Control PWM) en una aplicació pràctica.
He utilitzat ESP32 LoRa en aquest projecte i crec que és important tenir en compte que aquest microcontrolador té dos blocs al seu interior. Aquests blocs són capaços de controlar tres motors cadascun. Així, és possible controlar fins a sis motors amb PWM, tots de forma independent. Això vol dir que el control que faré servir aquí no és l’estàndard (que és una cosa similar a l’Arduino). En canvi, el control és el propi xip, que garanteix a l’ESP32 molta flexibilitat pel que fa al control del motor.
Pas 1: demostració
Pas 2: control del motor PWM
Diagrama general:
• La funció MCPWM de l'ESP32 es pot utilitzar per controlar diversos tipus de motors elèctrics. Té dues unitats.
• Cada unitat té tres parells de sortida PWM.
• Cada parell de sortida A / B es pot sincronitzar amb un dels tres temporitzadors de sincronització 0, 1 o 2.
• Es pot utilitzar un temporitzador per sincronitzar més d’un parell de sortida PWM
Diagrama complet:
• Cada unitat també és capaç de recollir senyals d’entrada com a SIGNES DE SINCRONITZACIÓ;
• Detectar SIGNES DE FALLA per sobreintensitat o sobretensió del motor;
• Obteniu comentaris amb CAPTURE SIGNALS, com ara la posició del motor
Pas 3: recursos utilitzats
• Jumpers per a connexió
• Heltec Wifi LoRa 32
• Motor comú de corrent continu
• Pont H - L298N
• Cable USB
• Protoboard
• Font d'alimentació
Pas 4: kit de desenvolupament ESP 32 - Pinout
Pas 5: muntatge de la turbina
Pas 6: Circuit - Connexions
Pas 7: mesura amb oscil·loscopi
Pas 8: codi font
Capçalera
#include // No és necessari cas use Arduino IDE # include "driver / mcpwm.h" // inclui a biblioteca "Motor Control PWM" nativa do ESP32 #include // Necessario 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 // Declara GPIO 12 com PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 com PWM0B
Configuració
configuració nul·la () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Vira a tela verticalment display.clear (); // ajusta o alinhamento per a l'esquerra display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte per 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 code mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0A, GPIO_PW; // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT declarado no começo do code mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0B, GPIO_PW; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frequência = 500Hz, pwm_config.cmpr_a = 0; // Cicle de treball (cicle de treball) do PWMxA = 0 pwm_config.cmpr_b = 0; // Cicle de treball (cicle de treball) de PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Definir cicle de treball em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Definiu PWM0A i PWM0B com com a configuracions acima}
Funcions
// Funció 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) {// mcpwal_w (set) (0, 1 ou 2), Operador (A ou B)); => Desliga o sinal do MCPWM no Operador B (Define 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 treball (% do PWM)); => Configura un percentatge de PWM sense operador A (Cicle de treball) 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 treball (alt o baix)); => defineix un cicle de treball (alt o baix) 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" per mantenir o cicle de treball configurat anteriorment} // Funcionament que configura o MCPWM Do operador B (Unidade, Timer, Porcentagem (ciclo de trabalho)) 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); // Configureu un percentatge de PWM no Operador B (Ciclo de treball) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // define o nível do ciclo de trabalho (alto ou baixo)} // Funcionament que per a MCPWM de tots dos Operadors static void brushed_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) {mcpwm_set_signal_low, // 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}
Bucle
void loop () {// Move o motor no sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); endarreriment (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); endarreriment (2000); // Moveu el motor sense sentit antihorari brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); endarreriment (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); endarreriment (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); } // Desaceleraçã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); }
Pas 9: baixeu els fitxers
INO
DIBUIX
Recomanat:
Oficina amb bateria. Sistema solar amb panells solars de commutació automàtica est / oest i turbina eòlica: 11 passos (amb imatges)
Oficina amb bateria. Sistema solar amb panells solars de commutació automàtica est / oest i turbina eòlica: el projecte: una oficina de 200 peus quadrats ha de funcionar amb bateria. L'oficina també ha de contenir tots els controladors, bateries i components necessaris per a aquest sistema. L’energia solar i eòlica carregarà les bateries. Hi ha un petit problema de només
Turbina electrostàtica millorada feta de materials reciclables: 16 passos (amb imatges)
Turbina electrostàtica millorada fabricada a partir de materials reciclables: es tracta d’una turbina electrostàtica (EST) totalment construïda amb ratllades que converteix el corrent continu d’alta tensió (HVDC) en moviment rotatiu d’alta velocitat. El meu projecte es va inspirar en el motor Jefimenko Corona que funciona amb electricitat de l’atmosfera
Turbina eòlica d'ampolla d'aigua de bricolatge: 5 passos (amb imatges)
Turbina eòlica d'ampolla d'aigua de bricolatge: descripció bàsica Per entendre com funciona un aerogenerador, és important entendre com funciona l'energia eòlica a un nivell bàsic. El vent és una forma d’energia solar perquè el sol és la font que crea vent per la calor desigual de l’atmosfera, ho
Ampolla d'esprai de turbina de bricolatge: 12 passos (amb imatges)
Ampolla de polvorització de turbines de bricolatge: tenim un estiu extremadament calorós al meu lloc, així que vaig haver d’esbrinar alguna cosa que ens pogués refrescar. Aquí ve el resultat
Dipòsit de turbina de vapor R / C: 19 passos (amb imatges)
Tanc de turbina de vapor R / C: necessiteu una excusa per jugar amb el foc? A continuació, considereu la possibilitat de construir aquest tanc de turbina. Garantia per tornar boig al vostre veí i atraure gossos per quilòmetres. Apagueu una mica els altaveus i mireu el vídeo per veure què vull dir :) Però, de debò, si voleu