Πίνακας περιεχομένων:
- Βήμα 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:34
Σήμερα, θα συζητήσω έναν ηλεκτρικό στρόβιλο με το ESP32. Η συναρμολόγηση έχει ένα μέρος που εκτυπώθηκε σε 3D. Θα παρουσιάσω μια λειτουργία PWM του ESP32 που είναι κατάλληλη για τον έλεγχο ηλεκτροκινητήρων. Αυτό θα χρησιμοποιηθεί σε κινητήρα DC. Θα δείξω επίσης τη λειτουργία αυτού του MCPWM (Motor Control PWM) σε μια πρακτική εφαρμογή.
Χρησιμοποίησα το ESP32 LoRa σε αυτό το έργο και νομίζω ότι είναι σημαντικό να σημειωθεί εδώ ότι αυτός ο μικροελεγκτής έχει δύο μπλοκ μέσα του. Αυτά τα μπλοκ είναι σε θέση να ελέγχουν τρεις κινητήρες το καθένα. Έτσι, είναι δυνατός ο έλεγχος έως έξι κινητήρων με PWM, όλα ανεξάρτητα. Αυτό σημαίνει ότι το στοιχείο ελέγχου που θα χρησιμοποιήσω εδώ δεν είναι το τυπικό (το οποίο είναι κάτι παρόμοιο με το Arduino). Αντ 'αυτού, το χειριστήριο είναι το ίδιο το τσιπ, το οποίο εγγυάται στο ESP32 μεγάλη ευελιξία σε σχέση με τον έλεγχο του κινητήρα.
Βήμα 1: Επίδειξη
Βήμα 2: Έλεγχος κινητήρα PWM
Γενικό διάγραμμα:
• Η λειτουργία MCPWM του ESP32 μπορεί να χρησιμοποιηθεί για τον έλεγχο διαφόρων τύπων ηλεκτροκινητήρων. Διαθέτει δύο μονάδες.
• Κάθε μονάδα διαθέτει τρία ζεύγη εξόδου PWM.
• Κάθε ζεύγος εξόδου A / B μπορεί να συγχρονιστεί με έναν από τους τρεις χρονοδιακόπτες συγχρονισμού 0, 1 ή 2.
• Ένας χρονοδιακόπτης μπορεί να χρησιμοποιηθεί για συγχρονισμό περισσότερων από ένα ζεύγους εξόδου PWM
Πλήρες διάγραμμα:
• Κάθε μονάδα είναι επίσης ικανή να συλλέγει σήματα εισόδου ως ΣΗΜΑΤΑ ΣΥΝΧΡΟΝΙΣΜΟΥ.
• Εντοπισμός ΣΗΜΑΤΙΚΩΝ ΣΗΜΑΤΩΝ για υπερένταση ή υπέρταση κινητήρα.
• Λάβετε ανατροφοδότηση με τα σήματα CAPTURE, όπως η θέση του Κινητήρα
Βήμα 3: Πόροι που χρησιμοποιούνται
• Μπότες για σύνδεση
• Heltec Wifi LoRa 32
• Κοινός κινητήρας DC
• Γέφυρα H - L298N
• Καλώδιο USB
• Protoboard
• Παροχή ηλεκτρικού ρεύματος
Βήμα 4: ESP 32 Dev Kit - Pinout
Βήμα 5: Τοποθέτηση τουρμπίνας
Βήμα 6: Κύκλωμα - Συνδέσεις
Βήμα 7: Μέτρηση σε παλμογράφο
Βήμα 8: Πηγαίος κώδικας
Επί κεφαλής
#include // Δεν χρειάζεται να χρησιμοποιήσετε το Arduino IDE #περιλαμβάνει "πρόγραμμα οδήγησης/mcpwm.h" // περιλαμβάνει μια βιβλιοθήκη "Motor Control PWM" nativa do ESP32 #include // Necessário apenas para o Arduino 1.6.5 και 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 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.flipScreenVertically (); // Vira a tela verticalmente display.clear (); // για να δείτε το 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 deklarado no começo do código mcpwm_gpio_init (MCPWM_UNI_0, M0P0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, 0, // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Instancia o MCPWM0B no pino GPIO_PWM0B_OUT deklarado no começo do código mcpwm_gpio_init (MCPWM_UNIT_0, M0P0M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, M0, 0, 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)) static void brushed_motor_forward (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num_mum_mum_mumwum (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 (unidade PWM (0 ou 1), Número do timer (0, 1 ou 2), Operador (A ou B), Ciclo de trabalho (% do PWM)); => Διαμορφώστε ένα 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)); => καθορίστε το ciclo de trabalho (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 MCPWOM 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 o sinal do MCPWM no Operador A (Define 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 Nivel κάνουμε Ciclo de trabalho (Alto OU Baixo)} // Função que para o MCPWM de Ambos os 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}
Βρόχος
void loop () {// Move o motor no sentido horário 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). // Μετακινήστε το μοτέρ χωρίς sentido antihorário 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 (String (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 (String (i)); καθυστέρηση (100)? } καθυστέρηση (5000); }
Βήμα 9: Κατεβάστε τα αρχεία
ΕΓΩ ΔΕΝ
ΣΧΕΔΙΟ
Συνιστάται:
Αισθητήρας υπερήχων σε ηλεκτρική σκούπα ρομπότ: 5 βήματα
Υπερηχητικός αισθητήρας σε ηλεκτρική σκούπα ρομπότ: Γεια, έχουμε την ηλεκτρική σκούπα ρομπότ Dirt Devil εδώ και περίπου 3 χρόνια και εξακολουθεί να κάνει τη δουλειά της. Είναι ο τύπος M611, ο οποίος είναι ένας μικρός «χαζός»: χωρίς σάρωση της περιοχής ή κάποια μνήμη για το πού δεν πρέπει να σκουπίσετε, αλλά με τη δυνατότητα επιστροφής
Φορητή Μαύρη+Decker ηλεκτρική σκούπα Fix - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: 5 βήματα (με εικόνες)
Φορητή Μαύρη+Decker ηλεκτρική σκούπα Fix - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: Μπορεί να ξοδέψετε +70 ευρώ (δολάρια ή το αντίστοιχο νόμισμά σας) για μια φοβερή φορητή ηλεκτρική σκούπα και μετά από μερικούς μήνες ή ένα χρόνο, δεν λειτουργεί τόσο καλά … Ναι, εξακολουθεί να λειτουργεί, αλλά λιγότερο περισσότερο από 1 λεπτό εργασίας και δεν αξίζει. Ανάγκη για εκ νέου
Ηλεκτρική κιθάρα πούρου: 18 βήματα (με εικόνες)
Electric Cigar Box Κιθάρα: Αν και η κατασκευή κιθάρας έχει προχωρήσει πολύ τα τελευταία εκατό χρόνια, υπάρχει μια μακρά ιστορία για να δείξει ότι δεν χρειάζεστε πολλά για να φτιάξετε μια κιθάρα. Το μόνο που χρειάζεστε είναι ένα κουτί για να αντηχεί ο ήχος, μια σανίδα θα λειτουργούσε ως πανοπλία, μερικές βίδες
Ηλεκτρική κατανάλωση & περιβαλλοντική παρακολούθηση μέσω Sigfox: 8 βήματα
Ηλεκτρική κατανάλωση & περιβαλλοντική παρακολούθηση μέσω Sigfox: Περιγραφή Αυτό το έργο θα σας δείξει πώς να λάβετε την ηλεκτρική κατανάλωση ενός δωματίου σε τριφασική διανομή ισχύος και στη συνέχεια να την αποστέλλετε σε διακομιστή χρησιμοποιώντας το δίκτυο Sigfox κάθε 10 λεπτά. Πώς να μετρήσετε την ισχύ; Πήραμε τρεις τρέχοντες σφιγκτήρες από ένα
Ηλεκτρική κλειδαριά πόρτας με σαρωτή δακτυλικών αποτυπωμάτων και αναγνώστη RFID: 11 βήματα (με εικόνες)
Ηλεκτρική κλειδαριά πόρτας με σαρωτή δακτυλικών αποτυπωμάτων και αναγνώστη RFID: Το έργο σχεδιάστηκε για να αποφευχθεί η ανάγκη χρήσης κλειδιών, για να φτάσουμε στο στόχο μας χρησιμοποιήσαμε έναν οπτικό αισθητήρα δακτυλικών αποτυπωμάτων και ένα Arduino. Ωστόσο, υπάρχουν άτομα που έχουν δυσανάγνωστο δακτυλικό αποτύπωμα και ο αισθητήρας δεν το αναγνωρίζει. Μετά σκέφτεται ένα