- רכיבים נדרשים
- מודול PCF8591 ADC / DAC
- סיכות I2C ב- Raspberry Pi
- ממשק PCF8591 ADC / DAC מודול עם פטל פטל
- תוכנית פייתון להמרה אנלוגית לדיגיטלית (ADC)
המרה אנלוגית לדיגיטלית היא משימה חשובה מאוד באלקטרוניקה משובצת, מכיוון שרוב החיישנים מספקים פלט כערכים אנלוגיים וכדי להזין אותם למיקרו-בקר שמבין רק ערכים בינאריים, עלינו להמיר אותם לערכים דיגיטליים. אז כדי להצליח לעבד את הנתונים האנלוגיים, מיקרו-בקרים זקוקים לממיר אנלוגי לדיגיטלי.
למיקרו-בקר כלשהו יש ADC מובנה כמו Arduino, MSP430, PIC16F877A אך למיקרו-בקר כלשהו אין את זה כמו 8051, Raspberry Pi וכו 'ועלינו להשתמש בכמה ICs ממיר אנלוגי לדיגיטלי חיצוני כמו ADC0804, ADC0808. להלן תוכל למצוא דוגמאות שונות של ADC עם מיקרו-בקרים שונים:
- כיצד להשתמש ב- ADC ב- Arduino Uno?
- מדריך ADC לפטל פטל
- ממשק ADC0808 עם מיקרו-בקר 8051
- מד מתח דיגיטלי 0-25V באמצעות מיקרו בקר AVR
- כיצד להשתמש ב- ADC ב- STM32F103C8
- כיצד להשתמש ב- ADC ב- MSP430G2
- כיצד להשתמש ב- ADC ב- ARM7 LPC2148
- שימוש במודול ADC של מיקרו-בקר PIC עם MPLAB ו- XC8
במדריך זה, אנו הולכים ללמוד כיצד לממשק את מודול PCF8591 ADC / DAC עם Raspberry Pi.
רכיבים נדרשים
- פאי פטל
- מודול ADC PCF8591
- סיר 100K
- כבלים מגשרים
ההנחה היא שיש לך Raspberry Pi עם מערכת ההפעלה האחרונה של Raspbian מותקנת ואתה יודע כיצד SSH לתוך ה- Pi באמצעות תוכנת מסוף כמו מרק. אם אתה לא חדש ב- Raspberry Pi, עקוב אחר מאמר זה כדי להתחיל לעבוד עם Raspberry Pi. ובכל זאת אם אתה נתקל בבעיה כלשהי אז יש טונות של מדריכי פטל פי שיכולים לעזור.
מודול PCF8591 ADC / DAC
PCF8591 הוא מודול ממיר אנלוגי לדיגיטלי 8 סיביות או מודול ממיר דיגיטלי לאנלוגי 8 סיביות, כלומר כל סיכה יכולה לקרוא ערכים אנלוגיים עד 256. יש לו גם מעגל LDR ומעגל תרמיסטור על הלוח. למודול זה ארבעה קלט אנלוגי ופלט אנלוגי אחד. זה עובד על תקשורת I 2 C, כך שיש סיכות SCL ו- SDA לשעון סדרתי וכתובת נתונים טורית. זה דורש מתח אספקה של 2.5-6 וולט ויש לו זרם המתנה נמוך. אנו יכולים גם לתפעל את מתח הכניסה על ידי כוונון כפתור הפוטנציומטר במודול. ישנם גם שלושה קופצים על הלוח. J4 מחובר לבחירת מעגל הגישה לתרמיסטור, J5 מחובר לבחירת מעגל הגישה לנגד LDR / צילוםו- J6 מחובר לבחירת מעגל הגישה למתח המתכוונן. ישנם שני נוריות על הלוח D1 ו- D2- D1 מציג את עוצמת מתח המוצא ו- D2 מראה את עוצמת מתח האספקה. גבוה יותר את מתח הפלט או האספקה, עוצמת ה- LED D1 או D2 גבוהה יותר. אתה יכול גם לבדוק נוריות אלה באמצעות פוטנציומטר על VCC או על סיכה AOUT.
סיכות I2C ב- Raspberry Pi
על מנת להשתמש ב- PCF8591 עם Raspberry Pi, הדבר הראשון שצריך לעשות הוא להכיר את סיכות יציאת Raspberry Pi I2C ולהגדיר את יציאת I2C ב- Raspberry pi.
להלן תרשים הפינים של פטל פי 3 דגם B +, וסיכות I2C GPIO2 (SDA) ו- GPIO3 (SCL) משמשות במדריך זה.
קביעת תצורה של I2C ב- Raspberry Pi
כברירת מחדל, I2C מושבת ב- Raspberry Pi. אז ראשית יש להפעיל אותו. כדי לאפשר את ה- I2C ב- Raspberry Pi
1. עבור למסוף והקלד sudo raspi-config.
2. כעת מופיע כלי תצורת התוכנה של Raspberry Pi.
3. בחר באפשרויות ממשק ולאחר מכן הפעל את ה- I2C.
4. לאחר הפעלת ה- I2C אתחל את ה- Pi.
סריקת כתובת I2C של PCF8591 באמצעות Raspberry Pi
עכשיו כדי להתחיל לתקשר עם ה- PCF8591 IC, ה- Raspberry Pi חייב לדעת את כתובת ה- I2C שלו. כדי למצוא את הכתובת חבר תחילה את סיכת ה- SDA וה- SCL של PCF8591 לסיכת ה- SDA וה- SCL של Raspberry Pi. חבר גם את פינים + 5V ו- GND.
כעת פתח את המסוף והקלד את הפקודה למטה כדי לדעת את כתובת מכשיר ה- I2C המחובר, sudo i2cdetect –y 1 או sudo i2cdetect –y 0
לאחר שמצאתי את כתובת I2C הגיע הזמן לבנות את המעגל ולהתקין את הספריות הדרושות לשימוש ב- PCF8591 עם Raspberry Pi.
ממשק PCF8591 ADC / DAC מודול עם פטל פטל
דיאגרמת מעגלים לממשק PCF8591 עם פטל פטל היא פשוטה. בדוגמה זו של ממשק, אנו נקרא את הערכים האנלוגיים מכל אחד מהסיכות האנלוגיות ונראה אותם במסוף Raspberry Pi. אנו יכולים לשנות את הערכים באמצעות סיר 100K.
חבר את ה- VCC וה- GND ל- GPIO2 ו- GPIO של Raspberry Pi. לאחר מכן, חבר את SDA ו- SCL ל- GPIO3 ו- GPIO5 בהתאמה. סוף סוף חבר סיר 100K עם AIN0. אתה יכול גם להוסיף 16x2 LCD כדי להציג ערכי ADC במקום להציג אותו בטרמינל. למידע נוסף על ממשק 16x2 LCD עם Raspberry Pi כאן.
תוכנית פייתון להמרה אנלוגית לדיגיטלית (ADC)
וידאו תוכנית עבודה המלא ניתן בסוף המדריך זה.
ראשית, ייבא את ספריית smbus לתקשורת אוטובוס I 2 C וספריית זמן כדי לתת זמן שינה בין הדפסת הערך.
SMBus יבוא זמן יבוא
עכשיו הגדירו כמה משתנים. המשתנה הראשון מכיל את הכתובת של אוטובוס ה- I 2 C והמשתנה השני מכיל את כתובת סיכת הקלט האנלוגית הראשונה.
כתובת = 0x48 A0 = 0x40
לאחר מכן, יצרנו אובייקט לפונקציה SMBus (1) של הספרייה smbus
אוטובוס = smbus.SMBus (1)
כעת, בעוד השורה הראשונה אומרת ל- IC לבצע את המדידה האנלוגית בסיכת הקלט האנלוגית הראשונה. השורה השנייה שומרת את הכתובת הנקראת בסיכה אנלוגית בערך משתנה. לבסוף הדפיס את הערך.
בעוד נכון: bus.write_byte (כתובת, A0) ערך = bus.read_byte (כתובת) הדפס (ערך) time.sleep (0.1)
עכשיו סוף סוף שמור את קוד הפיתון בקובץ כלשהו עם כניסת.py והפעל את הקוד במסוף פטל Pi באמצעות הפקודה הבאה "
שם הקובץ של python.py
לפני הפעלת הקוד וודא שהפעלת את תקשורת I 2 C וכל הפינים מחוברים כפי שמוצג בתרשים, אחרת זה יראה שגיאות. הערכים האנלוגיים חייבים להתחיל להופיע במסוף כמו להלן. כוונן את כפתור הסיר ותראה את השינוי ההדרגתי בערכים. למידע נוסף על הפעלת התוכנית ב
קוד פיתון מלא ווידאו מופיע להלן.