- רכיבים נדרשים:
- תרשים מעגל:
- ארדואינו אונו:
- LCD 16x2:
- מושג קוד צבע התנגדות:
- חישוב התנגדות באמצעות מד אוהם Arduino:
- הסבר קוד:
אנו מתקשים לקרוא קודי צבע על נגדים כדי למצוא את עמידותם. על מנת להתגבר על הקושי למצוא את ערך ההתנגדות, אנו הולכים לבנות מד אוהם פשוט באמצעות ארדואינו. העיקרון הבסיסי שעומד מאחורי פרויקט זה הוא רשת מתח מתח. ערך ההתנגדות הלא ידוע מוצג בתצוגת LCD 16 * 2. פרויקט זה משמש גם כממשק תצוגת LCD 16 * 2 עם Arduino.
רכיבים נדרשים:
- ארדואינו אונו
- 16 * 2 תצוגת LCD
- פוטנציומטר (קילוגרם אחד אוהם)
- נגדים
- קרש לחם
- חוטי מגשר
תרשים מעגל:
ארדואינו אונו:
Arduino Uno הוא לוח מיקרו בקוד פתוח המבוסס על מיקרו-בקר ATmega328p. יש לו 14 פינים דיגיטליים (מתוכם 6 פינים יכולים לשמש כפלט PWM), 6 כניסות אנלוגיות, ווסת מתח בלוח וכו '. ל- Arduino Uno יש 32KB זיכרון פלאש, 2KB SRAM ו- 1KB EEPROM. הוא פועל בתדר השעון של 16 מגה-הרץ. Arduino Uno תומך בתקשורת סידורי, I2C, SPI לצורך תקשורת עם מכשירים אחרים. הטבלה שלהלן מציגה את המפרט הטכני של Arduino Uno.
מיקרו-בקר | ATmega328p |
מתח הפעלה | 5V |
מתח נכנס | 7-12 וולט (מומלץ) |
סיכות קלט / פלט דיגיטליות | 14 |
סיכות אנלוגיות | 6 |
זיכרון פלאש | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
מהירות שעון |
16 מגה-הרץ |
LCD 16x2:
16 * 2 LCD הוא תצוגה בשימוש נרחב ליישומים משובצים. הנה ההסבר הקצר על סיכות ועבודה של תצוגת LCD 16 * 2. ישנם שני רושמים חשובים מאוד בתוך ה- LCD. הם רישום נתונים ורישום פקודות. רישום הפקודה משמש לשליחת פקודות כגון תצוגה ברורה, סמן בבית וכו ', רישום נתונים משמש לשליחת נתונים אשר מוצגים על גבי 16 * 2 LCD. להלן הטבלה מציגה את תיאור הסיכה של 16 * 2 lcd.
פִּין |
סֵמֶל |
קלט / פלט |
תיאור |
1 |
Vss |
- |
קרקע, אדמה |
2 |
Vdd |
- |
+ ספק כוח 5V |
3 |
וי |
- |
ספק כוח לשליטה בניגודיות |
4 |
RS |
אני |
RS = 0 לרישום פקודות, RS = 1 לרישום נתונים |
5 |
RW |
אני |
R / W = 0 לכתיבה, R / W = 1 לקריאה |
6 |
ה |
קלט / פלט |
לְאַפשֵׁר |
7 |
D0 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות (LSB) |
8 |
D1 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
9 |
D2 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
10 |
D3 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
11 |
D4 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
12 |
D5 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
13 |
D6 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
14 |
D7 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות (MSB) |
15 |
א |
- |
+ 5 וולט לתאורה אחורית |
16 |
ק |
- |
קרקע, אדמה |
מושג קוד צבע התנגדות:
כדי לזהות את ערך ההתנגדות נוכל להשתמש בנוסחה הבאה.
R = {(AB * 10 c) Ω ± T%}
איפה
A = ערך הצבע ברצועה הראשונה.
B = ערך הצבע ברצועה השנייה.
C = ערך הצבע ברצועה השלישית.
T = ערך הצבע ברצועה הרביעית.
הטבלה שלהלן מציגה את קוד הצבע של הנגדים.
צֶבַע |
הערך המספרי של הצבע |
גורם כפל (10 ג) |
ערך סובלנות (T) |
שָׁחוֹר |
0 |
10 0 |
- |
חום |
1 |
10 1 |
± 1% |
אָדוֹם |
2 |
10 2 |
± 2% |
תפוז |
3 |
10 3 |
- |
צהוב |
4 |
10 4 |
- |
ירוק |
5 |
10 5 |
- |
כָּחוֹל |
6 |
10 6 |
- |
סָגוֹל |
7 |
10 7 |
- |
אפור |
8 |
10 8 |
- |
לבן |
9 |
10 9 |
- |
זהב |
- |
10 -1 |
± 5% |
כסף |
- |
10 -2 |
± 10% |
אין להקה |
- |
- |
± 20% |
לדוגמה, אם קודי הצבעים הם חומים - ירוקים - אדומים - כסופים, ערך ההתנגדות מחושב כ, חום = 1 ירוק = 5 אדום = 2 כסף = ± 10%
משלושת הלהקות הראשונות, R = AB * 10 ג
R = 15 * 10 +2 R = 1500 Ω
הלהקה הרביעית מציינת סובלנות של ± 10%
10% מ 1500 = 150 עבור + 10 אחוז, הערך הוא 1500 + 150 = 1650Ω עבור - 10 אחוז, הערך הוא 1500 -150 = 1350Ω
לכן ערך ההתנגדות בפועל יכול להיות בין 1350Ω ל 1650Ω.
כדי שיהיה יותר נוח, הנה מחשבון קוד הצבע של התנגדות שבו אתה רק צריך להזין את צבע הטבעות על הנגד ותקבל את ערך ההתנגדות.
חישוב התנגדות באמצעות מד אוהם Arduino:
העבודה של מד ההתנגדות הזה היא פשוטה מאוד וניתנת להסבר באמצעות רשת מחלקי מתח פשוטה המוצגת להלן.
מרשת מחלקי המתח של הנגדים R1 ו- R2, Vout = Vin * R2 / (R1 + R2)
מהמשוואה לעיל אנו יכולים להסיק את הערך של R2 כ-
R2 = Vout * R1 / (Vin - Vout)
איפה R1 = התנגדות ידועה
R2 = התנגדות לא ידועה
Vin = מתח המיוצר בסיכת 5V של Arduino
Vout = מתח ב- R2 ביחס לקרקע.
הערה: ערך ההתנגדות הידוע (R1) שנבחר הוא 3.3KΩ, אך על המשתמשים להחליף אותו בערך ההתנגדות של הנגד שבחרו.
אז אם נקבל את ערך המתח על פני התנגדות לא ידועה (Vout), נוכל לחשב בקלות את ההתנגדות הלא ידועה R2. כאן קראנו את ערך המתח Vout באמצעות הפין האנלוגי A0 (ראה דיאגרמת המעגל) והמירנו את אותם ערכים דיגיטליים (0 -1023) למתח כמוסבר בקוד להלן.
אם הערך של ההתנגדות הידועה גדול או קטן מההתנגדות הלא ידועה השגיאה תהיה גבוהה יותר. לכן מומלץ לשמור על ערך ההתנגדות הידוע קרוב יותר להתנגדות הלא ידועה.
הסבר קוד:
התוכנית המלאה של ארדואינו וסרטון ההדגמה לפרויקט זה ניתנים בסוף פרויקט זה. הקוד מחולק לנתחים משמעותיים קטנים ומוסבר להלן.
בחלק זה של הקוד, אנו הולכים להגדיר את הסיכות שעליהן מחובר צג LCD 16 * 2 לארדואינו. סיכת RS של 16 * 2 lcd מחוברת לסיכה דיגיטלית 2 של arduino. אפשר סיכה של 16 * 2 lcd מחובר לסיכה דיגיטלית 3 של Arduino. סיכות נתונים (D4-D7) של 16 * 2 lcd מחוברות לסיכות דיגיטליות 4,5,6,7 של Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
בחלק זה של הקוד אנו מגדירים כמה משתנים המשמשים את התוכנית. Vin הוא המתח המסופק על ידי סיכת 5V של ארדואינו. Vout הוא המתח בנגד R2 ביחס לקרקע.
R1 הוא ערך ההתנגדות הידועה. R2 הוא הערך של התנגדות לא ידועה.
int Vin = 5; // מתח בסיכה 5V של ארדואינו לצוף Vout = 0; // מתח בסיומת A0 של ארדואינו לצוף R1 = 3300; // ערך צף ההתנגדות הידוע R2 = 0; ערך הערך של התנגדות לא ידועה
בחלק זה של הקוד, אנו הולכים לאתחל תצוגה 16 * 2 lcd. הפקודות ניתנות לתצוגה 16 * 2 lcd להגדרות שונות כגון מסך נקי, תצוגה על מהבהב הסמן וכו '.
lcd.begin (16,2);
בחלק זה של הקוד, המתח האנלוגי בנגד R2 (סיכה A0) מומר לערך דיגיטלי (0 עד 1023) ומאוחסן במשתנה.
a2d_data = analogRead (A0);
בחלק זה של הקוד, הערך הדיגיטלי (0 עד 1023) מומר למתח לצורך חישובים נוספים.
חיץ = a2d_data * Vin; Vout = (חיץ) / 1024.0;
ה- Arduino Uno ADC הוא ברזולוציה של 10 סיביות (כך שהערכים השלמים מ 0 - 2 ^ 10 = 1024 ערכים). המשמעות היא שהיא תמפה את מתח הכניסה בין 0 ל -5 וולט לערכים שלמים בין 0 ל -1023. אז אם נכפיל את קלט anlogValue ל- (5/1024), אז נקבל את הערך הדיגיטלי של מתח הכניסה. למד כאן כיצד להשתמש בקלט ADC בארדואינו.
בחלק זה של הקוד, הערך בפועל של התנגדות לא ידועה מחושב לפי הנוהל כמוסבר לעיל.
חיץ = Vout / (Vin-Vout); R2 = R1 * חיץ;
בחלק זה של הקוד, ערך ההתנגדות הלא ידוע מודפס בתצוגה 16 * 2 lcd.
lcd.setCursor (4,0); lcd.print ("מד אוהם"); lcd.setCursor (0,1); lcd.print ("R (אוהם) ="); lcd.print (R2);
זה אנחנו יכולים לחשב בקלות את ההתנגדות של נגד לא ידוע באמצעות Arduino. בדקו גם:
- מד תדרים של ארדואינו
- מד קיבוליות ארדואינו