Daftar Isi:
- Langkah 1: Demonstrasi
- Langkah 2: Kontrol Motor PWM
- Langkah 3: Sumber Daya yang Digunakan
- Langkah 4: ESP 32 Dev Kit - Pinout
- Langkah 5: Pemasangan Turbin
- Langkah 6: Sirkuit - Koneksi
- Langkah 7: Pengukuran pada Osiloskop
- Langkah 8: Kode Sumber
- Langkah 9: Unduh File
Video: Turbin Listrik Dengan ESP32: 9 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Hari ini, saya akan membahas turbin listrik dengan ESP32. Perakitan memiliki bagian yang dicetak dalam 3D. Saya akan menyajikan fungsi PWM dari ESP32 yang cocok untuk mengendalikan motor listrik. Ini akan digunakan dalam motor DC. Saya juga akan mendemonstrasikan pengoperasian MCPWM (Motor Control PWM) ini dalam aplikasi praktis.
Saya menggunakan ESP32 LoRa dalam proyek ini, dan saya pikir penting untuk dicatat di sini bahwa mikrokontroler ini memiliki dua blok di dalamnya. Blok ini mampu mengendalikan tiga motor masing-masing. Dengan demikian, dimungkinkan untuk mengontrol hingga enam motor dengan PWM, semuanya secara mandiri. Ini berarti bahwa kontrol yang akan saya gunakan di sini bukanlah standar (yang mirip dengan Arduino). Sebaliknya, kontrolnya adalah chip itu sendiri, yang menjamin banyak fleksibilitas ESP32 sehubungan dengan kontrol motor.
Langkah 1: Demonstrasi
Langkah 2: Kontrol Motor PWM
Diagram Umum:
• Fungsi MCPWM pada ESP32 dapat digunakan untuk mengontrol berbagai jenis motor listrik. Ini memiliki dua unit.
• Setiap unit memiliki tiga pasangan output PWM.
• Setiap pasangan A / B keluaran dapat disinkronkan dengan salah satu dari tiga pengatur waktu sinkronisasi 0, 1, atau 2.
• Satu Timer dapat digunakan untuk menyinkronkan lebih dari satu pasangan output PWM
Diagram Lengkap:
• Setiap unit juga mampu mengumpulkan sinyal input sebagai TANDA SYNCHRONISATION;
• Mendeteksi TANDA KESALAHAN untuk arus lebih atau tegangan lebih motor;
• Dapatkan umpan balik dengan SINYAL TANGKAP, seperti posisi Mesin
Langkah 3: Sumber Daya yang Digunakan
• Jumper untuk koneksi
• Heltec Wifi LoRa 32
• Motor DC biasa
• Jembatan H - L298N
• Kabel USB
• Protoboard
• Sumber Daya listrik
Langkah 4: ESP 32 Dev Kit - Pinout
Langkah 5: Pemasangan Turbin
Langkah 6: Sirkuit - Koneksi
Langkah 7: Pengukuran pada Osiloskop
Langkah 8: Kode Sumber
Tajuk
#sertakan //Tidak perlu menggunakan Arduino IDE#sertakan "driver/mcpwm.h" //sertakan biblioteca "Motor Control PWM" nativa do ESP32 #include // Diperlukan apenas untuk 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 display SSD1306 (0x3c, SDA, SCL, RST); //Instance dan ajustando os pinos lakukan objeto "display" #define GPIO_PWM0A_OUT 12 //Declara GPIO 12 como PWM0A #define GPIO_PWM0B_OUT 14 //Declara GPIO 14 como PWM0B
Mempersiapkan
void setup() { Serial.begin(115200); tampilan.init(); //display.flipScreenVertikal(); //Vira a tela verticalmente display.clear(); //ajusta o alinhamento untuk esquerda display.setTextAlignment(TEXT_ALIGN_LEFT); //ajusta a fonte untuk Arial 16 display.setFont(ArialMT_Plain_16); //mcpwm_gpio_init(unidade PWM 0, kata A, porta GPIO) => Instancia o MCPWM0A no pino GPIO_PWM0A_OUT nyatakan no começo do código mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0A, GPIO_OUT); //mcpwm_gpio_init(unidade PWM 0, kata B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT nyatakan no começo do código mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0B, GPIO_OUT); mcpwm_config_t pwm_config; pwm_config.frekuensi = 1000; //frekuncia = 500Hz, pwm_config.cmpr_a = 0; //Ciclo de trabalho (duty cycle) lakukan PWMxA = 0 pwm_config.cmpr_b = 0; //Ciclo de trabalho (duty cycle) lakukan PWMxb = 0 pwm_config.counter_mode = MCPWM_UP_COUNTER; //Para MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; //Define ciclo de trabalho em nível alto //Inicia(Unidade 0, Timer 0, Config PWM) mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config); //Tentukan PWM0A & PWM0B com sebagai konfigurasi acima }
Fungsi
//konfigurasi yang menyenangkan untuk operador 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) { //mcpwm_low_set (0, 1 ou 2), Operador (A ou B)); => Desliga o sinal lakukan MCPWM no Operador B (Tentukan 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)); => Konfigurasi persentase melakukan 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)); => tentukan 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 MCPWM Lakukan operador B (Unid) 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); //Konfigurasi persentase melakukan PWM no Operador B (Ciclo de trabalho) mcpwm_set_duty_type(mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); //menentukan apa yang akan dilakukan ciclo de trabalho (alto ou baixo) } //Menyenangkan untuk MCPWM de ambos os Operadores static void brushed_motor_stop(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num_mcpw) { mcpwm_num_mcpwm_num_set); //Desliga untuk melakukan MCPWM tanpa Operador A mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_B); //Desliga dan lakukan MCPWM tanpa Operador B }
Lingkaran
void loop() { //Pindahkan motor no sentido horário brushed_motor_forward(MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled("50"); penundaan(2000); //Para o motor brushed_motor_stop(MCPWM_UNIT_0, MCPWM_TIMER_0); oled("0"); penundaan(2000); //Pindahkan motor no sentido antihorário brushed_motor_backward(MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled("25"); penundaan(2000); //Para o motor brushed_motor_stop(MCPWM_UNIT_0, MCPWM_TIMER_0); oled("0"); penundaan(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)); penundaan (200); } // Desaceleração i de 100 a 1 delay(5000); for(int i=100;i>=10;i--){ brushed_motor_forward(MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled(String(i)); penundaan(100); } penundaan(5000); }
Langkah 9: Unduh File
SAYA TIDAK
MENGGAMBAR
Direkomendasikan:
Turbin Angin: 7 Langkah (dengan Gambar)
Turbin Angin: Halo semuanya! Dalam Instruksi ini, saya akan memandu Anda melalui konstruksi Model Turbin Angin yang terbuat dari bagian daur ulang atau mudah diakses. Ini akan dapat menghasilkan sekitar 1,5 volt dan secara otomatis menyesuaikan diri sehingga selalu
Kantor Bertenaga Baterai. Tata Surya Dengan Pengalihan Otomatis Panel Surya Timur/Barat dan Turbin Angin: 11 Langkah (dengan Gambar)
Kantor Bertenaga Baterai. Tata Surya Dengan Pengalihan Otomatis Panel Surya Timur/Barat dan Turbin Angin: Proyek: Kantor seluas 200 kaki persegi perlu bertenaga baterai. Kantor juga harus berisi semua pengontrol, baterai, dan komponen yang diperlukan untuk sistem ini. Tenaga surya dan angin akan mengisi baterai. Hanya ada sedikit masalah
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): 6 Langkah
Raspberry Pi RF Soket Listrik yang Dikendalikan Jarak Jauh (colokan Listrik): Kontrol soket listrik murah 433MHz (outlet dinding) menggunakan Raspberry Pi. Pi dapat mempelajari output kode kontrol dari remote kontrol soket dan menggunakannya di bawah kontrol program untuk mengaktifkan salah satu atau semua soket jarak jauh di seluruh rumah
Ide DIY Baru untuk Menjalankan ALAT LISTRIK Motor Universal Tanpa Listrik: 4 Langkah (dengan Gambar)
Ide DIY Baru untuk Menjalankan ALAT LISTRIK Motor Universal Tanpa Listrik: Hai Guys!!!! Dalam instruksi ini Anda akan belajar cara membuat opsi listrik darurat untuk menjalankan Anda perkakas listrik motor universal ketika tidak ada listrik di rumah. Pengaturan ini adalah pikiran bertiup untuk mengoperasikan alat-alat listrik di daerah terpencil atau bahkan di
Cara Membongkar Skuter Listrik untuk Suku Cadang Listrik.: 6 Langkah
Cara Membongkar Skuter Listrik untuk Suku Cadang Listrik.: Ini adalah cara saya membongkar skuter listrik bekas untuk kebutuhan suku cadang untuk membangun papan gunung listrik.(Ide berasal dari >> https://www .instructables.com/id/Electric-Mountain-Board/)Alasan saya membeli yang bekas adalah