Indholdsfortegnelse:
- Trin 1: Demonstration
- Trin 2: PWM -motorstyring
- Trin 3: Brugte ressourcer
- Trin 4: ESP 32 Dev Kit - Pinout
- Trin 5: Turbinemontering
- Trin 6: Kredsløb - Forbindelser
- Trin 7: Måling på oscilloskop
- Trin 8: Kildekode
- Trin 9: Download filerne
Video: Elektrisk turbine med ESP32: 9 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I dag vil jeg diskutere en elektrisk turbine med ESP32. Samlingen har en del, der blev trykt i 3D. Jeg vil præsentere en PWM -funktion af ESP32, der er egnet til styring af elektriske motorer. Dette vil blive brugt i en DC -motor. Jeg vil også demonstrere, hvordan denne MCPWM (Motor Control PWM) fungerer i en praktisk anvendelse.
Jeg brugte ESP32 LoRa i dette projekt, og jeg synes, det er vigtigt at bemærke her, at denne mikrokontroller har to blokke inde i sig. Disse blokke er i stand til at styre tre motorer hver. Således er det muligt at styre op til seks motorer med PWM, alle uafhængigt. Dette betyder, at den kontrol, jeg vil bruge her, ikke er standarden (hvilket ligner noget Arduino). I stedet er kontrollen selve chippen, hvilket garanterer ESP32 en masse fleksibilitet med hensyn til motorstyring.
Trin 1: Demonstration
Trin 2: PWM -motorstyring
Generelt diagram:
• MCPWM -funktionen i ESP32 kan bruges til at styre forskellige typer elmotorer. Det har to enheder.
• Hver enhed har tre PWM -udgangspar.
• Hvert output A / B -par kan synkroniseres med en af tre synkroniseringstimere 0, 1 eller 2.
• En timer kan bruges til at synkronisere mere end et PWM -udgangspar
Fuld diagram:
• Hver enhed er også i stand til at indsamle indgangssignaler som SYKRONISERINGSTEKNE;
• Registrer FEJLSIGNE for overstrøm eller motoroverspænding;
• Få feedback med CAPTURE SIGNALS, f.eks. Motorens position
Trin 3: Brugte ressourcer
• Jumpere til forbindelse
• Heltec Wifi LoRa 32
• Fælles DC -motor
• Bro H - L298N
• USB -kabel
• Protoboard
• Strømforsyning
Trin 4: ESP 32 Dev Kit - Pinout
Trin 5: Turbinemontering
Trin 6: Kredsløb - Forbindelser
Trin 7: Måling på oscilloskop
Trin 8: Kildekode
Header
#include // Não é nødvendá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 and ajustando os pinos do objeto "display" #define GPIO_PWM0A_OUT 12 // Declara GPIO 12 com PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
Opsætning
ugyldig opsætning () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte 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, MCPWM0; // 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, MCPWM0; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frequência = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (driftscyklus) til PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (driftscyklus) til PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Til MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Definer ciclo de trabalho em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Definer PWM0A & PWM0B com som konfigurações acima}
Funktioner
// 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_ (0, 1 ou 2), Operador (A ou B)); => Desliga o sinal to 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), Numero do timer (0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% do PWM)); => Konfigurer en porcentagem til PWM ingen 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), Numero do timer (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alt ou baixo)); => definer o nível do ciclo de trabalho (alt eller baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); // Bemærk: 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), Timo statisk hulrum 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); // Konfigurer en porcentagem til PWM ingen Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // definer o nível do ciclo de trabalho (alto 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) // 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}
Sløjfe
void loop () {// Move o motor no sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); forsinkelse (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); forsinkelse (2000); // Flyt til motoren uden sentido antihorário børstet_motor_bagud (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); forsinkelse (2000); // Para o motor brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); forsinkelse (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)); forsinkelse (200); } // Desaceleração i de 100 a 1 forsinkelse (5000); for (int i = 100; i> = 10; i-) {børstet_motor_ fremad (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); forsinkelse (100); } forsinkelse (5000); }
Trin 9: Download filerne
INO
TEGNING
Anbefalede:
Elektrisk dørlås med fingeraftryksscanner og RFID -læser: 11 trin (med billeder)
Elektrisk dørlås med fingeraftryksscanner og RFID -læser: Projektet var designet til at undgå nødvendigheden af at bruge nøgler, for at nå vores mål brugte vi en optisk fingeraftrykssensor og en Arduino. Der er dog personer, der har et ulæseligt fingeraftryk, og sensoren kan ikke genkende det. Så tænker man
Sådan bygger du et elektrisk longboard med telefonstyring: 6 trin (med billeder)
Sådan opbygger du et elektrisk longboard med telefonstyring: Elektriske longboards er forrygende! TESTFOTO I VIDEOEN OVERFØRENDE AT BYGGE EN ELEKTRISK LONGBOARD KONTROLLERET FRA EN TELEFON MED BLUETOOTHUpdate #1: Grip tape installeret, nogle tweaks til hastighedsregulatoren har betydet, at jeg har fået mere fart ud af bo
Forbedret elektrostatisk turbine fremstillet af genanvendelige materialer: 16 trin (med billeder)
Forbedret elektrostatisk turbine fremstillet af genanvendelige materialer: Dette er en fuldstændig ridsebygget, elektrostatisk turbine (EST), der konverterer højspændings jævnstrøm (HVDC) til høj hastighed, roterende bevægelse. Mit projekt blev inspireret af Jefimenko Corona Motor, der drives af elektricitet fra atmosfæren
Sindssyg elektrisk Longboard Budet med kulfiberdæk: 6 trin (med billeder)
Insane Electric Longboard Budet With Carbon Fiber Deck: hey, før jeg taler om mig selv, og hvorfor jeg besluttede at tage på denne rejse, vil jeg gerne sige, tjek min video for en episk ridemontage og min praksis med at lave også vigtigere, vær så venlig at abonnere på den vil virkelig hjælpe mit college kursus, fordi
Tesla -turbine fra gamle harddiske og minimale værktøjer: 11 trin (med billeder)
Tesla -turbine fra gamle harddiske og minimale værktøjer: Byg en Tesla -turbine fra 2 gamle computerharddiske ved hjælp af grundlæggende håndværktøjer og en søjlebor. Ingen metal drejebænk eller andre dyre fabrikationsmaskiner er påkrævet, og du har kun brug for nogle grundlæggende håndværksfærdigheder. Det er groft, men denne ting kan skræmme