Съдържание:
- Стъпка 1: Демонстрация
- Стъпка 2: ШИМ управление на двигателя
- Стъпка 3: Използвани ресурси
- Стъпка 4: ESP 32 Dev Kit - Pinout
- Стъпка 5: Монтаж на турбина
- Стъпка 6: Верига - Връзки
- Стъпка 7: Измерване на осцилоскоп
- Стъпка 8: Изходен код
- Стъпка 9: Изтеглете файловете
Видео: Електрическа турбина с ESP32: 9 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Днес ще обсъждам електрическа турбина с ESP32. Монтажът има част, която е отпечатана в 3D. Ще представя PWM функция на ESP32, която е подходяща за управление на електродвигатели. Това ще се използва в DC двигател. Ще демонстрирам и работата на този MCPWM (PWM за управление на двигателя) в практическо приложение.
Използвах ESP32 LoRa в този проект и мисля, че тук е важно да се отбележи, че този микроконтролер има два блока вътре. Тези блокове могат да управляват по три двигателя всеки. По този начин е възможно да се управляват до шест двигателя с ШИМ, всички независимо. Това означава, че контролът, който ще използвам тук, не е стандарт (който е нещо подобно на Arduino). Вместо това контролът е самият чип, който гарантира на ESP32 много гъвкавост по отношение на управлението на двигателя.
Стъпка 1: Демонстрация
Стъпка 2: ШИМ управление на двигателя
Обща диаграма:
• Функцията MCPWM на ESP32 може да се използва за управление на различни видове електродвигатели. Разполага с две единици.
• Всяко устройство има три изходни двойки ШИМ.
• Всяка изходна A / B двойка може да бъде синхронизирана с един от трите таймера за синхронизация 0, 1 или 2.
• Един таймер може да се използва за синхронизиране на повече от една ШИМ изходна двойка
Пълна диаграма:
• Всяко устройство може също да събира входни сигнали като СИНХРОНИЗАЦИОННИ ЗНАКИ;
• Открийте ЗНАКИТЕ НА НЕИЗПРАВНОСТ за свръхток или пренапрежение на двигателя;
• Получавайте обратна връзка със СИГНАЛИ ЗА ЗАХВАНЕ, като например позицията на двигателя
Стъпка 3: Използвани ресурси
• Джъмпери за свързване
• Heltec Wifi LoRa 32
• Общ DC мотор
• Мост H - L298N
• USB кабел
• Protoboard
• Захранване
Стъпка 4: ESP 32 Dev Kit - Pinout
Стъпка 5: Монтаж на турбина
Стъпка 6: Верига - Връзки
Стъпка 7: Измерване на осцилоскоп
Стъпка 8: Изходен код
Заглавка
#include // Не е необходимо Caso да използва Arduino IDE #включва "драйвер/mcpwm.h" // включва библиотека "PWM за управление на двигателя" до ESP32 #include // Необходими апени за Arduino 1.6.5 e заден #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 display (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
Настройвам
void setup () {Serial.begin (115200); display.init (); //display.flipScreenVertical (); // Vira a tela verticalmente display.clear (); // ajusta o alinhamento за esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // добавяне на фон за 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 декларира няма começo do codigo mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0A; MCPWM0A); // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B без pino GPIO_PWM0B_OUT декларира няма começo do código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0B0_MPWM0B0_MPWM0B0_MPWM0B0_MPWM0B0_MP_0_MP_0_MP_0_M0_MP_0_MP_0_MP_0_MP_0_MP_0_MP_0_MP_0_MPWM0_0; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // честота = 500Hz, 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 асиметрично 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 като конфигурация acima}
Функции
// Функционална конфигурация за MCPWM оператор A (Unidade, Timer, Porcentagem (ciclo de trabalho)) static void brushed_motor_forward (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) {// mc (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 (универсална PWM (0 ou 1), Numero do timer (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), Numero do timer (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alto ou baixo)); => дефинирайте нивото на цикло де трабалхо (alto ou baixo) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); // Забележка: 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 (Unidade,, статична празнота 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 без Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // дефиниране на нивото за цикло на трабалхо (alto ou baixo)} // Функции за изчакване за MCPWM де ambos os Operadores статична празнота brushed_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) {mcpwm_m Timer_num // 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}
Цикъл
void loop () {// Преместване на мотора без усещане horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); забавяне (2000); // Параметър за мотор brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); забавяне (2000); // Преместване на мотор без сензорен антихорион brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); забавяне (2000); // Параметър за мотор brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); забавяне (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 (низ (i)); забавяне (200); } // Desaceleração i de 100 a 1 закъснение (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 стъпки (със снимки)
Подобрена електростатична турбина, направена от рециклируеми материали: Това е напълно изградена от надраскване, електростатична турбина (EST), която преобразува постоянен ток с високо напрежение (HVDC) във високоскоростно, въртящо се движение. Моят проект е вдъхновен от Jefimenko Corona Motor, който се задвижва от електричество от атмосферата
3D печатна JET ТУРБИНА: 3 стъпки
3D печатна JET TURBINE: Здравейте всички, затова направих тази супер силна реактивна турбина или модел двигател, който се управлява от 1400kv BLDC MOTOR. Този проект е доста прост, тъй като просто трябва първо да отпечатаме 3D тялото и след това да ги съберем заедно, свържете ESC с bldc мотор и стартирайте
Направи си сам вятърна турбина с бутилка вода: 5 стъпки (със снимки)
Вятърна турбина за бутилки с вода: Основно описание За да разберете как работи вятърната турбина, е важно да разберете как работи енергията на вятъра на основно ниво. Вятърът е форма на слънчева енергия, защото слънцето е източникът, който създава вятър от неравномерната топлина в атмосферата, но