Mục lục:
- Bước 1: Trình diễn
- Bước 2: Điều khiển động cơ PWM
- Bước 3: Tài nguyên được sử dụng
- Bước 4: Bộ công cụ dành cho nhà phát triển ESP 32 - Sơ đồ chân
- Bước 5: Gắn tuabin
- Bước 6: Mạch - Kết nối
- Bước 7: Đo trên Máy hiện sóng
- Bước 8: Mã nguồn
- Bước 9: Tải xuống tệp
Video: Tua bin điện với ESP32: 9 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Hôm nay, tôi sẽ thảo luận về tuabin điện với ESP32. Bộ lắp ráp có một phần được in 3D. Tôi sẽ trình bày một chức năng PWM của ESP32 phù hợp để điều khiển động cơ điện. Điều này sẽ được sử dụng trong động cơ DC. Tôi cũng sẽ chứng minh hoạt động của MCPWM (PWM điều khiển động cơ) này trong một ứng dụng thực tế.
Tôi đã sử dụng ESP32 LoRa trong dự án này và tôi nghĩ điều quan trọng cần lưu ý ở đây là bộ vi điều khiển này có hai khối bên trong nó. Các khối này có khả năng điều khiển ba động cơ mỗi khối. Do đó, có thể điều khiển tối đa sáu động cơ với PWM, tất cả đều độc lập. Điều này có nghĩa là điều khiển tôi sẽ sử dụng ở đây không phải là tiêu chuẩn (tương tự như Arduino). Thay vào đó, điều khiển là chính con chip, điều này đảm bảo cho ESP32 rất linh hoạt trong việc điều khiển động cơ.
Bước 1: Trình diễn
Bước 2: Điều khiển động cơ PWM
Sơ đồ chung:
• Chức năng MCPWM của ESP32 có thể được sử dụng để điều khiển nhiều loại động cơ điện khác nhau. Nó có hai đơn vị.
• Mỗi thiết bị có ba cặp đầu ra PWM.
• Mỗi cặp A / B đầu ra có thể được đồng bộ hóa với một trong ba bộ định thời đồng bộ 0, 1 hoặc 2.
• Một Bộ hẹn giờ có thể được sử dụng để đồng bộ hóa nhiều hơn một cặp đầu ra PWM
Sơ đồ đầy đủ:
• Mỗi thiết bị cũng có khả năng thu thập tín hiệu đầu vào dưới dạng DẤU HIỆU ĐỒNG BỘ;
• Phát hiện các DẤU HIỆU LỖI cho quá dòng hoặc quá áp động cơ;
• Nhận phản hồi bằng CÁC TÍN HIỆU CAPTURE, chẳng hạn như vị trí của Động cơ
Bước 3: Tài nguyên được sử dụng
• Jumper để kết nối
• Heltec Wifi LoRa 32
• Động cơ DC chung
• Cầu H - L298N
• Cáp USB
• Protoboard
• Nguồn cấp
Bước 4: Bộ công cụ dành cho nhà phát triển ESP 32 - Sơ đồ chân
Bước 5: Gắn tuabin
Bước 6: Mạch - Kết nối
Bước 7: Đo trên Máy hiện sóng
Bước 8: Mã nguồn
Tiêu đề
#include // Não é cần thiết sử dụng Arduino IDE # include "driver / mcpwm.h" // inclui a biblioteca "Motor Control PWM" nativa do ESP32 #include // N Cần thiết 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 Màn hình SSD1306 (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
Cài đặt
void setup () {Serial.begin (115200); display.init (); //display.flipScreenVerently (); // Vira một 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 khai báo no começo do código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0); // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT khai báo không có começo do código mcpwm_gpio_init_OUT_PWM_UNIT_0, MCPWM0BM0, MCPWM0B; mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // thường xuyênência = 500Hz, pwm_config.cmpr_a = 0; // Ciclo de trabalho (chu kỳ nhiệm vụ) do PWMxA = 0 pwm_config.cmpr_b = 0; // Ciclo de trabalho (chu kỳ nhiệm vụ) do PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; // Đoạn MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // Xác định ciclo de trabalho em nível alto // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // Xác định com PWM0A & PWM0B là configurações acima}
Chức năng
// Função que configura o MCPWM operador A (Unidade, Timer, Porcentagem (ciclo de trabalho)) static void brushed_motor_ntic (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, float duty_cycle) {// mcpwaderom doMcpwm_low 1 (0, 1 ou 2), Toán tử (A ou B)); => Desliga o sinal do MCPWM no Operador B (Xác định 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)); => Configura a porcentagem do PWM no Operador A (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)); => xác định 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); // Nota: 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 MCPhoWM Docent operador B (Unidade) 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); // Configura a porcentagem do PWM no Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // định nghĩa 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_set_t time_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}
Vòng
void loop () {// Di chuyển o động cơ không có sentido horário brushed_motor_osystem (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); chậm trễ (2000); // Para o động cơ brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); chậm trễ (2000); // Di chuyển o động cơ không có sentido antihorário brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); chậm trễ (2000); // Para o động cơ brushed_motor_stop (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); chậm trễ (2000); // Aceleracao i de 1 a 100 for (int i = 10; i <= 100; i ++) {brushed_motor_osystem (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (Chuỗi (i)); chậm trễ (200); } // Desaceleração i de 100 a 1 delay (5000); for (int i = 100; i> = 10; i -) {brushed_motor_osystem (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (Chuỗi (i)); chậm trễ (100); } delay (5000); }
Bước 9: Tải xuống tệp
NS
ĐANG VẼ
Đề xuất:
Tua bin gió: 7 bước (có hình ảnh)
Wind Turbine: Xin chào các bạn! Trong phần Có thể hướng dẫn này, tôi sẽ hướng dẫn bạn cách chế tạo Tua bin gió mô hình được làm từ các bộ phận tái chế hoặc dễ tiếp cận. Nó sẽ có thể tạo ra khoảng 1,5 vôn và tự động điều chỉnh để nó luôn
Bộ chuyển đổi Boost cho Tua bin gió nhỏ: 6 bước
Bộ chuyển đổi tăng cường cho tuabin gió nhỏ: Trong bài viết cuối cùng của tôi về bộ điều khiển theo dõi điểm công suất tối đa (MPPT), tôi đã chỉ ra một phương pháp tiêu chuẩn để khai thác năng lượng đến từ một nguồn biến đổi như tuabin gió và sạc pin. Máy phát điện tôi đã sử dụng là động cơ bước Nema
Arduino Wattmeter - Điện áp, dòng điện và mức tiêu thụ điện: 3 bước
Arduino Wattmeter - Điện áp, dòng điện và mức tiêu thụ điện: Một thiết bị có thể được sử dụng để đo điện năng tiêu thụ. Mạch này cũng có thể hoạt động như một Vôn kế và Ampe kế để đo điện áp và dòng điện
Tua bin gió chai nước tự làm: 5 bước (có hình ảnh)
Tua bin gió chai nước tự làm: Mô tả cơ bản Để hiểu cách hoạt động của tuabin gió, điều quan trọng là phải hiểu cách hoạt động của năng lượng gió ở mức độ cơ bản. Gió là một dạng năng lượng mặt trời vì mặt trời là nguồn tạo ra gió bởi nhiệt lượng không đồng đều trên khí quyển, ho
Phiên bản lớn của điện trở Smd 1 Ohm cung cấp điện trở 1 Ohm mà không cần sử dụng bất kỳ linh kiện điện tử nào.: 13 bước
Phiên bản lớn của điện trở Smd 1 Ohm cung cấp điện trở 1 Ohm mà không cần sử dụng bất kỳ linh kiện điện tử nào.: Trong thực tế, điện trở smd rất nhỏ với kích thước gần 0,8mmx1,2mm. Ở đây, tôi sẽ làm một điện trở smd lớn, rất lớn so với điện trở smd ngoài đời thực