בכל פעם שאנחנו הולכים להצביע לבחירות אנחנו באים לראות מכונות הצבעה אלקטרוניות. בפרויקט זה אנו מתכננים לעצב ולפתח מכונת הצבעה פשוטה באמצעות מיקרומקר ATmega32A. למרות שאנחנו יכולים להשתמש בבקר כדי להשיג יותר מ -32 אנשים מכונת הצבעה, כדי לשמור על הכל פשוט אנו הולכים להכין מערכת הצבעה בגודל של ארבעה אנשים. יהיו לנו ארבעה כפתורים לארבעה אנשים ובכל פעם שלוחצים על כפתור, ההצבעה מתאימה לאדם המתאים ומספר הקולות שכל אדם מקבל מוצג על גבי LCD.
רכיבים נדרשים
חוּמרָה:
ATMEGA32
ספק כוח (5V)
מתכנת AVR-ISP
JHD_162ALCD (16x2 LCD)
קבלים 100nF (חמש חלקים), קבלים 100uF (מחוברים באמצעות ספק כוח)
כפתור (חמש חלקים), נגד 10KΩ (חמש חלקים).
תוֹכנָה:
סטודיו אטמל 6.1
פרוגיספ או קסם פלאש.
תרשים מעגל והסבר עבודה
כפי שמוצג במעגל מכונות ההצבעה האלקטרוניות לעיל , PORTA של מיקרו-בקרת ATMEGA32 מחובר ליציאת נתונים של 16x2 LCD. כאן צריך לזכור להשבית את תקשורת JTAG ב- PORTC של ATMEGA על ידי שינוי בתים הנתיכים, אם רוצים להשתמש ב- PORTC כיציאת תקשורת רגילה. ב 16x2 LCD, יש 16 פינים על כל אם יש תאורה אחורית, אם אין אור אחורי יהיו 14 פינים. אפשר להפעיל או להשאיר את סיכות התאורה האחורית. עכשיו ב -14 הפינים ישנם 8 פינים נתונים (7-14 או D0-D7), 2 פינים לאספקת חשמל (1 & 2 או VSS & VDD או GND & + 5V), סיכה שלישית 3 לבקרת ניגודיות (VEE שולט עד כמה הדמויות צריכות להיות עבות מוצג), 3 סיכות בקרה (RS & RW & E).
במעגל, תוכלו לראות שלקחתי רק שתי סיכות בקרה מכיוון שהדבר נותן את הגמישות של הבנה טובה יותר. ביט הניגודיות ו- READ / WRITE לא משמשים לעתים קרובות, כך שניתן לקצר אותם לקרקע. זה מכניס את LCD למצב הניגודיות והקריאה הגבוה ביותר. אנחנו רק צריכים לשלוט בסיכות ENABLE ו- RS כדי לשלוח תווים ונתונים בהתאם.
החיבורים שבוצעו עבור LCD מובאים להלן:
PIN1 או VSS - קרקע
PIN2 או VDD או VCC - כוח + 5v
PIN3 או VEE - קרקע (נותן ניגודיות מקסימאלית הטובה ביותר למתחילים)
PIN4 או RS (בחירת רישום) - PD6 של uC
PIN5 או RW (קריאה / כתיבה) - קרקע (מכניס את LCD למצב קריאה מקל על התקשורת עבור המשתמש)
PIN6 או E (אפשר) - PD5 של uC
PIN7 או D0 - PA0 של uC
PIN8 או D1 - PA1 של uC
PIN9 או D2 - PA2 של uC
PIN10 או D3 - PA3 של uC
PIN11 או D4 - PA4 של uC
PIN12 או D5 - PA5 של uC
PIN13 או D6 - PA6 של uC
PIN14 או D7 - PA7 של uC
במעגל אתה יכול לראות שהשתמשנו בתקשורת 8 ביט (D0-D7) אולם זה לא חובה. אנחנו יכולים להשתמש בתקשורת 4 ביט (D4-D7) אבל עם תקשורת בת 4 סיביות הופכת להיות קצת מורכבת אז פשוט הלכתי עם 8 סיביות.
אז מעצם התבוננות בטבלה לעיל אנו מחברים 10 פינים של LCD לבקר, בהם 8 פינים הם פינים של נתונים ו -2 פינים לבקרה. ישנם כאן חמישה כפתורים, ארבעה להגדלת קולות המועמדים והחמישי הוא לאיפוס קולות המועמד לאפס.
הקבלים המצויים כאן נועדים לביטול האפקט המקפיץ של כפתורים. אם הם מוסרים הבקר עשוי לספור יותר מאחד בכל לחיצה על הכפתור. הנגדים המחוברים לסיכות נועדו להגבלת הזרם, כאשר לוחצים על הכפתור כדי למשוך את הסיכה לקרקע.
בכל פעם שלוחצים על כפתור, הסיכה המתאימה של הבקר מושכת לקרקע וכך הבקר מזהה שלוחצים על כפתור מסוים ופעולה המתאימה לביצוע, זה עשוי להגדיל את קולות המועמד או לאפס קולות בהתאם ללחצן.
כאשר לוחצים על הכפתור המייצג אדם המתאים, הבקר בוחר אותו ומגדיל את מספר האדם המתאים בזיכרון לאחר התוספת הוא מראה את ציון האנשים המתאימים בתצוגת LCD 16x2.
עבודה של מיקרו-בקר זו מכונת הצבעה אלקטרונית המבוססת מוסבר צעד אחר צעד של קוד C למטה,