נורית מהבהבת היא הצעד הראשון שתרצו לעשות בכדי להתחיל לעבוד עם אלקטרוניקה. במדריך זה אנו הולכים לחבר נורית עם ATmega32, שהוא מיקרו-בקר מסדרת AVR. אנחנו הולכים למצמץ את ה- LED בקצב של שניה שנייה.
רכיבים נדרשים
חוּמרָה:
מיקרו-בקר ATmega32A
ספק כוח (5V)
מתכנת AVR-ISP
קבל 100uF
לד
נגד 220Ω
תוֹכנָה
סטודיו אטמל 6.1
פרוגיספ או קסם פלאש
הסבר על מעגל ועבודה
כפי שמוצג בתרשים המעגל שלמממשק LED עם מיקרו בקר AVR, אין צורך לחבר גביש חיצוני כאן. מכיוון שה- ATMEGA עובד על מתנד נגד-קבלים 1MHz פנימי כברירת מחדל. רק כאשר יש צורך בדייקנות השעון, כמו יישום של ספירת דיוק גבוהה, קריסטל חיצוני מתחבר. כאשר הבקר נקנה לראשונה, הוא מתמזג לעבודה על גביש פנימי כברירת מחדל.
הנגד מחובר כאן כדי להגביל את הציור הנוכחי מ- LED. זכרו, הבקר אינו יכול לספק יותר מ -30 mA במסופים.
הסבר על תכנות
התוכנית למיקרו-בקר ATmega32 להבהוב נורית מוצגת להלן. ההערות בקוד מסבירות את מטרת השורה האישית של הקוד.
#include // כותרת כדי לאפשר בקרת זרימת נתונים על סיכות
#define F_CPU 1000000 // אומר תדר גביש לבקר
#לִכלוֹל
int main (בטל)
{
DDRD = 0xFF; // (או 0b1111 1111) ב- AVRSTUDIO כדי לומר לשולט להשתמש בסיבית מסוימת של יציאה כקלט אנו משתמשים ב- "ZERO", כדי לומר לו להשתמש בסיבית מסוימת כפלט אנו משתמשים ב- "ONE". מכיוון ששמנו שמונה "ONE", כל הסיכות של PORTD מופעלות כפלט. אם שמנו אפס כ- "0b1111 0111", כעת כל הפינים 0,1,2,4,5,6,7 מופעלים כקלטים ו- PIN 3 מופעל כקלט.
בעוד (1) // לולאה נמשכת לנצח והנורית מהבהבת לנצח
{
פורט = 0xFF; // כל הפינים של PORTD אמורים לספק פלט של 5 וולט או שאומרים להם למשוך גבוה (LED דולק)
_עיכוב_מס (220); // עיכוב ל- 200ms
_עיכוב_מס (220);); // עיכוב ל- 200ms
פורט = 0x00; // כל הפינים של PORTD אמורים לספק קרקע בתפוקה או במורד
_עיכוב_מס (220);); // עיכוב ל- 200ms
_עיכוב_מס (220);); // עיכוב ל- 200ms
}
}