فهرست مطالب:
- مرحله 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 08:54
امروز ، من در مورد یک توربین برقی با ESP32 بحث خواهم کرد. مجموعه دارای قسمتی است که به صورت سه بعدی چاپ شده است. من عملکرد PWM ESP32 را ارائه می دهم که برای کنترل موتورهای الکتریکی مناسب است. این در موتور DC استفاده می شود. من همچنین عملکرد این MCPWM (کنترل موتور PWM) را در یک برنامه کاربردی نشان خواهم داد.
من در این پروژه از ESP32 LoRa استفاده کردم و فکر می کنم ذکر این نکته ضروری باشد که این میکروکنترلر دارای دو بلوک در داخل آن است. این بلوک ها قادرند هر کدام سه موتور را کنترل کنند. بنابراین ، امکان کنترل حداکثر شش موتور با PWM ، همه به طور مستقل وجود دارد. این بدان معناست که کنترلی که در اینجا استفاده می کنم استاندارد نیست (که چیزی شبیه به آردوینو است). در عوض ، کنترل خود تراشه است ، که ESP32 انعطاف پذیری زیادی را نسبت به کنترل موتور تضمین می کند.
مرحله 1: تظاهرات
مرحله 2: کنترل موتور PWM
نمودار کلی:
• از عملکرد MCPWM ESP32 می توان برای کنترل انواع مختلف موتورهای الکتریکی استفاده کرد. دو واحد دارد.
• هر واحد دارای سه جفت خروجی PWM است.
• هر جفت خروجی A / B را می توان با یکی از سه تایمر همگام سازی 0 ، 1 ، یا 2 همزمان کرد.
• از یک تایمر می توان برای همگام سازی بیش از یک جفت خروجی PWM استفاده کرد
نمودار کامل:
• هر واحد همچنین قادر به جمع آوری سیگنال های ورودی به عنوان علائم SYNCHRONIZATION است.
• تشخیص علائم خطا برای ولتاژ بیش از حد یا موتور ؛
• با CAPTURE SIGNALS ، مانند موقعیت موتور ، بازخورد بگیرید
مرحله 3: منابع مورد استفاده
• جامپر برای اتصال
• Heltec Wifi LoRa 32
• موتور DC معمولی
• پل H - L298N
• کابل یو اس بی
• Protoboard
• منبع تغذیه
مرحله 4: ESP 32 Dev Kit - Pinout
مرحله 5: نصب توربین
مرحله 6: مدار - اتصالات
مرحله 7: اندازه گیری بر روی اسیلوسکوپ
مرحله 8: کد منبع
سرتیتر
#شامل // Não é needário caso استفاده از Arduino IDE #شامل "driver/mcpwm.h" // شامل کتابخانه "Motor Control PWM" nativa do ESP32 #include // Necessário apenas para o Arduino 1.6.5 e posterior #include " SSD1306.h "// o mesmo que #شامل" 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" #تعریف GPIO_PWM0A_OUT 12 // اعلام GPIO 12 como PWM0A #تعریف GPIO_PWM0B_OUT 14 // Declara GPIO 14 como PWM0B
برپایی
void setup () {Serial.begin (115200)؛ display.init ()؛ //display.flipScreenVertically ()؛ // Vira a tela verticalmente display.clear ()؛ // برای یک esquerda display.setTextAlignment (TEXT_ALIGN_LEFT) ؛ // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16)؛ // mcpwm_gpio_init (unwade PWM 0، saida A، porta GPIO) => Instancia o MCPWM0A no pino GPIO_PWM0A_OUT اعلام هیچگونه آمادگی برای انجام ccdigo mcpwm_gpio_init (MCPWM_UNIT_0، // mcpwm_gpio_init (unwade PWM 0، saida B، porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT اعلام هیچگونه آمادگی برای انجام mcpwm_gpio_init (MCPWM_POMB_0B0، M0P0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، M0، 0، mcpwm_config_t pwm_config؛ pwm_config.frequency = 1000؛ // frequência = 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 ؛ // Para 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 به عنوان configurações acima}
کارکرد
// Função que configura o MCPWM operador A (Unidade، Timer، Porcentagem (ciclo de trabalho)) void statical brushed_motor_forward (mcpwm_unit_t mcpwm_num، mcpwm_timer_t timer_numwm_mum_mum_mum، my_mum_mum، my_mum، my_mum_mum، my_mum_mum، (0 ، 1 ou 2) ، Operador (A ou B)) ؛ => Desliga or sinal do MCPWM no Operador B (o sinal em Baixo) mcpwm_set_signal_low (mcpwm_num، timer_num، MCPWM_OPR_B)؛ // mcpwm_set_duty (PWM unidade (0 ou 1) ، Número do timer (0 ، 1 ou 2) ، Operador (A ou B) ، Ciclo de trabalho (٪ do PWM)) ؛ => پیکربندی یک porcentagem را با PWM no Operador A (Ciclo de trabalho) mcpwm_set_duty (mcpwm_num ، timer_num ، MCPWM_OPR_A ، duty_cycle) ؛ // mcpwm_set_duty_tyoe (PWM unidade (0 ou 1) ، Número do timer (0 ، 1 ou 2) ، Operador (A ou B) ، Nível do ciclo de trabalho (alto ou baixo)) ؛ => تعریف یا استفاده از 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 or ciclo de trabalho configurado anteriormente} // Função que configura o MCPWoid Do operador B (Un) خلاء استاتیک 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_؛ // Desliga or sinal do MCPWM no Operador A (o sinal em Baixo) mcpwm_set_duty (mcpwm_num، timer_num، MCPWM_OPR_B، duty_cycle)؛ // پیکربندی یک porcentagem do PWM no Operador B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num ، timer_num ، MCPWM_OPR_B ، MCPWM_DUTY_MODE_0) ؛ // تعریف O nível انجام CICLO د Trabalho به (آلتو OU baixo)} // Função فونز پارا O MCPWM د ambos سیستم عامل Operadores brushed_motor_stop از درجه اعتبار ساقط استاتیک (mcpwm_unit_t mcpwm_num، mcpwm_timer_t timer_num) {mcpwm_set_signal_low (mcpwm_num، timer_num، MCPWM_OPR_A)؛ // 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}
حلقه
حلقه خالی () {// حرکت یا حرکت بدون موتور بدون احساس brushed_motor_forward (MCPWM_UNIT_0 ، MCPWM_TIMER_0 ، 50.0) ؛ oled ("50") ؛ تاخیر (2000) ؛ // Para o motor 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) ؛ // Para o motor 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 delay (5000)؛ برای (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 فوت مربعی نیاز به تغذیه باتری دارد. دفتر همچنین باید شامل تمام کنترلرها ، باتری ها و قطعات مورد نیاز برای این سیستم باشد. انرژی خورشیدی و باد باتری ها را شارژ می کند. فقط یک مشکل جزئی وجود دارد
پروژه ریمیکس توربین هنر توربین: 4 مرحله
پروژه ریمیکس Spin Art Turbine: اگر به هنر چرخش علاقه دارید ، مشکلی وجود دارد و این مشکل این است که باید مته را با یک دست نگه دارید در حالی که با دست دیگر نقاشی می کنید. این کار گاهی اوقات آزاردهنده است ، اما احساس می کنم پیدا کرده ام راه حلی با این توربین ساده که می توانید ایجاد کنید
اسکوتر برقی تدی برقی کنترل شده: 12 مرحله (همراه با تصاویر)
اسکوتر برقی تدی برقی کنترل شده: ایده در اینجا این بود که چیزی را برای کمی سرگرم کننده بسازید و یک خرس عروسکی را در خود جای دهید. در ابتدا هدف قرار دادن این وسیله بر روی سه چرخه بود ، اگرچه قیمت اینها در ebay کمی افراطی به نظر می رسد. بنابراین در این فاصله من قصد داشتم یک الکتریک دست دوم بگیرم
نحوه جدا کردن اسکوتر برقی برای قطعات برقی .: 6 مرحله
نحوه جدا کردن یک اسکوتر برقی برای قطعات الکتریکی: این راهی است که من یک اسکوتر برقی دست دوم برای قطعات مورد نیاز برای ساخت یک تخته کوه برقی جدا می کنم. (ایده از & gt؛ & gt؛ https: // www .instructables.com/id/Electric-Mountain-Board/) دلیل خرید دست دوم این است که