Мазмуну:
- 1 -кадам: Демонстрация
- 2 -кадам: PWM Motor Control
- 3 -кадам: Колдонулган ресурстар
- 4 -кадам: ESP 32 Dev Kit - Pinout
- 5 -кадам: Турбинаны орнотуу
- 6 -кадам: Circuit - Connections
- 7 -кадам: Осциллографта өлчөө
- 8 -кадам: Булак коду
- 9 -кадам: Файлдарды жүктөп алыңыз
Video: Электр турбинасы ESP32 менен: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бүгүн мен ESP32 менен электр турбинасын талкуулайм. Жыйындын 3D форматында басылган бөлүгү бар. Мен электр кыймылдаткычтарын башкарууга ылайыктуу ESP32нин PWM функциясын сунуштайм. Бул DC моторунда колдонулат. Мен ошондой эле бул MCPWM (Motor Control PWM) ишин практикалык колдонмодо көрсөтөм.
Мен бул долбоордо ESP32 LoRa колдондум жана бул микроконтроллердин ичинде эки блок бар экенин белгилей кетүү маанилүү деп ойлойм. Бул блоктор ар бири үч моторду башкарууга жөндөмдүү. Ошентип, PWM менен алтыга чейин кыймылдаткычты башкарууга болот, бардыгы өз алдынча. Бул мен колдоно турган көзөмөл стандарт эмес экенин билдирет (бул Arduinoго окшош). Тескерисинче, көзөмөл микросхеманын өзү, бул ESP32ге моторду башкарууга карата ийкемдүүлүктү кепилдейт.
1 -кадам: Демонстрация
2 -кадам: PWM Motor Control
Жалпы диаграмма:
• ESP32нин MCPWM функциясы электр кыймылдаткычтарынын ар кандай түрлөрүн башкаруу үчүн колдонулушу мүмкүн. Анын эки бирдиги бар.
• Ар бир блокто үч PWM чыгаруу жуптары бар.
• Ар бир A / B жуп 0, 1 же 2 үч синхрондоштуруу таймеринин бири менен синхрондоштурулушу мүмкүн.
• Бир Таймерди бир нече PWM чыгаруу түгөйүн синхрондоштуруу үчүн колдонсо болот
Толук диаграмма:
• Ар бир бирдик синхрондоштуруу белгилери катары киргизүү сигналдарын чогултууга да жөндөмдүү;
• АШЫК БЕЛГИЛЕРДИ ашыкча токтун же мотордун ашыкча чыңалуусун аныктоо;
• CAPTURE SIGNALS менен пикир алуу, мисалы, кыймылдаткычтын абалы
3 -кадам: Колдонулган ресурстар
• Байланыш үчүн секиргичтер
• Heltec Wifi LoRa 32
• Жалпы DC мотору
• Көпүрө H - L298N
• USB кабели
• Protoboard
• Электр камсыздоо
4 -кадам: ESP 32 Dev Kit - Pinout
5 -кадам: Турбинаны орнотуу
6 -кадам: Circuit - Connections
7 -кадам: Осциллографта өлчөө
8 -кадам: Булак коду
Header
#include // Não é милдário caso use Arduino IDE #include "driver/mcpwm.h" // "Motor Control PWM" библиотекасынын ичинде ESP32 #кошуу // 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 дисплей (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" #deine GPIO_PWM0A_OUT 12 // Declara GPIO 12 como PWM0A #define GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
Жайгашуу
void setup () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Виртуалдык экранды көрсөтүү.clear (); // эксклюзивдүү дисплей.setTextAlignment (TEXT_ALIGN_LEFT); // Arial 16 үчүн display font.setFont (ArialMT_Plain_16); // mcpwm_gpio_init (unidade PWM 0, saida A, porta GPIO) => InstCPia or MCPWM0A pino GPIO_PWM0A_OUT декларациясы жок ccdigo mcpwm_gpio_init (MCPWM_UNIT_0, GPO_MWA0), // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => InstCPia or MCPWM0B no GPino_PWM0B_OUT декларациясы mcpwm_gpio_init (MCPWM_UNIT_0, MCP_PW_0B) mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // жыштык = 500Гц, pwm_config.cmpr_a = 0; // Ciclo de trabalho (милдет цикли) PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (милдет цикли) PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0 үчүн; // Төмөнкү шартта аныктоо // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // PWM0A & PWM0B com конфигурациясын acima} катары аныктоо
Функциялар
// MCPWM операторунун A конфигурациясы (Unidade, Timer, Porcentagem (ciclo de trabalho)) (0, 1 ou 2), Operador (A ou B)); => MCPWM жок дегенде Operator Bди аныктоо (Baixo синалын аныктоо) mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // mcpwm_set_duty (unidade PWM (0 ou 1), таймердин убактысы (0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% PWM)); => Конфигурациялоо PWM жок Operador A (Ciclo de trabalho) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_A, duty_cycle); // mcpwm_set_duty_tyoe (PWM (0 ou 1), таймердин убактысы (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alto ou baixo)); => ciclo de trabalho (alt ou baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0) аныктоо; // Nota: Chame essa função toda que to chamado for chamado "mcpwm_set_signal_low" oc "mcpwm_set_signal_high" cflo de trabalho configurado anteriormente} // Функциялардын конфигурациясы MCPWM Do B (Porido, Timer) 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); // MCPWM жок Operator A (Sinal Em Baixo деп аныктоо) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_B, duty_cycle); // Конфигурация PWM жок Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // аныктоо ciclo de trabalho (alto ou baixo)} // Funccão que mCPWM de ambos os Operadores static void brushed_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_mn_m_m_m_) // MCPWM жок дегенде бир оператор жок mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // MCPWM жок операциялар B}
Loop
void loop () {// Move it motor no sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); кечигүү (2000); // Мотордун щеткалуу_мотору (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); кечигүү (2000); // Орнотуу мотор жок sentiho antihorário brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); кечигүү (2000); // Мотордун щеткалуу_мотору (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); кечигүү (2000); // Aceleracao мен 1 a 100 үчүн (int i = 10; i <= 100; i ++) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); кечигүү (200); } // Desaceleração мен 100 жана 1 кечигүү (5000); үчүн (int i = 100; i> = 10; i-) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); кечиктирүү (100); } кечигүү (5000); }
9 -кадам: Файлдарды жүктөп алыңыз
МЕН ЖОК
СҮРӨТ
Сунушталууда:
Шамал турбинасы: 7 кадам (сүрөттөр менен)
Шамал турбинасы: Баарыңарга салам! Бул Нускамада мен сизге кайра иштетилген же оңой жетүүчү бөлүктөрдөн жасалган Моделдик шамал турбинасынын курулушу боюнча жетекчилик кылам. Ал болжол менен 1,5 вольтту өндүрө алат жана автоматтык түрдө өзүн өзү тууралайт, ошондуктан дайыма
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен: 11 кадам (Сүрөттөр менен)
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен которулат: Долбоор: 200 чарчы фут офис батарея менен иштеши керек. Офис ошондой эле бул система үчүн зарыл болгон бардык контроллерлерди, батареяларды жана компоненттерди камтышы керек. Күн жана шамал энергиясы батареяларды заряддайт. Кичине гана көйгөй бар
Кайра иштетүүдөн жасалган жакшыртылган электростатикалык турбинасы: 16 кадам (сүрөттөр менен)
Кайра иштетүүдөн жасалган жакшыртылган электростатикалык турбинасы: Бул толугу менен чийилген, электростатикалык турбинасы (EST), жогорку чыңалуудагы түз токту (HVDC) жогорку ылдамдыкка, айлануучу кыймылга айлантат. Менин долбоорум атмосферадан электр энергиясы менен иштеген Джефименко Корона Моторунан шыктандырылган
DIY суу бөтөлкөсү шамал турбинасы: 5 кадам (сүрөттөр менен)
DIY суу бөтөлкөсү шамал турбинасы: Негизги сүрөттөмө Шамал турбинасы кандай иштээрин түшүнүү үчүн шамал энергиясы негизги деңгээлде кандай иштээрин түшүнүү маанилүү. Шамал - бул күн энергиясынын бир түрү, анткени күн - атмосферанын бирдей эмес ысыгынан шамал жаратуучу булак
220Втан 24В 15Ага чейин электр менен камсыздоо - Электр энергиясын которуштуруу - IR2153: 8 кадам
220Втан 24В 15Ага чейин электр менен камсыздоо | Электр энергиясын которуштуруу | IR2153: Салам жигит, бүгүн биз 220Втан 24В 15Ага чейин электр менен камсыз кылабыз | Электр энергиясын которуштуруу | ATX электр булагынан IR2153