Мазмұны:
- 1 -қадам: демонстрация
- 2 -қадам: PWM қозғалтқышты басқару
- 3 -қадам: Қолданылған ресурстар
- 4 -қадам: ESP 32 Dev Kit - Pinout
- 5 -қадам: турбиналық монтаж
- 6 -қадам: Схема - Қосылымдар
- 7 -қадам: Осциллографта өлшеу
- 8 -қадам: бастапқы код
- 9 -қадам: файлдарды жүктеңіз
Бейне: ESP32 бар электр турбинасы: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бүгін мен ESP32 көмегімен электр турбинасын талқылаймын. Жинақта 3D форматында басылған бөлігі бар. Мен электр қозғалтқыштарын басқаруға жарамды ESP32 PWM функциясын ұсынамын. Бұл тұрақты ток қозғалтқышында қолданылады. Мен сонымен қатар осы MCPWM (Motor Control PWM) жұмысын практикалық түрде көрсетемін.
Мен бұл жобада ESP32 LoRa қолдандым және бұл микроконтроллердің ішінде екі блок бар екенін ескеру маңызды деп ойлаймын. Бұл блоктар әрқайсысы үш қозғалтқышты басқаруға қабілетті. Осылайша, PWM көмегімен алты қозғалтқышты басқаруға болады, барлығы дербес. Бұл мен қолданатын басқару стандарты емес екенін білдіреді (бұл Arduino -ға ұқсас). Оның орнына басқару - бұл чиптің өзі, ол ESP32 қозғалтқышты басқаруға қатысты икемділікке кепілдік береді.
1 -қадам: демонстрация
2 -қадам: PWM қозғалтқышты басқару
Жалпы диаграмма:
• ESP32 MCPWM функциясын әр түрлі электр қозғалтқыштарын басқару үшін пайдалануға болады. Оның екі бірлігі бар.
• Әр қондырғыда PWM үш шығыс жұбы бар.
• Әр шығыс А / В жұбын 0, 1 немесе 2 үш синхрондау таймерінің бірімен синхрондауға болады.
• Бір Таймерді бірнеше PWM шығыс жұбын синхрондау үшін пайдалануға болады
Толық диаграмма:
• Әрбір қондырғы кіріс сигналдарын синхронизация белгісі ретінде жинай алады;
• Қате белгілерін шамадан тыс ток немесе қозғалтқыштың кернеуін анықтау;
• Қозғалтқыштың орналасуы сияқты CAPTURE SIGNALS арқылы кері байланыс алыңыз
3 -қадам: Қолданылған ресурстар
• Қосылу үшін секіргіштер
• Heltec Wifi LoRa 32
• Тұрақты тұрақты ток қозғалтқышы
• H көпірі - L298N
• USB кабелі
• Протобон тақтасы
• Нәр беруші
4 -қадам: ESP 32 Dev Kit - Pinout
5 -қадам: турбиналық монтаж
6 -қадам: Схема - Қосылымдар
7 -қадам: Осциллографта өлшеу
8 -қадам: бастапқы код
Тақырып
#қосу // Arduino IDE пайдалану қажет емес #«драйвер/mcpwm.h» қосады // «PWM қозғалтқышты басқару» библиотекасын қосқанда, ESP32 -ге қосылады // Arduino 1.6.5 немесе 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 #deftine RST 16 SSD1306 display (0x3c, SDA, SCL, RST); // Дисплейде «көрсету» #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.setFont (ArialMT_Plain_16) үшін қаріптер; // mcpwm_gpio_init (бірыңғай PWM 0, saida A, GPIO порталы) => MCPWM0A орнатпауы GPIO_PWM0A_OUT жоқ, ccdigo mcpwm_gpio_init (MCPWM_UNIT_0, MCP_PO_00), // mcpwm_gpio_init (бірыңғай PWM 0, saida B, GPIO портасы) => MCPWM0B құралы жоқ GPIO_PWM0B_OUT декларациясы келмейді mcpwm_gpio_init (MCPWM_UNIT_0, MCPWP0B) 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 бойынша; // Ciclo de trabalho em nível alto анықтаңыз // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // PWM0A & PWM0B com -ді конфигурация ретінде анықтаңыз}
Функциялар
// MCPWM операторының функциялары A (Unidade, Timer, Porcentagem (ciclo de trabalho)) static void brushed_motor_wardward (0, 1 ou 2), Operador (A ou B)); => MCPWM операциялық емес операциялық жүйені анықтау (Baixo -ді анықтау) mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // mcpwm_set_duty (біржақты PWM (0 ou 1), Número do timer (0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% PWM)); => PWM жоқ Operator A (Ciclo de trabalho) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_A, duty_cycle) жасайтын PWM конфигурациясы; // mcpwm_set_duty_tyoe (бірыңғай PWM (0 ou 1), Número do timer (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (альто ou baixo)); => ciclo de trabalho (alto ou baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0) анықтаңыз; // Ескерту: «mcpwm_set_signal_low» немесе «mcpwm_set_signal_high» функциялары үшін маңызды функциялар} // MCPWM операциялық функциялары B (Unidade, 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 операциялық операторы жоқ (Baixo анықтаңыз) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_B, duty_cycle); // PWM жоқ Operator 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)} // Операторлардағы MCPWM операциялық жүйенің бос жұмыс істемейтіні (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_mn_m_n_m) // MCPWM жоқ операциялық операциялар тізбесі mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // MCPWM операциялық операторы жоқ}
Цикл
void loop () {// моторсыз жылжытыңыз sentaro horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); олед («50»); кешіктіру (2000); // Қозғалтқыштың қозғалтқышын тоқтату (MCPWM_UNIT_0, MCPWM_TIMER_0); oled («0»); кешіктіру (2000); // моторы жоқ моторды артқа жылжытыңыз (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); олед («25»); кешіктіру (2000); // Қозғалтқыштың қозғалтқышын тоқтату (MCPWM_UNIT_0, MCPWM_TIMER_0); oled («0»); кешіктіру (2000); // Aceleracao i de a a 100 for (int i = 10; i <= 100; i ++) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (Жол (i)); кешіктіру (200); } // Desaceleração 100 кешіктіру (5000); for (int i = 100; i> = 10; i-) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (Жол (i)); кешіктіру (100); } кешіктіру (5000); }
9 -қадам: файлдарды жүктеңіз
МЕН ЖОҚ
СУРЕТ
Ұсынылған:
Жел турбинасы: 7 қадам (суреттермен)
Жел турбинасы: Сәлем баршаңызға! Бұл нұсқаулықта мен сізге қайта өңделген немесе оңай қол жетімді бөлшектерден жасалған жел турбинасының үлгісін құруға көмектесемін. Ол шамамен 1,5 вольтты шығара алады және автоматты түрде өзін реттей алады, сондықтан ол әрқашан
Батареямен жұмыс істейтін кеңсе. Күн жүйесі шығыс/батыс автоматты түрде ауысатын күн панельдері мен жел турбинасы: 11 қадам (суреттермен)
Батареямен жұмыс істейтін кеңсе. Шығыс/Батыс күн панельдері мен жел турбинасы автоматты түрде ауысатын күн жүйесі: Жоба: 200 шаршы метрлік кеңсе батареямен жұмыс істеуі керек. Сонымен қатар кеңседе осы жүйеге қажетті барлық контроллерлер, батареялар мен компоненттер болуы керек. Күн мен жел энергиясы батареяларды зарядтайды. Аз ғана мәселе бар
Қайта өңдеуден жасалған жақсартылған электростатикалық турбинасы: 16 қадам (суреттермен)
Қайта өңдеуден жасалған жақсартылған электростатикалық турбинасы: Бұл жоғары вольтты тұрақты токты (ТЖҚ) жоғары жылдамдықтағы айналмалы қозғалысқа түрлендіретін, мүлде сызаттан жасалған, электростатикалық турбинасы (ЭСТ). Менің жобам атмосферадан келетін электр энергиясымен жұмыс істейтін Джефименко Корона Моторынан шабыттанды
DIY су бөтелкесіндегі жел турбинасы: 5 қадам (суреттермен)
DIY су бөтелкесіндегі жел турбинасы: негізгі сипаттамасы Жел қондырғысының қалай жұмыс істейтінін түсіну үшін жел энергиясының негізгі деңгейде қалай жұмыс істейтінін түсіну қажет. Жел - бұл күн энергиясының бір түрі, себебі күн - атмосферадағы біркелкі емес жылу әсерінен жел туғызатын
Lenz2 жел турбинасы: 12 қадам (суреттермен)
Lenz2 жел турбинасы: Бұл нұсқаулық сізге үйдің айналасындағы материалдардан Lenz2 жел қондырғысын қалай жасау керектігін көрсетеді. Дизайнды Windstuffnow.com сайтынан Эд Ленц әзірледі және тексерді: http://www.windstuffnow.com/main/lenz2_turbine.htmThe Lenz2 VAWT (Ve