Përmbajtje:
- Hapi 1: Demonstrim
- Hapi 2: Kontrolli i motorit PWM
- Hapi 3: Burimet e përdorura
- Hapi 4: ESP 32 Dev Kit - Pinout
- Hapi 5: Montimi i turbinës
- Hapi 6: Qarku - Lidhjet
- Hapi 7: Matja në osciloskop
- Hapi 8: Kodi Burimor
- Hapi 9: Shkarkoni skedarët
Video: Turbinë elektrike me ESP32: 9 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Sot, unë do të diskutoj një turbinë elektrike me ESP32. Asambleja ka një pjesë që është shtypur në 3D. Unë do të paraqes një funksion PWM të ESP32 që është i përshtatshëm për kontrollin e motorëve elektrikë. Kjo do të përdoret në një motor DC. Unë gjithashtu do të demonstroj funksionimin e këtij MCPWM (Motor Control PWM) në një aplikim praktik.
Kam përdorur ESP32 LoRa në këtë projekt, dhe mendoj se është e rëndësishme të theksohet këtu se ky mikrokontrollues ka dy blloqe brenda tij. Këto blloqe janë të afta të kontrollojnë tre motorë secila. Kështu, është e mundur të kontrollohen deri në gjashtë motorë me PWM, të gjithë në mënyrë të pavarur. Kjo do të thotë që kontrolli që do të përdor këtu nuk është standardi (i cili është diçka e ngjashme me Arduino). Në vend të kësaj, kontrolli është vetë çipi, i cili i garanton ESP32 shumë fleksibilitet në lidhje me kontrollin e motorit.
Hapi 1: Demonstrim
Hapi 2: Kontrolli i motorit PWM
Diagrami i Përgjithshëm:
• Funksioni MCPWM i ESP32 mund të përdoret për të kontrolluar lloje të ndryshme të motorëve elektrikë. Ajo ka dy njësi.
• Çdo njësi ka tre çifte dalëse PWM.
• Çdo palë dalëse A / B mund të sinkronizohet me një nga tre kohëmatësit e sinkronizimit 0, 1 ose 2.
• Një kohëmatës mund të përdoret për të sinkronizuar më shumë se një palë dalëse PWM
Diagrami i plotë:
• Çdo njësi është gjithashtu e aftë të mbledhë sinjale hyrëse si SHENJA SINKRONIZIMI;
• Zbulimi i SHENJAVE TUL FAKTIT për mbitensionin e tepërt ose motorik;
• Merrni reagime me sinjalet e kapjes, siç është pozicioni i Motorit
Hapi 3: Burimet e përdorura
• Kërcyesit për lidhje
• Heltec Wifi LoRa 32
• Motori i zakonshëm DC
• Ura H - L298N
• Kabllo USB
• Protoboard
• Furnizimi me energji elektrike
Hapi 4: ESP 32 Dev Kit - Pinout
Hapi 5: Montimi i turbinës
Hapi 6: Qarku - Lidhjet
Hapi 7: Matja në osciloskop
Hapi 8: Kodi Burimor
Kokë
#include // Ne nuk kemi nevojë të përdorim Arduino IDE #përfshijnë "shoferin/mcpwm.h" // përfshijnë një bibliotekë "Motor Control PWM" nativa do ESP32 #include // Nevojat për para për Arduino 1.6.5 e pasme #përfshi " 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 ekran (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" #define GPIO_PWM0A_OUT 12 // Deklarata GPIO 12 e mëparshme PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
Konfigurimi
void setup () {Serial.begin (115200); display.init (); //display.flipScreenVertical (); // Vira a tela verticalmente display.clear (); // austa o alinhamento për një ekran esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // austa a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // mcpwm_gpio_init (PWM unidade 0, saida A, porta GPIO) => Instancia o MCPWM0A jo pino GPIO_PWM0A_OUT declarado jo começo bëjë código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0A, GPIO_PWM0A_OUT); // mcpwm_gpio_init (PWM unidade 0, saida B, porta GPIO) => Instancia o MCPWM0B jo pino GPIO_PWM0B_OUT declarado jo começo bëjë código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0B, GPIO_PWM0B_OUT); mcpwm_config_t pwm_config; pwm_config.frekuenca = 1000; // frekuencia = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (cikli i punës) deri PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (cikli i punës) bëni PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Përcaktoni ciclo de trabalho em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Përcaktoni PWM0A & PWM0B com si konfigurime acima}
Funksione
// Funksioni i konfigurimit të operatorit MCPWM A (Unidade, Kohëmatësi, Porcentagem (ciclo de trabalho)) zbrazëti statike e krehur_motor_para (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num_mummum (0, 1 ou 2), Operador (A ou B)); => Designa ose sinal do MCPWM pa Operador B (Përcakto em sinal em Baixo) mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // mcpwm_set_duty (PWM unidade (0 ou 1), Número do timer (0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% do PWM)); => Konfiguro një porcentagem për PWM jo Operador A (Ciclo de trabalho) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_A, duty_cycle); // mcpwm_set_duty_tyoe (PWM unidade (0 ou 1), Número do timer (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alto ou baixo)); => përkufizo çdo gjë që bëni në trabalho (alto ou baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); // Shënim: Chame essa função toda vez que for chamado "mcpwm_set_signal_low" ou "mcpwm_set_signal_high" para manter ose ciclo de trabalho configurado anteriormente} // Funksioni i konfigurimit ose MCPWO De operador Tim (Un), operatori B (Un) zbrazëti statike e krehur_motor_pasmë (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); // Konfiguro një porcentagem për PWM jo Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // përcaktojë o Nivel të bëjë Ciclo de trabalho (Alto ou Baixo)} // Função que para o MCPWM de Ambos os Operadores brushed_motor_stop statike void (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) {mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_A); // Prejardhje në MCPWM pa Operador A mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // Desliga o sinal do MCPWM pa Operador B}
Lak
lak i pavlefshëm () {// Lëvizni me motor pa sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); i lyer ("50"); vonesa (2000); // Para o motor me furçë_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); i lyer ("0"); vonesa (2000); // Lëvizni nga motori pa ndonjë antihorári të pastruar_motor_para -prapa (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); i lyer ("25"); vonesa (2000); // Para o motor me furçë_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); i lyer ("0"); vonesa (2000); // Aceleracao i de 1 a 100 për (int i = 10; i <= 100; i ++) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); i lyer (Vargu (i)); vonesë (200); } // Desaceleração i de 100 një vonesë 1 (5000); për (int i = 100; i> = 10; i-) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); i lyer (Vargu (i)); vonesë (100); } vonesë (5000); }
Hapi 9: Shkarkoni skedarët
INO
Vizatim
Recommended:
Lexoni njehsorin e energjisë elektrike dhe gazit (belg/holandez) dhe ngarkoni në Thingspeak: 5 hapa
Lexoni Matësin e Energjisë Elektrike dhe Gazit (Belgjike/Holandeze) dhe Ngarko në Thingspeak: Nëse jeni të shqetësuar për konsumin tuaj të energjisë ose thjesht për një çmenduri, me siguri dëshironi të shihni të dhënat nga njehsori juaj i ri dixhital i zgjuar në smartphone tuaj. Në këtë projekt do të marrim të dhënat aktuale nga një elektrik dixhital belg ose holandez
Varkë elektrike: 4 hapa
Varkë elektrike: Furnizime -Kuti e vogël plastike2x motorë dc Tela 1x çelës 2x helikë 2x bateri 9x VV Armë ngjitëse e nxehtë
Si të bëni kuti sigurie duke ndjekur lojën mes nesh - Detyra e instalimeve elektrike: 7 hapa
Si të bëni kuti sigurie pas lojës mes nesh - Detyra e telave elektrikë: Sot, unë do t'ju tregoj se si të bëni një kuti sigurie pas lojës mes nesh - Detyra e telave elektrike
Si të lexoni një matës të energjisë elektrike përmes Arduino: 3 hapa
Si të lexoni një matës të energjisë elektrike përmes Arduino: Shpesh do të ishte interesante të njihni konsumin aktual të energjisë ose konsumin total të energjisë në shtëpinë tuaj për të kufizuar kostot tuaja për energji elektrike dhe për të mbrojtur mjedisin. Ky nuk është vërtet problem, sepse kryesisht do të gjeni një elit dixhital të zgjuar
Makinë lodër elektrike me motor RC: 10 hapa (me fotografi)
Makinë lodër elektrike me energji elektrike RC: Nga: Peter Tran 10ELT1Ky tutorial detajon teorinë, projektimin, prodhimin dhe procesin e testimit për një makinë lodër elektrike me telekomandë (RC) duke përdorur patate të skuqura IC HT12E/D. Udhëzimet detajojnë tre fazat e projektimit të makinës: Kabllo e lidhur Infrar