جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في هذا الدليل ، سأشرح لك كيفية القيام بذلك
- التحكم في محرك DC مع PWM
- التواصل عبر UART
- التعامل مع المقاطعات الموقت
بادئ ذي بدء ، سنستخدم لوحة تطوير نظام AVR Core والتي يمكنك العثور عليها على Aliexpress بحوالي 4 دولارات أمريكية. رابط لوحة التطوير هنا. سنستخدم أيضًا Atmel ICE Debugger و Atmel Studio لبرمجة برنامجنا وتصحيحه.
الخطوة 1: الغوص العميق في ورقة البيانات وكود المصدر - سرعة الساعة
في 1. الرصاصة نحدد ترددنا البلوري حيث يمكننا رؤيته على لوحة التطوير
الخطوة 2: ضبط سجلات UART
للتواصل مع UART ، يجب عليك تعيين USART Baud Rate Registers - UBRRnL و 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) {char rcvChar = UDR0 ؛ إذا (rcvChar! = '\ n') {عازلة [bufferIndex] = rcvChar؛ BufferIndex ++ ؛ }}
يجب ألا تقوم بأي منطق عمل في روتين خدمة المقاطعة الخاص بك. عليك أن تجعل الوظيفة تعود في أسرع وقت ممكن.
الخطوة 3: إعدادات PWM
في وظيفة initPWM ، قمنا بتعيين قشارة ساعة وحدة المعالجة المركزية الخاصة بنا ، ووضع المؤقت / العداد على أنه Fast PWM وقمنا بتعيين سلوكه باستخدام بتات COM
يجب علينا أيضًا توصيل محرك التيار المستمر بدبوس OC2 المحدد في الجدول 66. قارن وضع الإخراج ، وضع PWM السريع في ورقة البيانات الخاصة بنا ، سترى أيضًا أن دبوس OC2 هو (OC2 / OC1C) PB7
الخطوة 4: النتيجة
عند تحميل شفرة المصدر في المرفق.
يمكنك إدخال قيمة PWM جديدة (0-255) من UART (يمكنك استخدام محطة منفذ اردوينو التسلسلي) لضبط سرعة محرك التيار المستمر.