פרויקטון בקרת שער חניה הסבר פרויקטון חומרה IR משדר מקלט ובכך הוא קובע א
Transcription
פרויקטון בקרת שער חניה הסבר פרויקטון חומרה IR משדר מקלט ובכך הוא קובע א
פרויקטון בקרת שער חניה הסבר פרויקטון חומרה VCC VCC P1 R 10k R1 10K 200 P1 VCC C8 U4 4 SLCT(D4) PE(D5) 1 + - 3 2 7 + - 5 6 8 + - 10 9 14 + - 12 13 LM324 10K 0.1u VCC=5V R2 VCC1 1k LED DATA0 DATA1 2 7 10 15 M1 8 U2 16 MOTOR LEFT CONNECTOR DB25F D3 L293D 1A 2Y 2A 1Y 3A 3Y 4A 4Y 6 3 11 14 VCC=5V 1,2EN 3,4EN 4 5 13 12 GND GND GND GND 1 9 IR משדר מקלט ובכך הוא קובע אתIR קובע את עוצמת הזרם דרך הדיודהR1 הנגד-מעגל המשדר .עוצמת השידור . 1.2V IR מפל המתח על הדיודה 19mA= 5 − 1.2 VCC − VD = =I 200 R sensor1 VCC C9 DATA2 IR 0.1u R1 R 200 11 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13 VCC2 STROBE(D0-out2) AUTO(D1-out2) DATA0(out0) ERROR(D3-in1) DATA1(out0) INT(D2-out2) DATA2(out0) SELECT(D3-out2) DATA3(out0) GND DATA4(out0) GND DATA5(out0) GND DATA6(out0) GND DATA7(out0) GND ACKNLG(D6-in1) GND BUSY(D7-in1) GND PE(D5-in1) GND SLCT(D4-in1) - חישוב הזרם דרך המשדר IR sensor2 מעגל המקלט -המקלט הוא פוטו טרנזיסטור ,זרם הבסיס נקבע על ידי קרינת . IR כאשר המקלט קולט שידור ) IRאין חסימה( ,הזרם במעגל המקלט גדול. מתח על R2גדול לפיכך המתח בנקודה Aקטן) .בסביבות , 0--0.5Vתלוי בעוצמת הקליטה(. בזמן חסימה בין המשדר למקלט ,הזרם בענף המקלט קטן עד למינימום ,מפל המתח על R2 קטן ,המתח בנקודה Aגדל )בסביבות .( 4-3V VCC בנקודה Aקיבלנו שינויי מתח. R2 R1 10K 200 על מנת להפוך שינויים אלה ל '0' -או ''1 שהמחשב יזהה יש צורך במשווה. IR sensor1 C8 0.1u תפקיד הקבל לסנן רעשים )מקצר את הרעשים לאדמה(. משווה המשווה בנוי ממגבר שרת בחוג פתוח Vמחובר לנגד משתנה ואנו קובעים את המתח בנקודה לפי מחלק המתח של הנגד. V+מחובר לנקודה Aקולקטור הפוטוטרנזיסטור. A מתח המוצא של המשווה V+ > V- VOÎ '1' V+ < V- VOÎ ' 0' חיבור המשווה לכניסות\יציאות של המדפסת VCC VCC P1 R2 10k A R1 10K 200 VCC U4 IR 4 0.1u + - 3 2 7 + - 5 6 8 + - 10 9 14 + - 12 13 sensor1 VCC 10K 200 11 1 LM324 C8 C9 0.1u IR sensor2 דוחף הזרם L293D מאפיינים: • זרם מקסימלי 500mA • זרם רגעי 1.5mA • חסינות לרעש גבוהה • הגנה מפני התחממות השימוש בדוחף הזרם הוא חיוני משום שלא ניתן לחבר ליציאות המחשב את המנוע בגלל צריכת זרם גבוהה .המחשב מסוגל להוציא זרמים בערכי מילי אמפרים מנועי ה DC-בהם אנחנו משתמשים צורכים עד מאה מילי אמפר ,ולכן התבקש להשתמש בדוחף כמתווך. דוחף זה הוא מסוג Hבו מחוברים 4טרנזיסטורים אשר עובדים בקטעון או רוויה בהתאם לאות הכניסה. בכך הם מאפשרים למתח המנועים להגיע למנוע בקוטביות מסוימת )מנוע מסתובב קדימה( ,בקוטביות הפוכה )מנוע מסתובב הפוך( או ניתוק המתח )מנוע עוצר(. מבנה עקרוני של דוחף מסוג H הטרנזיסטורים משמשים כמפסקים )עבודה ברוויה ובקטעון( כאשר S3,S2ברוויה ו S1,S4 -בקטעון הזרם יזרום מימין לשמאל המנוע יסתובב לכיוון אחד. כאשר S1,S4ברוויה ו S3,S2 -בקטעון הזרם יזרום משמאל לימין המנוע יסתובב לכיוון השני. תוכנה >#include <windows.h הכרזה על ספריות מובנות לשימוש בפונקציות >#include <stdio.h >#include<conio.h ;)short _stdcall Inp32(short portaddress ;)void _stdcall Out32(short portaddress,short data *************************************// // password *************************************// )(int password { ;int a,f ;char key מערך של הקוד בערכי char code[4]={0x31,0x32,0x33,0x34}; ASCII ;]char get_code[4 הכרזה על מערך לקליטת הקוד מהמשתמש הודעת הכנסת קוד ;)" לולאה 4פעמים לקליטת הקוד קליטת מקש בקוד הכנסת הערך הנקלט למערך הקליטה הדפסת * על המסך printf(" ENTER PASSWORD: )for (a=0;a<4;a++ { key=getch(); ASCII ;get_code[a]=key ;)"*"(printf } )for (f=0,a=0;a<4;a++ לולאת בדיקת הקוד { )]if (code[a]!=get_code[a האם הקוד הנקלט שונה מהקוד { האמיתי ;f=1 אם כן שים בדגל 1 ;break סיים את הלולאה } } ;return f fקוד שגוי f=1קוד נכון f=0 החזר את } ********************************************// // motor *******************************************// )(void motor { ;int s ;)"printf("\n THE GATE IS OPEN\n הודעת פתיחת השער הפעלת המנוע לפתיחה והדלקת הלד ;)Out32(0x378,0x05 ;)Sleep(2000 השהיה של 2שניות בה המנוע יעבוד ;)Out32(0x378,0x00 עצירת המנוע כיבוי הלד ;)Sleep(2000 השהייה 2שניות לאפשר מעבר רכב {do לולואה קלוט מצב המפסקים למשתנה s=Inp32(0x379); s בצע מיסוך לחיישני כניסה\יציאה s=s&0x30; d5,d4 } ;)while (s!=0x00 אם יש רכב בשער )חישניים ב ('1'-חזור על הלולאה ;)"printf("\n THE GATE IS close\n אין רכב בשער הוצא הודעת סגירה ;)Out32(0x378,0x06 הפעל מנוע לסגירת השער ;)Sleep(2000 המתן 2שניות ;)Out32(0x378,0x00 עצור את המנוע השער סגור } **********************************************// // main **********************************************// )(void main { הכרזת משתנים כיבוי מנוע ולד הודעת סריקה קליטת כניסה מצב חיישני כניסה יציאה מיסוך סיביות 4,5לבדיקת החיישנים אם החיישנים ב '0'-לא הגיע רכב חזור האם חיישן הכניסה הופעל )'('1 לולאה אין סופית הפעל את הפונקציה לקליטת קוד ערך מוחזר ' '0הקוד תקין האם הקוד תקין ;int p,sensor )while(1 { ;)Out32(0x378,0x00 ;)"printf("SYSTEM SCANING\n {do ;)sensor=Inp32(0x379 ;sensor=sensor&0x30 } ;)while ((sensor&0x30)==0x00 )if (sensor==0x10 { )while(1 { ;)(p=password )if ( p==0 { הפעל פונקצה לפתיחה וסגירה של השער ;)(motor ;)Sleep(5000 השהיה 5שניות ;break } else הודעת שגיאה במידה ;)"printf("\n ERROR TRY AGAIN\n והקוד שגוי חיישן יציאה הופעל)'('1 הפעל פונקציה לפתיחה וסגירת השער ;)(motor } } else } }