Talaan ng mga Nilalaman:
- Hakbang 1: Pagpapakita
- Hakbang 2: Pagkontrol sa PWM Motor
- Hakbang 3: Ginamit na Mga Mapagkukunan
- Hakbang 4: ESP 32 Dev Kit - Pinout
- Hakbang 5: Turbine Mounting
- Hakbang 6: Circuit - Mga Koneksyon
- Hakbang 7: Pagsukat sa Oscilloscope
- Hakbang 8: Source Code
- Hakbang 9: I-download ang Mga File
Video: Electric Turbine Na May ESP32: 9 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ngayon, tatalakayin ko ang isang electric turbine kasama ang ESP32. Ang pagpupulong ay may isang bahagi na nakalimbag sa 3D. Magpapakita ako ng isang pagpapaandar ng PWM ng ESP32 na angkop para sa pagkontrol ng mga de-kuryenteng motor. Gagamitin ito sa isang motor na DC. Ipapakita ko rin ang pagpapatakbo ng MCPWM na ito (Motor Control PWM) sa isang praktikal na aplikasyon.
Ginamit ko ang ESP32 LoRa sa proyektong ito, at sa palagay ko mahalaga na tandaan dito na ang microcontroller na ito ay may dalawang mga bloke sa loob nito. Ang mga bloke na ito ay may kakayahang kontrolin ang bawat tatlong motor. Kaya, posible na makontrol ang hanggang sa anim na motor na may PWM, lahat ay nakapag-iisa. Nangangahulugan ito na ang kontrol na gagamitin ko dito ay hindi pamantayan (na kung saan ay katulad ng Arduino). Sa halip, ang kontrol ay ang chip mismo, na ginagarantiyahan ang ESP32 ng maraming kakayahang umangkop patungkol sa motor control.
Hakbang 1: Pagpapakita
Hakbang 2: Pagkontrol sa PWM Motor
Pangkalahatang Diagram:
• Ang pagpapaandar ng MCPWM ng ESP32 ay maaaring magamit upang makontrol ang iba't ibang uri ng mga de-kuryenteng motor. Mayroon itong dalawang mga yunit.
• Ang bawat yunit ay may tatlong mga pares ng output ng PWM.
• Ang bawat pares ng output A / B ay maaaring mai-synchronize sa isa sa tatlong mga timer ng pagsasabay na 0, 1, o 2.
• Ang isang Timer ay maaaring magamit upang mai-synchronize ang higit sa isang pares ng output ng PWM
Buong Diagram:
• Ang bawat yunit ay may kakayahang mangolekta rin ng mga signal ng pag-input bilang SINYON NG SINCHRONIZATION;
• Makita ang mga FAULT SIGNS para sa sobrang lakas o sobrang lakas ng motor;
• Kumuha ng puna sa CAPTURE SIGNALS, tulad ng posisyon ng Engine
Hakbang 3: Ginamit na Mga Mapagkukunan
• Mga jumper para sa koneksyon
• Heltec Wifi LoRa 32
• Karaniwang DC motor
• Bridge H - L298N
• Kable ng USB
• Protoboard
• supply ng kuryente
Hakbang 4: ESP 32 Dev Kit - Pinout
Hakbang 5: Turbine Mounting
Hakbang 6: Circuit - Mga Koneksyon
Hakbang 7: Pagsukat sa Oscilloscope
Hakbang 8: Source Code
Header
#include // Kailangan mong magamit ang Arduino IDE # isama ang "driver / mcpwm.h" // inclui a biblioteca "Motor Control PWM" nativa do ESP32 #include // Necessário apenas para o Arduino 1.6.5 at 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 display SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e 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
Pag-set up
void setup () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Vira isang tela verticalmente display. Malinaw (); // ajusta o alinhamento para sa isang 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 decarado no começo do código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0A, GPA_M) // 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, GPB_M) mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frequência = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (duty cycle) gawin PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (duty cycle) gawin PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Define ciclo de trabalho em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Tukuyin ang PWM0A & PWM0B com bilang configurações acima}
Mga pagpapaandar
// Função que configura o MCPWM operador A (Unidade, Timer, Porcentagem (ciclo de trabalho)) static void brushing_motor_forward (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) {// mspw_ timer (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 isang porcentagem gawin 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)); => tukuyin o gawin gawin 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 (Unidadeem, Timalho) static void brushing_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); // define o nível do ciclo de trabalho (alto ou baixo)} // Função que para o MCPWM de ambos os Operadores static void brushing_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) {mcpwm_wlm_ww_w // 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}
Loop
void loop () {// Ilipat o motor walang sentido horário brushing_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); pagkaantala (2000); // Para sa motor brushing_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); pagkaantala (2000); // Move o motor no sentido antihorário brushing_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); pagkaantala (2000); // Para sa motor brushing_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); pagkaantala (2000); // Aceleracao i de 1 a 100 para sa (int i = 10; i <= 100; i ++) {brushing_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); pagkaantala (200); } // Desaceleração i de 100 a 1 pagkaantala (5000); para sa (int i = 100; i> = 10; i -) {brushing_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); pagkaantala (100); } pagkaantala (5000); }
Hakbang 9: I-download ang Mga File
INO
Pagguhit
Inirerekumendang:
Opisina na Pinapatakbo ng Baterya. Solar System Na May Auto Switching East / West Solar Panels at Wind Turbine: 11 Hakbang (na may Mga Larawan)
Opisina na Pinapatakbo ng Baterya. Solar System Na May Auto Switching East / West Solar Panels at Wind Turbine: Ang Proyekto: Ang isang 200 square ft. Na tanggapan ay kailangang pinapatakbo ng baterya. Dapat ding maglaman ang tanggapan ng lahat ng mga tagakontrol, baterya at sangkap na kinakailangan para sa sistemang ito. Sisingilin ng kuryente ng solar at hangin ang mga baterya. Mayroong isang bahagyang problema lamang
Electric Lock ng Pintuan Na May Fingerprint Scanner at RFID Reader: 11 Mga Hakbang (na may Mga Larawan)
Electric Door Lock With Fingerprint Scanner at RFID Reader: Ang proyekto ay dinisenyo upang maiwasan ang pangangailangan ng paggamit ng mga key, upang maabot ang aming layunin na ginamit namin ang isang optical fingerprint sensor at isang Arduino. Gayunpaman may mga indibidwal na mayroong isang hindi mambabasa na fingerprint at hindi ito makikilala ng sensor. Pagkatapos iniisip ang isang
Paano Bumuo ng isang Electric Longboard Na May Control ng Telepono: 6 Mga Hakbang (na may Mga Larawan)
Paano Bumuo ng isang Elektronikong Longboard Na May Control ng Telepono: Ang mga electric longboard ay kakila-kilabot! PAGSUSULIT NG BAKAS SA VIDEO SA ITO SA TUNGKOL NA MAGTATAKO NG ISANG Elektronikong LONGBOARD NA KONTROLLIYA MULA SA TELEPONO NA MAY BLUETOOTHUpdate # 1: Na-install ang grip tape, ang ilang mga pag-aayos sa speed controller ay nangangahulugang nakuha ko mas maraming bilis sa labas ng bo
Pinabuting Elektrostatikong Turbine na Ginawa Mula sa Mga Recyclable: 16 Mga Hakbang (na may Mga Larawan)
Pinagbuting Elektrostatikong Turbine na Ginawa Mula sa Mga Recyclable: Ito ay isang kumpletong naka-built, electrostatic turbine (EST) na nagko-convert ng mataas na boltahe na direktang kasalukuyang (HVDC) sa mataas na bilis, umiinog na paggalaw. Ang aking proyekto ay inspirasyon ng Jefimenko Corona Motor na pinalakas ng kuryente mula sa atmospher
Tesla Turbine Mula sa Mga Matandang Hard Drives at Minimal Tools: 11 Hakbang (na may Mga Larawan)
Tesla Turbine Mula sa Mga Lumang Hard Drives at Minimal Tools: Bumuo ng isang Tesla turbine mula sa 2 lumang computer hard disk drive gamit ang pangunahing mga tool sa kamay at isang drill ng haligi. Walang kinakailangang metal lathe o iba pang mamahaling makinarya ng katha at kailangan mo lamang ng ilang pangunahing kasanayan sa bapor. Ito ay krudo, ngunit ang bagay na ito ay maaaring mag-screa