وميض LED هو الخطوة الأولى التي ترغب في اتخاذها لبدء استخدام الإلكترونيات. في هذا البرنامج التعليمي ، سنقوم بتوصيل LED بـ ATmega32 ، وهو متحكم دقيق من سلسلة AVR. سنومض LED بمعدل نصف ثانية.
المكونات مطلوبة
المعدات:
متحكم ATmega32A
مزود الطاقة (5 فولت)
مبرمج AVR-ISP
100 فائق التوهج مكثف
يؤدى
220Ω المقاوم
البرمجيات
استوديو اتميل 6.1.1
Progisp أو فلاش السحر
شرح الدائرة والعمل
كما هو موضح في الرسم التخطيطي للدائرة أعلاه لتفاعل LED مع متحكم AVR ، ليست هناك حاجة لتوصيل بلورة خارجية هنا. لأن ATMEGA يعمل على مذبذب مكثف مقاوم داخلي 1 ميجا هرتز بشكل افتراضي. فقط عندما تكون دقة الساعة مطلوبة ، كتطبيق للعد عالي الدقة ، يتم إرفاق الكريستال الخارجي. عند شراء وحدة التحكم لأول مرة ، يتم دمجها للعمل على بلورة داخلية بشكل افتراضي.
يتم توصيل المقاوم هنا للحد من الرسم الحالي من LED. تذكر أن وحدة التحكم لا يمكنها توفير أكثر من 30 مللي أمبير في المحطات.
شرح البرمجة
يظهر أدناه برنامج متحكم ATmega32 ليومض مؤشر LED. توضح التعليقات الواردة في الكود الغرض من السطر الفردي من الكود.
#include // header لتمكين التحكم في تدفق البيانات عبر المسامير
#define F_CPU 1000000 // إخبار التردد البلوري للتحكم
#تضمن
int main (باطل)
{
DDRD = 0xFF ؛ // (أو 0b1111 1111) في AVRSTUDIO لإخبار المتحكمين باستخدام جزء معين من المنفذ كمدخل ، نستخدم "ZERO" لإخباره باستخدام بت معين كمخرج نستخدم "ONE". منذ أن وضعنا ثمانية "واحد" ، يتم تمكين جميع دبابيس PORTD كإخراج. إذا وضعنا صفرًا كـ "0b1111 0111" ، فسيتم الآن تمكين جميع المسامير 0،1،2،4،5،6،7 كمدخلات وتم تمكين رقم التعريف الشخصي 3 كمدخل.
بينما تستمر الحلقة (1) // إلى الأبد وسيومض مؤشر LED إلى الأبد
{
PORTD = 0xFF ؛ // يُقال إن جميع دبابيس PORTD توفر خرج 5 فولت أو يُطلب منها السحب عاليًا (LED ON)
_delay_ms (220) ؛ // تأخير لمدة 200 مللي ثانية
_delay_ms (220) ؛) ؛ // تأخير لمدة 200 مللي ثانية
PORTD = 0x00 ؛ // يقال إن جميع دبابيس PORTD توفر الأرض عند الإخراج أو تسحب لأسفل
_delay_ms (220) ؛) ؛ // تأخير لمدة 200 مللي ثانية
_delay_ms (220) ؛) ؛ // تأخير لمدة 200 مللي ثانية
}
}