Tartalomjegyzék:
- 1. lépés: Demonstráció
- 2. lépés: PWM motorvezérlés
- 3. lépés: Felhasznált erőforrások
- 4. lépés: ESP 32 Dev Kit - Pinout
- 5. lépés: Turbina szerelés
- 6. lépés: Áramkör - csatlakozások
- 7. lépés: Mérés oszcilloszkóppal
- 8. lépés: Forráskód
- 9. lépés: Töltse le a fájlokat
Videó: Elektromos turbina ESP32: 9 lépésben
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ma egy elektromos turbináról fogok beszélni az ESP32 -vel. A szerelvénynek van egy része, amelyet 3D -ben nyomtattak ki. Bemutatom az ESP32 PWM funkcióját, amely alkalmas elektromos motorok vezérlésére. Ezt egyenáramú motorban használják. Az MCPWM (Motor Control PWM) működését egy gyakorlati alkalmazásban is bemutatom.
Ebben a projektben ESP32 LoRa -t használtam, és fontosnak tartom itt megjegyezni, hogy ennek a mikrovezérlőnek két blokkja van. Ezek a blokkok három -három motor vezérlésére képesek. Így akár hat motort is vezérelhet PWM -el, mindegyiket függetlenül. Ez azt jelenti, hogy az itt használt vezérlő nem a szabvány (ami valami hasonló az Arduino -hoz). Ehelyett a vezérlés maga a chip, amely nagy rugalmasságot garantál az ESP32 számára a motorvezérlés tekintetében.
1. lépés: Demonstráció
2. lépés: PWM motorvezérlés
Általános diagram:
• Az ESP32 MCPWM funkciója különféle típusú villanymotorok vezérlésére használható. Két egysége van.
• Minden egység három PWM kimeneti párral rendelkezik.
• Minden kimeneti A / B pár szinkronizálható a 0, 1 vagy 2 szinkronizálási időzítők egyikével.
• Egy időzítő több PWM kimeneti pár szinkronizálására használható
Teljes diagram:
• Minden egység képes a bemeneti jelek szinkronizációs jelekként történő gyűjtésére is;
• Hibajelek érzékelése túláram vagy motor túlfeszültség esetén;
• Kérjen visszajelzést a CAPTURE SIGNALS, például a motor helyzetéről
3. lépés: Felhasznált erőforrások
• Jumperek a csatlakoztatáshoz
• Heltec Wifi LoRa 32
• Közös DC motor
• H híd - L298N
• USB kábel
• Protoboard
• Tápegység
4. lépés: ESP 32 Dev Kit - Pinout
5. lépés: Turbina szerelés
6. lépés: Áramkör - csatlakozások
7. lépés: Mérés oszcilloszkóppal
8. lépés: Forráskód
Fejléc
#include // Não é välttäá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 kijelző (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
Beállít
void setup () {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 deklaráció nem jön código mcpwm_gpio_init (MCPWM_UNIT_0, MCPIO_P0M, // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT deklaráció nem jön létre cc migo mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // frequência = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (munkaciklus) do PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (munkaciklus) do PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Ciclo de trabalho em nível alto definiálása // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // PWM0A és PWM0B com definiálása konfigurációként}
Funkciók
// 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_swo_cm) (0, 1 ou 2), Operador (A vagy B)); => Desliga o sinal do MCPWM no Operator 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)); => Konfiguráld a PWM -et az A operátor (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)); => define o nível do ciclo de trabalho (alto ou baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); // Megjegyzés: 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 (Unidtage, 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); // PWM konfigurálása a B operátorhoz (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) mmw_mw // 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}
Hurok
void loop () {// Move o motor no sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); késleltetés (2000); // Para motoros csiszolt_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); késleltetés (2000); // Move o motor no sentido antihorário brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); késleltetés (2000); // Para motoros csiszolt_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); késleltetés (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)); késleltetés (200); } // Desaceleração i de 100 a 1 delay (5000); for (int i = 100; i> = 10; i-) {ecsetelt_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); késleltetés (100); } késleltetés (5000); }
9. lépés: Töltse le a fájlokat
ÉN NEM
RAJZ
Ajánlott:
Automatikus gél alkoholos adagoló Esp32: 9 lépésben
Automatikus gél alkoholos adagoló Esp32-vel: Az oktatóanyagban látni fogjuk, hogyan lehet teljes prototípust készíteni, automatikus gél-alkohol-adagolót összeállítani az esp32-vel, amely magában foglalja a lépésről lépésre történő összeszerelést, az elektronikus áramkört és a forráskódot is, lépésről lépésre elmagyarázva lépés
Arcfelismerés a Raspberry Pi 4B készüléken 3 lépésben: 3 lépésben
Arcfelismerés a Raspberry Pi 4B készüléken 3 lépésben: Ebben az utasításban az arcfelismerést fogjuk elvégezni a Raspberry Pi 4 rendszeren Shunya O/S alkalmazással a Shunyaface Library segítségével. A Shunyaface egy arcfelismerő/felismerő könyvtár. A projekt célja a leggyorsabb észlelési és felismerési sebesség elérése a
PANTILT kamera ESP32: 9 lépésben
PANTILT kamera ESP32 -vel: Ma bemutatom a PAN TILT -et, amely egy olyan eszköz, amely lehetővé teszi a kamera mozgását felfelé, lefelé és oldalra. Magam készítettem ezt az eszközt 3D nyomtatott alkatrészeken keresztül, két szervó és az ESP32 segítségével, ami lehetővé teszi, hogy
A NODEMcu USB port nem működik? Töltse fel a kódot USB használatával TTL (FTDI) modulba mindössze 2 lépésben: 3 lépésben
A NODEMcu USB port nem működik? Töltse fel a kódot az USB to TTL (FTDI) modul használatával mindössze 2 lépésben: Elege van abból, hogy sok vezetéket csatlakoztat USB -ről TTL modulra a NODEMcu -hoz, kövesse ezt az utasítást, és csak két lépésben töltse fel a kódot. Ha a A NODEMcu nem működik, akkor ne essen pánikba. Csak az USB -illesztőprogram -chip vagy az USB -csatlakozó
Elektromos robogó szétszerelése elektromos alkatrészekhez: 6 lépés
Elektromos robogó szétszerelése elektromos alkatrészekhez: Ez az a módszer, amellyel szétszedhetek egy használt álló elektromos robogót az elektromos mountainboard építéséhez szükséges alkatrészekhez. (Az ötlet innen származik: > > https: // www .instructables.com/id/Electric-Mountain-Board/) Az ok, amiért használtan vettem, az