สารบัญ:
- ขั้นตอนที่ 1: เจาะลึกลงในแผ่นข้อมูล & ซอร์สโค้ด - ความเร็วสัญญาณนาฬิกา
- ขั้นตอนที่ 2: การตั้งค่าการลงทะเบียน UART
- ขั้นตอนที่ 3: การตั้งค่า PWM
- ขั้นตอนที่ 4: ผลลัพธ์
วีดีโอ: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM ควบคุม: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในคำแนะนำนี้ ฉันจะอธิบายวิธีการ
- ควบคุมมอเตอร์กระแสตรงด้วย PWM
- สื่อสารผ่าน UART
- จัดการตัวจับเวลาขัดจังหวะ
ก่อนอื่น เราจะใช้บอร์ดพัฒนาระบบ AVR Core ซึ่งคุณสามารถหาได้ใน Aliexpress ประมาณ 4 USD ลิงก์ของบอร์ดพัฒนาอยู่ที่นี่ นอกจากนี้ เราจะใช้ Atmel ICE Debugger และ Atmel Studio เพื่อตั้งโปรแกรม&ดีบักซอฟต์แวร์ของเรา
ขั้นตอนที่ 1: เจาะลึกลงในแผ่นข้อมูล & ซอร์สโค้ด - ความเร็วสัญญาณนาฬิกา
ใน 1. สัญลักษณ์แสดงหัวข้อย่อย เรากำหนดความถี่คริสตัลของเรา ซึ่งเราสามารถเห็นบนกระดานพัฒนา
ขั้นตอนที่ 2: การตั้งค่าการลงทะเบียน UART
ในการสื่อสารกับ UART คุณต้องตั้งค่า USART Baud Rate Registers – URRnL และ UBRRnH อย่างถูกต้อง คุณสามารถคำนวณได้เองหรือคุณสามารถใช้เครื่องคิดเลขออนไลน์เพื่อรับค่าที่ถูกต้องได้อย่างง่ายดาย
เครื่องคิดเลขออนไลน์
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
ดังนั้น จึงคำนวณค่า MYUBBR ในรีจิสเตอร์ UCSR0B เราเปิดใช้งาน RXEN0 (เปิดใช้งาน Recv) TXEN0 (เปิดใช้งานการส่ง) และ RXCIE0 (RX สำหรับการขัดจังหวะ) ในการลงทะเบียน UCSR0C เราเลือกขนาดถ่าน 8 บิต
หลังจากที่เราตั้งค่าบิตขัดจังหวะ RX เราควรเพิ่มฟังก์ชัน ISR สำหรับ USART0_RX_vect
ISR (USART0_RX_vect) { ถ่าน rcvChar = UDR0; if(rcvChar != '\n') { buffer [bufferIndex] = rcvChar; bufferIndex++; } }
คุณไม่ควรทำตรรกะทางธุรกิจใด ๆ ในรูทีนบริการขัดจังหวะของคุณ คุณต้องทำให้ฟังก์ชันกลับมาโดยเร็วที่สุด
ขั้นตอนที่ 3: การตั้งค่า PWM
ในฟังก์ชัน initPWM เราตั้งค่า CPU clock scaler, Timer/Counter mode เป็น Fast PWM และตั้งค่าพฤติกรรมด้วย COM bits
เราควรเชื่อมต่อมอเตอร์กระแสตรงกับพิน OC2 ซึ่งระบุไว้ในตารางที่ 66 เปรียบเทียบโหมดเอาต์พุต, โหมด Fast PWM ในเอกสารข้อมูลของเรา คุณจะเห็นว่าพิน OC2 คือ (OC2/OC1C) PB7
ขั้นตอนที่ 4: ผลลัพธ์
เมื่อคุณอัปโหลดซอร์สโค้ดในไฟล์แนบ
คุณสามารถป้อนค่า PWM ใหม่ (0-255) จาก UART (คุณสามารถใช้เทอร์มินัลพอร์ตอนุกรมของ Arduino) เพื่อตั้งค่าความเร็ว DC Motor
แนะนำ:
ฟักทองฮาโลวีน IoT - ควบคุม LED ด้วยแอพ Arduino MKR1000 และ Blynk ???: 4 ขั้นตอน (พร้อมรูปภาพ)
ฟักทองฮาโลวีน IoT | ควบคุมไฟ LED ด้วย Arduino MKR1000 และแอพ Blynk ???: สวัสดีทุกคน เมื่อไม่กี่สัปดาห์ก่อนเป็นวันฮาโลวีน และตามประเพณี ฉันแกะสลักฟักทองสวยๆ สำหรับระเบียงของฉัน แต่เมื่อฟักทองอยู่กลางแจ้ง ฉันตระหนักว่ามันค่อนข้างน่ารำคาญที่ต้องออกไปจุดเทียนทุกเย็น และฉัน
ควบคุม LED MATRIX MAX7219 พร้อม ARDUINO: 9 ขั้นตอน
ควบคุมเมทริกซ์ LED MAX7219 พร้อม ARDUINO: ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีควบคุมเมทริกซ์ LED MAX7219 ด้วย Arduino โดยการแสดงข้อความอย่างง่ายดูวิดีโอสาธิต
Stepper Motor ควบคุม Stepper Motor โดยไม่ต้องใช้ไมโครคอนโทรลเลอร์!: 6 ขั้นตอน
สเต็ปเปอร์มอเตอร์ที่ควบคุมโดยสเต็ปเปอร์มอเตอร์ที่ไม่มีไมโครคอนโทรลเลอร์!: ในคำแนะนำอย่างรวดเร็วนี้ เราจะสร้างตัวควบคุมสเต็ปเปอร์มอเตอร์อย่างง่ายโดยใช้สเต็ปเปอร์มอเตอร์ โครงการนี้ไม่ต้องการวงจรที่ซับซ้อนหรือไมโครคอนโทรลเลอร์ เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันเลย
WiFi Clock, Timer & Weather Station, ควบคุม Blynk: 5 ขั้นตอน (พร้อมรูปภาพ)
WiFi Clock, Timer & Weather Station, Blynk Controlled: นี่คือนาฬิกาดิจิตอล Morphing (ขอบคุณ Hari Wiguna สำหรับแนวคิดและรหัส morphing) มันคือนาฬิกาอะนาล็อก สถานีรายงานสภาพอากาศ และตัวจับเวลาในครัว มันถูกควบคุมโดย a แอพ Blynk บนสมาร์ทโฟนของคุณด้วย WiFi แอพช่วยให้คุณ
ตัวขับมอเตอร์ DC ที่ใช้ Power Mosfets [ควบคุม PWM, Half Bridge 30A]: 10 ขั้นตอน
ไดรเวอร์ DC มอเตอร์ที่ใช้ Power Mosfets [ควบคุม PWM, ฮาล์ฟบริดจ์ 30A]: แหล่งที่มาหลัก (ดาวน์โหลด Gerber/สั่งซื้อ PCB): http://bit.ly/2LRBYXH