Агуулгын хүснэгт:
- Алхам 1: Жагсаал
- Алхам 2: ХОУХ -ны моторын хяналт
- Алхам 3: Ашигласан нөөц
- Алхам 4: ESP 32 Dev Kit - Pinout
- Алхам 5: Турбин суурилуулах
- Алхам 6: Хэлхээ - холболтууд
- Алхам 7: Осциллографын хэмжилт
- Алхам 8: Эх код
- Алхам 9: Файлуудыг татаж авах
Видео: ESP32 бүхий цахилгаан турбин: 9 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Өнөөдөр би ESP32 -тэй цахилгаан турбины талаар ярилцах болно. Уг чуулган нь 3D форматаар хэвлэгдсэн хэсэгтэй. Би цахилгаан хөдөлгүүрийг хянахад тохиромжтой ESP32 -ийн ХОУХШ -ийн функцийг танилцуулах болно. Үүнийг DC хөдөлгүүрт ашиглах болно. Би мөн энэхүү MCPWM (Motor Control PWM) ажиллагааг практик хэрэглээнд харуулах болно.
Би энэ төсөлд ESP32 LoRa -ийг ашигласан бөгөөд энэ микроконтроллер нь хоёр блоктой гэдгийг энд тэмдэглэх нь зүйтэй гэж бодож байна. Эдгээр блокууд нь тус бүр гурван моторыг удирдах чадвартай. Тиймээс ХОУХ -тэй 6 хүртэлх моторыг бие даан удирдах боломжтой. Энэ нь миний энд ашиглах хяналт нь стандарт биш гэсэн үг юм (энэ нь Arduino -той төстэй зүйл юм). Үүний оронд хяналт нь чип өөрөө бөгөөд ESP32 нь моторын удирдлагын уян хатан чанарыг баталгаажуулдаг.
Алхам 1: Жагсаал
Алхам 2: ХОУХ -ны моторын хяналт
Ерөнхий диаграм:
• ESP32 -ийн MCPWM функцийг янз бүрийн төрлийн цахилгаан хөдөлгүүрийг удирдахад ашиглаж болно. Энэ нь хоёр нэгжтэй.
• Нэгж бүр гурван ХОУХ -ны гаралтын хостой.
• Гаралтын A / B хос бүрийг гурван синхрончлолын таймерын аль нэгээр нь синхрончлох боломжтой 0, 1, эсвэл 2.
• Нэг Таймер ашиглан нэгээс олон ХОУХ -ны гаралтын хосыг синхрончлох боломжтой
Бүрэн диаграм:
• Нэгж бүр нь синхрончлолын тэмдэг болгон оролтын дохиог цуглуулах чадвартай;
• Хэт гүйдэл буюу моторын хэт хүчдэлийн алдааг илрүүлэх;
• Хөдөлгүүрийн байрлал гэх мэт CAPTURE SIGNALS -аас санал авах
Алхам 3: Ашигласан нөөц
• Холбох зориулалттай холбогч
• Heltec Wifi LoRa 32
• Энгийн DC мотор
• H гүүр - L298N
• USB кабель
• Protoboard
• Цахилгаан хангамж
Алхам 4: ESP 32 Dev Kit - Pinout
Алхам 5: Турбин суурилуулах
Алхам 6: Хэлхээ - холболтууд
Алхам 7: Осциллографын хэмжилт
Алхам 8: Эх код
Толгой
#оруулах // Arduino IDE -г ашиглах шаардлагатай "драйвер/mcpwm.h" -ийг оруулна уу // "Motor Control PWM" номиналийн ESP32 -ийг оруулаарай SSD1306.h "// o mesmo que #include" SSD1306Wire.h "// OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #destine RST 16 SSD1306 дэлгэц (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" #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 (); // Виртуал дэлгэцийн дэлгэц.clear (); // дэлгэцийг харуулах.setTextAlignment (TEXT_ALIGN_LEFT); // Arial 16 display.setFont (ArialMT_Plain_16); // mcpwm_gpio_init (unidade PWM 0, saida A, porta GPIO) => Суурилуулалт эсвэл MCPWM0A байхгүй, GPIO_PWM0A_OUT зарлахгүй ccdigo mcpwm_gpio_init (MCPWM_UNIT_0, MCP_PO00M, MCPWM0A) // mcpwm_gpio_init (unidade PWM 0, saida B, porta GPIO) => Суурилуулалт эсвэл MCPWM0B байхгүй GPIO_PWM0B_OUT зар сурталчилгаа ccdigo mcpwm_gpio_init (MCPWM_UNIT_0, MCP_PO_00, MCPWM0B) mcpwm_config_t pwm_config; pwm_config.frequency = 1000; // давтамж = 500 Гц, 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 ассиметрийн хувьд 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 -ийг тохиргоог acima} гэж тодорхойл
Чиг үүрэг
// MCPWM оператор A (Unidade, Timer, Porcentagem (ciclo de trabalho)) статик хоосон орон зай brushed_motor_forward (0, 1 ou 2), Operador (A ou B)); => SCP эсвэл MCPWM ямар ч Operador B (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 (% PWM)); => 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)); => тодорхойлно уу? // Nota: Chame essa função toda vez cham chamado "mcpwm_set_signal_low" ou "mcpwm_set_signal_high" para trabalho configurado anteriormente} // Funksão que configura o MCPWM Do operador B (Unidade, Timer) 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); // MCPWM ямар ч операторгүй A (Sinal em Baixo -г тодорхойлох) mcpwm_set_duty (mcpwm_num, timer_num, MCPWM_OPR_B, duty_cycle); // 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 do ciclo de trabalho (alo ou baixo)} // Funksão que o o MCPWM de ambos os Operadores static void brushed_motor_stop (mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_mum_mum_mum_mum_mum_m_) // MCPWM байхгүй бол операторгүй mcpwm_set_signal_low (mcpwm_num, timer_num, MCPWM_OPR_B); // MCPWM -ийг ажиллуулахгүй байх
Гогцоо
void loop () {// Move o motor no sentido horário brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, 50.0); олед ("50"); саатал (2000); // Мотор сойзтой_мотор_ зогсолт (MCPWM_UNIT_0, MCPWM_TIMER_0); олед ("0"); саатал (2000); // Хөдөлгөөнгүй моторгүй sentiho antihorário brushed_motor_backward (MCPWM_UNIT_0, MCPWM_TIMER_0, 25.0); олед ("25"); саатал (2000); // Мотор сойзтой_моторын зогсолт (MCPWM_UNIT_0, MCPWM_TIMER_0); олед ("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 саатал (5000); for (int i = 100; i> = 10; i-) {brushed_motor_forward (MCPWM_UNIT_0, MCPWM_TIMER_0, i); oled (String (i)); саатал (100); } саатал (5000); }
Алхам 9: Файлуудыг татаж авах
INO
ЗУРАГ
Зөвлөмж болгож буй:
Салхин турбин: 7 алхам (зурагтай)
Салхин цахилгаан үүсгүүр: Бүгдээрээ сайн байцгаана уу! Энэхүү зааварчилгааны номонд би дахин боловсруулсан эсвэл хялбархан нэвтрэх боломжтой хэсгүүдээр хийсэн загвар салхин цахилгаан үүсгүүрийг бүтээх талаар танд заавар өгөх болно. Энэ нь ойролцоогоор 1.5 вольт үйлдвэрлэж, автоматаар өөрийгөө тохируулах боломжтой тул үргэлж
Цахим бэх бүхий дэлгэц бүхий цахилгаан хэмнэх GPS: 4 алхам
Цахилгаан бэх бүхий GPS хэмнэх GPS: Зун болгон би алслагдсан газруудаар явган аялал хийдэг. Заримдаа, мөр нь бүдэгрэх эсвэл бүр алга болоход би утасныхаа GPS -ийг ашиглан координатаа олж, цаасан газрын зураг дээрх байрлалаа шалгах шаардлагатай болдог (надад ихэвчлэн дохио байдаггүй, тиймээс цаасан газрын зураг заавал байх ёстой
LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам
LoRa Arduino, Esp8266 эсвэл Esp32 -д зориулсан бага өртөгтэй E32 (sx1278/sx1276) төхөөрөмж бүхий 3Km -аас 8Km хүртэлх утасгүй холбоо: Би Semtech цувралын LoRa төхөөрөмж дээр суурилсан EBYTE E32 -ийг удирдах номын сан, маш хүчирхэг, энгийн бөгөөд хямд төхөөрөмжтэй. 3км -ийн хувилбар энд, 8км -ийн хувилбар энд байна Тэд 3000м -ээс 8000м -ийн зайд ажиллах боломжтой бөгөөд тэдгээр нь маш олон онцлог шинж чанартай байдаг
Дахин боловсруулж боловсруулсан цахилгаан статик турбин: 16 алхам (зурагтай)
Дахин боловсруулж боловсруулсан цахилгаан статик турбин: Энэ нь бүрэн зураастай, цахилгаан статик турбин (EST) бөгөөд өндөр хүчдэлийн шууд гүйдлийг (HVDC) өндөр хурдтай эргүүлэх хөдөлгөөн болгон хувиргадаг. Миний төслийг агаар мандлаас цахилгаан эрчим хүчээр ажилладаг Жефименко Корона Мотороос санаа авсан
SSD1306 Oled бүхий MicroPython бүхий ESP32 интерфэйс: 5 алхам
ESP32 Interface with SSD1306 Oled with MicroPython: Micropython бол python -ийн оновчтой, жижиг хэмжээтэй ул мөр юм. Санах ойн хязгаарлалттай, эрчим хүчний хэрэглээ багатай суулгагдсан төхөөрөмжид зориулагдсан болно. Micropython нь ESP8266, ESP32, Ardui зэрэг олон хянагч гэр бүлүүдэд зориулагдсан болно