Tabla de contenido:
- Paso 1: demostración
- Paso 2: Control de motor PWM
- Paso 3: Recursos utilizados
- Paso 4: Kit de desarrollo ESP 32 - Pinout
- Paso 5: Montaje de la turbina
- Paso 6: Circuito - Conexiones
- Paso 7: medición en osciloscopio
- Paso 8: código fuente
- Paso 9: descargue los archivos
Video: Turbina eléctrica con ESP32: 9 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Hoy hablaré sobre una turbina eléctrica con ESP32. El ensamblaje tiene una pieza que se imprimió en 3D. Presentaré una función PWM del ESP32 que es adecuada para controlar motores eléctricos. Esto se utilizará en un motor de CC. También demostraré el funcionamiento de este MCPWM (Motor Control PWM) en una aplicación práctica.
Usé ESP32 LoRa en este proyecto, y creo que es importante señalar aquí que este microcontrolador tiene dos bloques dentro. Estos bloques son capaces de controlar tres motores cada uno. Así, es posible controlar hasta seis motores con PWM, todos de forma independiente. Esto significa que el control que usaré aquí no es el estándar (que es algo similar al Arduino). En cambio, el control es el propio chip, lo que garantiza al ESP32 mucha flexibilidad con respecto al control del motor.
Paso 1: demostración
Paso 2: Control de motor PWM
Diagrama general:
• La función MCPWM del ESP32 se puede utilizar para controlar varios tipos de motores eléctricos. Tiene dos unidades.
• Cada unidad tiene tres pares de salidas PWM.
• Cada par de salida A / B se puede sincronizar con uno de los tres temporizadores de sincronización 0, 1 o 2.
• Se puede usar un temporizador para sincronizar más de un par de salidas PWM
Diagrama completo:
• Cada unidad también es capaz de recopilar señales de entrada como SIGNOS DE SINCRONIZACIÓN;
• Detectar SEÑALES DE FALLA por sobrecorriente o sobretensión del motor;
• Obtenga retroalimentación con CAPTURA DE SEÑALES, como la posición del motor
Paso 3: Recursos utilizados
• Jumpers para conexión
• Heltec Wifi LoRa 32
• Motor de CC común
• Puente H - L298N
• Cable USB
• Protoboard
• Fuente de alimentación
Paso 4: Kit de desarrollo ESP 32 - Pinout
Paso 5: Montaje de la turbina
Paso 6: Circuito - Conexiones
Paso 7: medición en osciloscopio
Paso 8: código fuente
Encabezamiento
#include // No es necesario en caso de usar Arduino IDE # include "driver / mcpwm.h" // inclui una biblioteca "Motor Control PWM" nativa do ESP32 #include // Necesario solo para 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 y ajustando os pinos do objeto "display" #define GPIO_PWM0A_OUT 12 // Declara GPIO 12 como PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
Configuración
configuración vacía () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Vira una tela verticalmente display.clear (); // ajusta o alinhamento para una pantalla esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta una fuente para 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, GPA_PWM0; // 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, GPBIO_PWM0; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frecuencia = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (ciclo de trabajo) do PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (ciclo de trabajo) do PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Definir ciclo de trabalho em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Definir PWM0A & PWM0B com como configurações acima}
Funciones
// 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) {// Número mcpwmlow_set_Watch_Works (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 trabalho (% do PWM)); => Configura un porcentaje de PWM sin Operador A (ciclo de tráfico) 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)); => definir el nivel del ciclo de trabalho (alto o 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 anteriormente} // Função 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); // Configura un porcentajem do PWM no Operador B (Ciclo de trabalho) 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)} // 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) {mcpwm_set_signal_wmOP_low, mcpwm_set_signal_wm_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}
Círculo
bucle vacío () {// Mover el motor sin sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); retraso (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); retraso (2000); // Mover o motor no sentido antihorário brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); retraso (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); retraso (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 (Cadena (i)); retraso (200); } // Desaceleração i de 100 a 1 delay (5000); para (int i = 100; i> = 10; i -) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (Cadena (i)); retraso (100); } retraso (5000); }
Paso 9: descargue los archivos
INO
DIBUJO
Recomendado:
Turbina de viento: 7 pasos (con imágenes)
Aerogenerador: ¡Hola a todos! En este Instructable, lo guiaré a través de la construcción de un modelo de aerogenerador hecho de piezas recicladas o de fácil acceso. Podrá producir alrededor de 1,5 voltios y ajustarse automáticamente para que siempre esté
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática Este / Oeste: 11 pasos (con imágenes)
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática de este a oeste: El proyecto: Una oficina de 200 pies cuadrados debe funcionar con baterías. La oficina también debe contener todos los controladores, baterías y componentes necesarios para este sistema. La energía solar y eólica cargará las baterías. Hay un pequeño problema de solo
Cerradura de puerta eléctrica con escáner de huellas dactilares y lector RFID: 11 pasos (con imágenes)
Cerradura de Puerta Eléctrica con Escáner de Huellas y Lector RFID: El proyecto fue diseñado para evitar la necesidad de usar llaves, para alcanzar nuestro objetivo usamos un sensor óptico de huellas y un Arduino. Sin embargo, hay personas que tienen una huella dactilar ilegible y el sensor no la reconoce. Entonces pensando en
Turbina de viento con botella de agua de bricolaje: 5 pasos (con imágenes)
Aerogenerador con botella de agua para bricolaje: Descripción básica Para comprender cómo funciona un aerogenerador, es importante comprender cómo funciona la energía eólica en un nivel básico. El viento es una forma de energía solar porque el sol es la fuente que crea viento por el calor desigual en la atmósfera, ho
Caja de carga eléctrica IKEA con interruptores individuales: 6 pasos (con imágenes)
Caja de carga eléctrica IKEA con interruptores individuales: el otro día vi este instructivo sobre cómo hacer una central eléctrica fácil usando una caja IKEA: La caja de carga IKEA --- ¡no más cables desordenados! algo similar, así que fui y compré una de esas cajas en IKEA, pero se me quedó parado