Innholdsfortegnelse:
- Trinn 1: Demonstrasjon
- Trinn 2: PWM motorstyring
- Trinn 3: Ressurser brukt
- Trinn 4: ESP 32 Dev Kit - Pinout
- Trinn 5: Turbinemontering
- Trinn 6: Krets - Tilkoblinger
- Trinn 7: Måling på oscilloskop
- Trinn 8: Kildekode
- Trinn 9: Last ned filene
Video: Elektrisk turbin med ESP32: 9 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
I dag skal jeg diskutere en elektrisk turbin med ESP32. Samlingen har en del som ble skrevet ut i 3D. Jeg vil presentere en PWM -funksjon av ESP32 som er egnet for styring av elektriske motorer. Dette vil bli brukt i en likestrømsmotor. Jeg vil også demonstrere driften av denne MCPWM (Motor Control PWM) i en praktisk applikasjon.
Jeg brukte ESP32 LoRa i dette prosjektet, og jeg tror det er viktig å merke seg at denne mikrokontrolleren har to blokker inne i den. Disse blokkene er i stand til å kontrollere tre motorer hver. Dermed er det mulig å styre opptil seks motorer med PWM, alle uavhengig. Dette betyr at kontrollen jeg vil bruke her ikke er standarden (som er noe som ligner på Arduino). I stedet er kontrollen selve brikken, som garanterer ESP32 mye fleksibilitet med hensyn til motorstyring.
Trinn 1: Demonstrasjon
Trinn 2: PWM motorstyring
Generelt diagram:
• MCPWM -funksjonen til ESP32 kan brukes til å kontrollere forskjellige typer elektriske motorer. Den har to enheter.
• Hver enhet har tre PWM -utgangspar.
• Hvert utgang A / B -par kan synkroniseres med en av tre synkroniseringstidtakere 0, 1 eller 2.
• En timer kan brukes til å synkronisere mer enn ett PWM -utgangspar
Fullstendig diagram:
• Hver enhet er også i stand til å samle inngangssignaler som SYNKRONISERINGSTEGN;
• Oppdag FEILSKILTER for overstrøm eller motoroverspenning;
• Få tilbakemelding med CAPTURE SIGNALS, for eksempel motorens posisjon
Trinn 3: Ressurser brukt
• Gensere for tilkobling
• Heltec Wifi LoRa 32
• Felles DC -motor
• Bro H - L298N
• USB-kabel
• Protoboard
• Strømforsyning
Trinn 4: ESP 32 Dev Kit - Pinout
Trinn 5: Turbinemontering
Trinn 6: Krets - Tilkoblinger
Trinn 7: Måling på oscilloskop
Trinn 8: Kildekode
Overskrift
#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 como PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
Oppsett
ugyldig oppsett () {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 for 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, GPPWM0, // 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, MCPWM0; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frequência = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (driftssyklus) til PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (driftssyklus) til PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // For 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 konfigurasjoner ima
Funksjoner
// 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_ycle) {// mcpwal_ (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)); => Konfigurer en porsjon for 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 (alt ou baixo)); => definere 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); // 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 konfigura o MCPWM Do operador B (Unidade), Timo statisk tomrom børstet_motor_ bakover (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); // definer 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) // 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}
Løkke
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); // Flytt motoren uten sentido antihorário børstet_motor_ bakover (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_forover (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); forsinkelse (100); } forsinkelse (5000); }
Trinn 9: Last ned filene
INO
TEGNING
Anbefalt:
3D-utskrevet elektrisk lysbildebryter (kun med et binders): 7 trinn (med bilder)
3D-utskrevet elektrisk lysbildebryter (kun med et binders): Jeg har dabbet sammen med å koble sammen mine egne små elektriske prosjekter gjennom årene, hovedsakelig i form av binders, aluminiumsfolie og papp brosteinsbelagt sammen med varmt lim. Jeg kjøpte nylig en 3D -skriver (Creality Ender 3) og så på
Elektrisk dørlås med fingeravtrykksskanner og RFID -leser: 11 trinn (med bilder)
Elektrisk dørlås med fingeravtrykksskanner og RFID -leser: Prosjektet var designet for å unngå nødvendigheten av å bruke nøkler, for å nå målet brukte vi en optisk fingeravtrykkssensor og en Arduino. Det er imidlertid individer som har et uleselig fingeravtrykk, og sensoren vil ikke gjenkjenne det. Da tenker
Hvordan bygge et elektrisk longboard med telefonkontroll: 6 trinn (med bilder)
Hvordan bygge et elektrisk longboard med telefonkontroll: Elektriske longboards er kjempebra! TESTFOTO I VIDEOEN OVERFOR Å BYGGE EN ELEKTRISK LONGBOARD KONTROLLERT FRA EN TELEFON MED BLUETOOTHUpdate #1: Grip tape installert, noen tweaks til hastighetskontrolleren har betydd at jeg har fått mer fart ut av båten
Forbedret elektrostatisk turbin laget av resirkulerbare materialer: 16 trinn (med bilder)
Forbedret elektrostatisk turbin laget av resirkulerbare materialer: Dette er en helt skrapt, elektrostatisk turbin (EST) som konverterer høyspent likestrøm (HVDC) til høyhastighets roterende bevegelse. Prosjektet mitt ble inspirert av Jefimenko Corona Motor som drives av elektrisitet fra atmosfæren
Tesla -turbin fra gamle harddisker og minimale verktøy: 11 trinn (med bilder)
Tesla -turbin fra gamle harddisker og minimale verktøy: Bygg en Tesla -turbin fra to gamle datamaskinharddisker ved hjelp av grunnleggende håndverktøy og en søylebor. Ingen metalldreiebenk eller andre dyre fabrikasjonsmaskiner er nødvendig, og du trenger bare noen grunnleggende håndverkskunnskaper. Det er grovt, men denne tingen kan skremme