תוכן עניינים:
- שלב 1: הפגנה
- שלב 2: בקרת מנוע PWM
- שלב 3: שימוש במשאבים
- שלב 4: ערכת Dev ESP 32 - Pinout
- שלב 5: הרכבת טורבינה
- שלב 6: מעגל - חיבורים
- שלב 7: מדידה באוסילוסקופ
- שלב 8: קוד המקור
- שלב 9: הורד את הקבצים
וִידֵאוֹ: טורבינה חשמלית עם ESP32: 9 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
היום אדון בטורבינה חשמלית עם ESP32. במכלול יש חלק שהודפס בתלת מימד. אציג פונקציית PWM של ה- ESP32 המתאימה לשליטה במנועים חשמליים. זה ישמש במנוע DC. כמו כן אדגים את פעולתו של MCPWM זה (Motor Control PWM) ביישום מעשי.
השתמשתי ב- ESP32 LoRa בפרויקט זה, ואני חושב שחשוב לציין כאן שלמיקרו -בקר זה יש שני בלוקים בתוכו. בלוקים אלה מסוגלים לשלוט בשלושה מנועים כל אחד. לפיכך, ניתן לשלוט בעד שישה מנועים באמצעות PWM, כולם באופן עצמאי. המשמעות היא שהבקרה שבה אשתמש כאן היא לא הסטנדרט (שהוא משהו דומה לארדואינו). במקום זאת, השליטה היא השבב עצמו, המבטיח ל- ESP32 גמישות רבה ביחס לשליטה המנועית.
שלב 1: הפגנה
שלב 2: בקרת מנוע PWM
תרשים כללי:
• ניתן להשתמש בפונקציית MCPWM של ה- ESP32 לשליטה במנועים חשמליים מסוגים שונים. יש לה שתי יחידות.
• לכל יחידה שלושה זוגות פלט PWM.
• ניתן לסנכרן כל זוג פלט A / B עם אחד משלושה טיימרים של סנכרון 0, 1 או 2.
• ניתן להשתמש בטיימר אחד לסנכרן יותר מצמד פלט PWM אחד
תרשים מלא:
• כל יחידה מסוגלת גם לאסוף אותות קלט כסימני סינכרון;
• זיהוי סימני תקלה עבור זרם יתר או מתח יתר של המנוע;
• קבל משוב באמצעות CAPTURE SIGNALS, כגון מיקום המנוע
שלב 3: שימוש במשאבים
• מגשרים לחיבור
• Heltec Wifi LoRa 32
• מנוע DC משותף
• גשר H - L298N
• כבל יו אס בי
• פרוטובורד
• ספק כוח
שלב 4: ערכת Dev ESP 32 - Pinout
שלב 5: הרכבת טורבינה
שלב 6: מעגל - חיבורים
שלב 7: מדידה באוסילוסקופ
שלב 8: קוד המקור
כּוֹתֶרֶת
#include // Não é nødvendário caso use Arduino IDE #include "driver/mcpwm.h" // inclui a biblioteca "Motor Control PWM" nativa do ESP32 #include // Necessário 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 display1306 display (0x3c, SDA, SCL, RST); // Instanciando and 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
להכין
הגדרת חלל () {Serial.begin (115200); display.init (); //display.flipScreenVertically (); // Vira a 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 declarado 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 declarado no começo do código mcpwm_gpio_init (MCPWM_UNIT_0, MCPWM0, MCPWM0) 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; // עבור MCPWM assimetrico pwm_config.duty_mode = MCPWM_DUTY_MODE_0; // הגדר ciclo de trabalho em nível alt // Inicia (Unidade 0, Timer 0, Config PWM) mcpwm_init (MCPWM_UNIT_0, MCPWM_TIMER_0, & pwm_config); // הגדר את PWM0A & PWM0B com כתצורות acima}
פונקציות
// Função que configura o MCPWM operador 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) {// mcpwal_ (0, 1 או 2), אופרדור (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 unidade (0 ou 1), מספר מספר טיימר (0, 1 ou 2), אופרדור (A ou B), Ciclo de trabalho (% do PWM)); => תצורת פורמט של PWM ללא מפעיל 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), Numero do timer (0, 1 ou 2), Operador (A ou B), Nível do ciclo de trabalho (alto baixo)); => הגדר o nível do ciclo de trabalho (alto 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), Timo חלל סטטי 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 ללא מפעיל B (Ciclo de trabalho) mcpwm_set_duty_type (mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0); // הגדירו את כל התהליכים (alto baixo)} // Função que para o MCPWM de ambos os Operadores static void brushed_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) {mcpwm_num_m_, _m_p_m_w // 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}
לוּלָאָה
לולאת חלל () {// העברה למנוע ללא סנטידו הורריו מוברש_מנוע_קדימה (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); oled ("50"); עיכוב (2000); // מאופנוע מנוע מוברש_מנוע (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); עיכוב (2000); // הזז או מנוע ללא סנטידו אנטי הורריו מוברש_אחור_מנוע (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); oled ("25"); עיכוב (2000); // מאופנוע מנוע מוברש_מנוע (MCPWM_UNIT_0, MCPWM_TIMER_0); oled ("0"); עיכוב (2000); // Aceleracao i de 1 a 100 עבור (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: הורד את הקבצים
INO
צִיוּר
מוּמלָץ:
סירה חשמלית: 4 שלבים
סירה חשמלית: אספקה -קופסת פלסטיק קטנה 2x מנועי DC חוטים 1x מתג 2x מדחפים 2x סוללות 9V אקדח דבק חם
פרויקט רמיקס לספין ארט טורבינה: 4 שלבים
פרויקט רמיקס טורבינות של ספין ארט: אם אתה מתעניין בספין ארט, יש בעיה והבעיה היא שאתה חייב להחזיק את המקדחה ביד אחת בזמן שאתה מצייר ביד השנייה. זה יכול להיות מעצבן לפעמים, אבל אני מרגיש שמצאתי הפתרון בעזרת הטורבינה הפשוטה הזו שאתה יכול ליצור
מכונית צעצוע חשמלית המופעלת באמצעות RC: 10 שלבים (עם תמונות)
מכונית צעצוע חשמלית ממונעת RC: מאת: פיטר טראן 10ELT1 הדרכה זו מפרטת את תהליך התיאוריה, העיצוב, הייצור והבדיקה של מכונית צעצוע חשמלית המופעלת באמצעות שלט רחוק באמצעות שבבי ה- HT12E/D IC. ההדרכות מפרטות את שלושת השלבים של עיצוב מכוניות: אינפרא כבל מחובר
נעילת דלת חשמלית עם סורק טביעות אצבע וקורא RFID: 11 שלבים (עם תמונות)
נעילת דלת חשמלית עם סורק טביעות אצבע וקורא RFID: הפרויקט נועד למנוע את הצורך בשימוש במפתחות, כדי להגיע למטרה שלנו השתמשנו בחיישן טביעות אצבע אופטי ובארדואינו. עם זאת ישנם אנשים שיש להם טביעת אצבע בלתי קריאה והחיישן לא יזהה אותה. ואז לחשוב על
טורבינה אלקטרוסטטית משופרת העשויה ממחזור: 16 שלבים (עם תמונות)
טורבינה אלקטרוסטטית משופרת העשויה ממחזור: זוהי טורבינה אלקטרוסטטית שנבנתה לחלוטין על שריטות (EST) הממירה זרם ישר במתח גבוה (HVDC) לתנועה סיבובית במהירות גבוהה. הפרויקט שלי היה בהשראת מנוע הקורונה של ג'פימנקו המונע בחשמל מהאטמוספירה