תוכן עניינים:

מודד PIC16F877: 6 שלבים
מודד PIC16F877: 6 שלבים

וִידֵאוֹ: מודד PIC16F877: 6 שלבים

וִידֵאוֹ: מודד PIC16F877: 6 שלבים
וִידֵאוֹ: LDmicro 10: Incubator Temperature Regulator (Microcontroller PLC Ladder Programming with LDmicro) 2024, נוֹבֶמבֶּר
Anonim
מודד PIC16F877
מודד PIC16F877

מבוא PICMETER

פרויקט PICMETER זה הפך לכלי שימושי ואמין לכל חובב אלקטרוניקה.

  • הוא פועל על בקר מיקרו PIC16F877 / 877A.
  • זוהי מערכת פיתוח PIC
  • הוא בעל 19 פונקציות מרובות (וולט מד, מד תדרים, מחולל אותות, מדחום …)
  • זהו בודק רכיבים (R, L, C, דיודה …) עם עד 5 טווחים על כל פונקציה.
  • יש לו רדיו ASK של פס 433MHz, שמחכה ליישום כלשהו.
  • זוהי מערכת רכישה מרחוק, שבה מחשב אחר יכול לאסוף נתונים באמצעות היציאה הטורית לתצוגה גרפית. (הוא שימש כקצה החזית של פרויקט הא.ק.ג.).
  • יש לו מתקן רישום (לרישום נתונים לאורך שעות), התוצאות מועלות מ- EEPROM.
  • הוא מייצר אותות בדיקה להנעת כמה מנועים.
  • הוא נבדק ביסודיות, ראה תצלומים בשלב 5.
  • התוכנה משוחררת כקוד פתוח

הוראה זו היא גרסה מצומצמת של התיעוד המלא. הוא מתאר את החומרה והתוכנה המספיקות לאחרים כדי לבנות אותה כפרויקט שהושלם, או להשתמש בה כמערכת פיתוח לביצוע שינויים נוספים, או פשוט לחפש רעיונות לשימוש בפרויקטים אחרים.

אספקה

השבב הקריטי היחיד לרכישה הוא ה- Microchip PIC16F877A-I/P

  • A = הגרסה המאוחרת יותר השונה מהמקור בהגדרה של סיביות תצורה.
  • I = טווח טמפרטורות תעשייתי
  • P = חבילת שורת כפול פלסטיק בעלת 40 עופרות, 10 מגהרץ, גבולות VDD רגילים.

כמו כן ה- Hitachi LM032LN 20 תווים על ידי 2 שורות LCD אשר בנה בקר HD44780.

החלקים האחרים הם רק רכיבים חשמליים גנריים, לוח PCB, LM340, LM311, LM431, טרנזיסטורים בעלי צריכת חשמל נמוכה וכו '.

שלב 1: תיאור PICBIOS

תיאור PICBIOS
תיאור PICBIOS

תיאור PICBIOS

תוכנה זו פועלת על לוח PIC16F877 ותופסת את 4k התחתון של זיכרון התוכנית. הוא מספק את סביבת התוכנה לתוכנית יישומים שתופסת את המחצית העליונה של זיכרון התוכנה. זה דומה ברעיון ל- PC-BIOS עם כמה "ניפוי באגים" כמו פקודות לפיתוח תוכניות ויש לו 5 רכיבים:

  1. תפריט אתחול
  2. תוכנית התקנה
  3. ממשק שורת הפקודה (דרך יציאה טורית)
  4. ליבה ומנהלי התקנים
  5. ממשק תכנות אפליקציות

שלב 2: תיאור PICMETER

תיאור PICMETER
תיאור PICMETER

תיאור PICMETER

מבוא

כמו מולטימטר (וולט, אמפר, אוהם) יש לו פונקציות רבות הנבחרות באמצעות מערכת תפריטים. אבל היותו שילוב של חומרה ותוכנה הופך אותו למגוון מאוד, למשל תכונות כגון רישום לתקופות ארוכות ושליחת נתונים סדרתיים זמינים.

התפריט הוא "הלב" שבו הפונקציות נבחרות באמצעות הלחצנים [שמאל] ו [ימין]. ואז לכל פונקציה נבחרים טווחים שונים על ידי כפתורי [inc] ו- [dec]. לדוגמה קבלים נמדדים בין 0.1nF ל- 9000uF באמצעות 5 טווחים נפרדים.

2.1 תוכנת PICMETER

זה מאורגן כתוכנית יישומים שתופסת את ה- 4k העליון של זיכרון התוכניות ומסתמכת על פונקציות של ה- PICBIOS עבור קלט/פלט של התקן וטיפול בהפרעות. הוא מורכב מקטע התפריטים הפועל כמשימת הרקע וסוקר את הכפתורים כל 20 ms. כאשר לוחצים על כפתור כדי לשנות את הפונקציה או לשנות את הטווח, קוראים לשגרה המתאימה. כאשר לא לוחצים על כפתורים הקריאה הנמדדת מתעדכנת במרווחים של כ- 0.5 שניות. בעצם התפריט הוא טבלת חיפוש.

2.2 פונקציית מטר - חלקים

ישנן פונקציות רבות ולכן חלק זה מחולק לחלקים, כאשר כל אחד עוסק בפונקציות בעלות אופי דומה. זוהי רשימה קצרה של הסעיפים, עיין בתיעוד המלא כדי לראות כיצד כל חלק עובד בפירוט. בשל מגבלות הנמל, ישנן 3 וריאציות של הפרויקט (ראה תיעוד מלא). פונקציות בגופן רגיל משותפות לכל הפרויקטים. פונקציות UNDERLINED כלולות רק בפרויקט PICMETER1. פונקציות ב- ITALICS נכללות רק בפרויקטים של PICMETER2 או PICMETER3.

מדור VoltMeter - קובץ המקור הוא vmeter.asm

מכיל פונקציות המבוססות על מדידת מתח באמצעות ה- ADC.

  • מתח ADC (קורא מתח על קלט נבחר, AN0 עד AN4)
  • AD2 כפול (מציג מתח ב- AN0 ו- AN1 בו זמנית)
  • מד חום TMP -10 עד 80? degC (2N3904 או מתמר LM334 כפול)
  • LOG - קובע מרווח רישום
  • OHM - מדידת התנגדות (שיטת פוטנציומטר) מ 0Ω עד 39MΩ ב -4 טווחים
  • DIO-דיודה, מודדת מתח קדימה (0-2.5V)
  • CON - המשכיות (צפצופים כאשר ההתנגדות נמוכה מסף 25, 50 או 100)

Component Meter1 - קובץ המקור הוא meter1.asm

מדידת קבלים, משרן ונגד באמצעות מעגל משווה LM311. מבוסס על מדידת הזמן של מחזור טעינה אחד.

  • CAL - כיול - מודד 80nf ו -10μF קבוע לבדיקה והתאמה עצמית
  • Cx1 - מדידת קבלים מ 0.1nF עד 9000μF ב -5 טווחים
  • Lx1 - מדידת משרן מ 1mH עד ?? mH ב 2 טווחים
  • Rx1 - מדידת הנגד בין 100Ω ל- 99MΩ בטווח 3

Component Meter2 קובץ מקור Meter2.asm

מדידת רכיבים באמצעות מתנד הרפיה חלופי LM311 ומתנד קולפיטס. מבוסס על מדידת פרק הזמן של N מחזורים. זה מעט יותר מדויק מהשיטה למעלה שכן הזמן של N = עד 1000 מחזורים נמדד. זה יותר פתרון חומרה ודורש יותר בנייה.

  • Cx2 - מדידת קבלים מ 10pF עד 1000 μF ב -5 טווחים.
  • Rx2 - מדידת הנגד מ 100 אוהם עד 99M ב -5 טווחים.
  • Lx2 - מדידת משרן מ 1mH עד 60mH בטווח 1.
  • osc - מדידת משרן (שיטת Colpitts) מ 70μH עד 5000μH? ב 2 טווחים.

מד תדרים - קובץ מקור Fmeter.asm

מכיל פונקציות המשתמשות במונים ובטיימרים של PIC, ועוד מעט;

  • FREQ - מד תדרים מ 0Hz עד 1000kHz ב -3 טווחים
  • XTL - מדידת תדירות גבישי LP (לא נבדק)
  • SIG - מחולל אותות מ 10Hz עד 5KHz ב -10 שלבים
  • SMR - מנוע צעד - כיוון הפוך
  • SMF- מנוע צעד- כיוון קדימה.

תקשורת - קובץ המקור הוא comms.asm

פונקציות להעברת/קבלת אות לבדיקת ציוד היקפי סידורי ו- SPI;

  • UTX בודק TX & inc סדרתי וקצב סיביות מ- 0.6 עד 9.6k
  • URX בודק RX & inc. סדרתי וקצב סיביות מ- 0.6 עד 9.6k
  • SPM - בודק SPI במצב אב
  • SPS - בודק SPI במצב עבדים

מודול רדיו FSK - קובץ המקור הוא Radio.asm

פונקציות באמצעות רדיו RM01 ו- RM02 לקבל ולשדר מודולים. מודולים אלה מתממשקים באמצעות SPI, שמשתמש ברוב סיכות הנמל C.

  • RMB - הגדר מודול רדיו BAUD
  • RMF - הגדר תדר RF של מודול רדיו
  • RMC - קובע תדר שעון מודול רדיו
  • XLC - מתאים את עומס הקיבול הגבישי
  • POW - קובע את עוצמת המשדר
  • RM2 - שידור נתוני בדיקה (מודול RM02)
  • RM1 - קבל נתוני בדיקה (מודול RM01)

מודול הבקרה - control.asm של קובץ המקור

  • SV1 - פלט סרוו (באמצעות CCP1) מ -1 ms עד 2 ms בצעדים של 0.1 ms
  • SV2 - פלט סרוו (באמצעות CCP2) מ -1 ms עד 2 ms בצעדים של 0.1 ms
  • PW1 - פלט PWM (באמצעות CCP1) מ -0 ל -100% בשלבים של 10%
  • PW2 - פלט PWM (באמצעות CCP2) מ -0 ל -100% בשלבים של 10%

רכישת נתונים מרחוק - קובץ המקור הוא remote.asm

מצב מרחוק (Rem) - מערכת פקודות כך שניתן להפעיל את המונה ממחשב באמצעות ממשק סידורי. פקודה אחת אוספת נתונים שנרשמו ב- EEPROM על פני תקופה של שעות. פקודה אחרת קוראת מתח במלוא המהירות של ה- ADC לתוך מאגר הזיכרון, ולאחר מכן מעבירה את המאגר למחשב האישי, שם ניתן להציג את התוצאות באופן גרפי. למעשה זהו אוסצילוסקופ, הפועל על פני טווח תדרי שמע

זמן - קובץ המקור הוא time.asm

טים - רק מציג זמן בפורמט hh: mm: ss ומאפשר שינוי באמצעות 4 כפתורים

שלב 3: תיאור המעגל

תיאור המעגל
תיאור המעגל
תיאור המעגל
תיאור המעגל

תיאור המעגל

3.1 מועצת פיתוח בסיסית

איור 1 מציג לוח פיתוח בסיסי להפעלת PICBIOS. זה מאוד סטנדרטי ופשוט, מקור חשמל מוסדר 5V וקבלים ניתוק, C1, C2….

השעון הוא קריסטל 4 מגה -הרץ, כך ש- TMR1 מתקתק במרווחים של 1us. קבלים 22pF C6, C7 מומלצים על ידי Microchip, אך נראה שהם לא נחוצים בפועל. כותרת ה- ICSP (תכנות סידורי במעגל) משמשת לתכנת תחילה PIC ריק עם ה- PICBIOS.

היציאה הטורית (COM1)- הערה TX ו- RX מוחלפים, כלומר COM1- TX מחובר ליציאה C-RX, ו- COM1-RX מחובר ליציאה C-TX (המכונה בדרך כלל "מודם null"). כמו כן רמות האות הנדרשות ל- RS232 צריכות להיות באמת +12V (רווח) ו- -12V (סימן). עם זאת, רמות המתח של 5V (רווח) ו- 0V (סימן) נראות מתאימות לכל המחשבים שבהם השתמשתי. אז רמות האות של RX ו- TX פשוט הופכות על ידי נהג קו (Q3) ומקלט קו (Q2).

ה- LM032LN (2 שורות 20 תווים) LCD משתמש ב"ממשק HD44780 "הסטנדרטי. התוכנה משתמשת במצב ניפוח 4 סיביות וכתיבה בלבד, שמשתמשת ב 6 סיכות של יציאה D. ניתן להגדיר את התוכנה לנשנש נמוך (יציאות D D 0-3) או לנשנש גבוה (יציאות D סיביות 4-7) כפי שמשתמשים כאן.

מתגי הלחצנים מספקים ארבע כניסות לבחירת התפריט. השתמש בדחיפה לביצוע מתגים מכיוון שהתוכנה מזהה את הקצה הנופל. נגדי המשיכה (= 25k) פנימיים ל- PORT B. לא ניתן להשתמש ביציאה RB6 למתגים, בגלל מכסה 1nF (המומלץ ל- ICSP). אין צורך במתג איפוס?

כפתור 0

תפריט שמאל [◄]

כפתור 1

תפריט ימין [►]

כפתור 2

טווח/ערך תוספת/בחר [▲]

כפתור 3

הפחת טווח/ערך/בחר [▼]

3.2 כניסות אנלוגיות ובודק רכיבים - לוח 1

איור 2 מציג את המעגלים האנלוגיים עבור PICMETER1. כניסות אנלוגיות AN0 ו- AN1 משמשות למדידת מתח כללית. בחר ערכי הנגד עבור המנעים לתת 5V על סיכות הכניסה AN0/AN1.

עבור טווח קלט 10V, m = 1 + R1/R2 = 1 + 10k/10k = 2

עבור טווח קלט 20V, m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2 משמש למדידת טמפרטורה באמצעות הטרנזיסטור Q1 כמתמר טמפרטורה "גולמי". מקדם הטמפרטורה של טרנזיסטור NPN ב- 20 celcuis = -Vbe/(273+20) = -0.626/293 = -2.1 mV/K. (ראה מדידת טמפרטורה בסעיף אנלוגי). ה- LM431 (U1) מספק הפניית מתח של 2.5V ב- AN3. לבסוף AN4 משמשת לבדיקות או רכיבים בקטע אנלוגי.

למדידת רכיבים, רכיב הבדיקה מחובר לקלט RE2 (D_OUT) ו- AN4. הנגדים R14 עד R18 מספקים חמישה ערכי התנגדות שונים המשמשים למדידת התנגדות (שיטת פוטנציומטר) בסעיף אנלוגי. הנגדים "מחוברים במעגל" על ידי הגדרת סיכות יציאה C/יציאה E כקלט או פלט.

Meter1 מבצע מדידת רכיבים על ידי טעינת שילובים שונים של קבלים ונגד ידועים/לא ידועים. LM311 (U2) משמש ליצירת הפרעות CCP1 כאשר קבל נטען אל הסף העליון (75% VDD) ופורק לסף התחתון (25% VDD) מתחי סף אלה נקבעים על ידי R8, R9, R11 ופוטנציומטר R10 המעניק קלות התאמה. בעת בדיקת קבלים, הקבל C13 (= 47pF) בתוספת הקיבול התועה של הלוח מספקים 100pF גימור. זה מבטיח שכאשר רכיב הבדיקה יוסר, המרווח בין CCP1 מפריע יעלה על 100 us, ואינו מעמיס על ה- PIC. ערך זה (100pF) מופחת ממדידת רכיבים על ידי תוכנה. D3 (1N4148) מספק את נתיב הפריקה בעת בדיקת משרנים ומגן על D_OUT, ומונע את המתח להיות שלילי.

λΩπμ

שלב 4: מדריך בנייה

מדריך בנייה
מדריך בנייה
מדריך בנייה
מדריך בנייה

מדריך בנייה

דבר טוב הוא שהפרויקט הזה נבנה ונבדק בשלבים. תכנן את הפרויקט שלך. להוראות אלה אני מניח שאתה בונה PICMETER1, למרות שההליך דומה ל- PICMETER2 ו- 3.

4.1 לוח פיתוח PCB

אתה צריך לבנות את לוח הפיתוח הבסיסי (איור 1) שאמור להתאים על לוח PCB בגודל סטנדרטי בגודל 100 על 160 מ מ, לתכנן את הפריסה כך שהיא תהיה מסודרת ככל האפשר. נקו את הלוח והפח את כל הנחושת, השתמשו ברכיבים ומחברים אמינים, נבדקו היכן שניתן. השתמש בשקע 40 פינים עבור ה- PIC. בדוק את המשכיות כל המפרקים המולחמים. זה עשוי להיות מועיל להסתכל על תמונות פריסת הלוח שלי למעלה.

כעת יש לך PIC ריק ואתה צריך לתכנת PICBIOS לזיכרון פלאש. אם יש לך כבר שיטת תכנות - בסדר. אם לא אני ממליץ על השיטה הבאה בה השתמשתי בהצלחה.

4.2 מתכנת AN589

זהו מעגל ממשק קטן המאפשר לתכנת PIC ממחשב באמצעות יציאת המדפסת (LPT1). העיצוב פורסם במקור על ידי Microchip בהערת יישום. (הפניה 3). קבל או עשה תוכנת תואם AN589. השתמשתי בעיצוב משופר של AN589 המתואר כאן. זהו ICSP - כלומר הכנס את ה- PIC לשקע של 40 פינים כדי לתכנת אותו. לאחר מכן חבר את כבל המדפסת לכניסת AN539 ואת כבל ICSP מ- AN589 ללוח הפיתוח. עיצוב המתכנת שלי לוקח את כוחו מלוח הפיתוח באמצעות כבל ICSP.

4.3 הגדרות PICPGM

כעת אתה זקוק לתוכנת תכנות כלשהי על מנת להריץ במחשב. PICPGM עובד עם מתכנתים שונים כולל AN589, והוא מוריד בחינם. (ראה הפניות).

מתפריט החומרה, בחר מתכנת AN589, ב- LPT1

התקן = PIC16F877 או 877A או זיהוי אוטומטי.

בחר קובץ Hex: PICBIOS1. HEX

בחר מחק PIC, ולאחר מכן תוכנית PIC ולאחר מכן אמת PIC. עם קצת מזל אתה מקבל הודעת השלמה מוצלחת.

הסר את כבל ICSP, הפעל מחדש את ה- PIC, בתקווה שתראה את תצוגת PICBIOS בצג LCD, אחרת בדוק את החיבורים שלך. בדוק את תפריט האתחול על ידי לחיצה על הלחצנים השמאליים והימניים.

4.4 חיבור סידורי (היפר -סופי או מרק)

כעת בדוק את החיבור הטורי בין PIC למחשב. חבר את הכבל הטורי ממחשב COM1 ללוח הפיתוח והפעל תוכנית תקשורת, כמו ה- Hyper-Terminal הישן של Win-XP או PUTTY.

אם אתה משתמש ב- Hyperterminal, הגדר כדלקמן. מהתפריט הראשי, התקשר> נתק. לאחר מכן קובץ> מאפיינים> התחבר לכרטיסייה. בחר Com1 ולאחר מכן לחץ על לחצן התצורה. בחר 9600 bps, ללא זוגיות, 8 סיביות, עצירה אחת. בקרת זרימת חומרה ". לאחר מכן התקשר> התקשר כדי להתחבר.

אם משתמשים ב- PuTTY, חיבור> סידורי> התחבר ל- COM1 ו- 9600 bps, ללא זוגיות, 8 סיביות, עצירה אחת. בחר "RTS/CTS". לאחר מכן הפעלה> סידורי> פתוח

בתפריט אתחול PICBIOS, בחר "מצב פקודה" ולאחר מכן הקש על [inc] או [dec]. הודעת ההודעה "PIC16F877>" אמורה להופיע על המסך (אם לא בדוק את הממשק הטורי שלך). ללחוץ ? כדי לראות את רשימת הפקודות.

4.5 תוכנית PICMETER

ברגע שהחיבור הטורי פועל, תיכנות זיכרון פלאש פשוט כמו שליחת קובץ hex. הזן את הפקודה "P", המגיבה עם "שלח קובץ hex …".

באמצעות היפר-מסוף, מתפריט העברה> שלח קובץ טקסט> PICMETER1. HEX> פתח.

ההתקדמות מסומנת על ידי ":." כאשר כל שורה של קוד הקס מתוכנת. סוף סוף טעינת הצלחה.

אם אתה משתמש ב- PuTTY, ייתכן שיהיה עליך להשתמש בפנקס הרשימות ולהעתיק/להדביק את כל התוכן של PICMETER1. HEX לתוך PuTTY.

בדומה לאימות, הזן את הפקודה "V". בהיפר-מסוף, מתפריט העברה> שלח קובץ טקסט> PICMETER1. HEX> אישור.

אזהרה = xx … אם תתכנת שבב 16F877A, תקבל כמה הודעות אזהרה. זה קשור להבדלים בין 877 ל- 877A, המתכנתים ב -4 בלוקים של מילים. לרוע המזל המקשר אינו מיישר את תחילת המקטעים על 4 גבולות מילים. הפתרון הפשוט הוא שיהיו 3 הוראות NOP בתחילת כל חלק, אז פשוט תתעלם מהאזהרות.

הפעל מחדש ותפריט האתחול של BIOS בחר "הפעל יישום". אתה אמור לראות את PICMETER1 בצג ה- LCD.

4.6 הפעל את PICMETER1

כעת התחל לבנות חלקים נוספים בלוח הפיתוח (איור 2) בכדי לגרום לפונקציות מד מתח, מד רכיבים לפעול כנדרש.

מד 1 צריך קצת כיול. בפונקציה "Cal", התאם את R10 כדי לתת קריאות של 80.00, 80.0nF ו- 10.000uF בערך. לאחר מכן קרא פונקציה קטנה של 100pF על Cx1. אם הקריאה נגמרה, שנה את מכסה החיתוך C13, או שנה את הערך של "trimc" ב- meter1.asm.

כעת הפעל את תוכנית ההתקנה של PICBIOS ושנה מספר הגדרות כיול ב- EEPROM. כיול הטמפרטורה על ידי התאמת הקיזוז של 16 סיביות (פורמט גבוה, נמוך). ייתכן שיהיה עליך גם לשנות את ערך "עיכוב".

אם הכוונה שלך היא לבנות את הפרויקט כפי שהוא - מזל טוב - סיימת! ספר לי על ההצלחה שלך ב- Instructables.

4.7 MPLAB

אך אם ברצונך לבצע שינויים או לפתח את הפרויקט הלאה, עליך לבנות מחדש את התוכנה באמצעות MPLAB. הורד MPLAB ממיקרו -שבב. זהו ה"ישן "הפשוט והפשוט לשימוש. לא ניסיתי את כלי הפיתוח החדש של labx שנראה הרבה יותר מסובך.

פרטים על יצירת פרויקט חדש ולאחר מכן הוספת קבצים לפרויקט בתיעוד מלא.

שלב 5: תמונות של בדיקות

תמונות של בדיקות
תמונות של בדיקות
תמונות של בדיקות
תמונות של בדיקות
תמונות של בדיקות
תמונות של בדיקות

התמונה למעלה של מדחום, קריאה של 15 מעלות צלזיוס

תדירות הבדיקה, קריאה = 416 אלף

משרן הבדיקה מסומן 440uF, קורא 435u

בודק נגד 100k, קורא 101k, זה קל.

בדיקת קבלים של 1000pF, הקריאה היא 1.021nF

שלב 6: הפניות וקישורים

6.1 גיליון נתונים PIC16F87XA, Microchip Inc.

ww1.microchip.com/downloads/en/devicedoc/39582b.pdf

6.2 מפרט תכנות זיכרון PIC16F87XA FLASH, שבב

ww1.microchip.com/downloads/en/devicedoc/39589b.pdf

6.3 הערת יישום AN589, Microchip Inc.

ww1.microchip.com/downloads/en/appnotes/00589a.pdf

6.4 הורדת PICPGM

picpgm.picprojects.net/

6.5 MPLab IDE v8.92 להורדה בחינם, שבב

pic-microcontroller.com/mplab-ide-v8-92-free-download/

6.6 גליונות נתונים עבור מודולי Hope RFM01-433 ו- RFM02-433, פתרונות RF

www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238

6.7 תבלין LT, התקנים אנלוגיים

www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

6.8 מעגל מתכנת פיק מבוסס AN589, Best-Microcontroller-Projects

www.best-microcontroller-projects.com/pic-programmer-circuit.html

6.9 קבצי קוד פתוח

קוד פתוח

מוּמלָץ: