במאמר זה, אנו נחבר את סונאר טווח-מרחק טווח הקולי HC-SR04 לארדואינו.
נחוץ
- - ארדואינו;
- - חיישן קולי HC-SR04;
- - חוטי חיבור.
הוראות
שלב 1
פעולתו של מד טווח הקולי HC-SR04 מבוססת על עקרון ההדהוד. הוא פולט דחפי קול לחלל ומקבל אות המשתקף ממכשול. המרחק לאובייקט נקבע על ידי זמן התפשטות גל הקול למכשול ובחזרה.
גל הקול מופעל על ידי הפעלת דופק חיובי של לפחות 10 מיקרו שניות על רגל ה- TRIG של טווח המידה. ברגע שהדופק מסתיים, טווח הטווח פולט פרץ של פעימות קול בתדר של 40 קילוהרץ לחלל שמולו. במקביל, האלגוריתם לקביעת זמן ההשהיה של האות המוחזר מופעל, ויחידה לוגית מופיעה על רגל ה- ECHO של טווח הטווח. ברגע שהחיישן מזהה את האות המשתקף, מופיע אפס הגיוני על סיכת ה- ECHO. משך האות הזה ("עיכוב הד" באיור) קובע את המרחק לאובייקט.
טווח מדידת מרחק של טווח טווח HC-SR04 - עד 4 מטר ברזולוציה של 0.3 ס מ. זווית תצפית - 30 מעלות, זווית יעילה - 15 מעלות. הצריכה הנוכחית במצב המתנה היא 2 מיליאמפר, במהלך הפעולה - 15 מיליאמפר.
שלב 2
אספקת החשמל של טווח הדיווח הקולי מתבצעת במתח של +5 V. שני הפינים האחרים מחוברים לכל יציאות דיגיטליות של הארדואינו, אנו נתחבר ל -11 ו -12.
שלב 3
עכשיו בואו נכתוב סקיצה שקובעת את המרחק למכשול ומוציאה אותו ליציאה הסדרתית. ראשית, אנו קובעים את המספרים של סיכות TRIG ו- ECHO - אלה סיכות 12 ו -11. ואז אנו מכריזים על הדק כפלט ומהדהד כקלט. אנו מאתחלים את היציאה הטורית ב 9600 באוד. בכל חזרה על הלולאה (), אנו קוראים את המרחק ומוציאים אותו לנמל.
הפונקציה getEchoTiming () מייצרת דופק הדק. זה רק יוצר זרם של דופק של 10 מיקרו שניות, המהווה טריגר לתחילת הקרינה על ידי טווח הטווח של חבילת קול לחלל. ואז היא זוכרת את הזמן מתחילת העברת גל הקול ועד הגעתו של ההד.
הפונקציה getDistance () מחשבת את המרחק לאובייקט. מקורס הפיזיקה בבית הספר אנו זוכרים כי המרחק שווה למהירות המוכפלת בזמן: S = V * t. מהירות הקול באוויר היא 340 מ 'לשנייה, הזמן במיקרו-שניות שאנו מכירים הוא "duratuion". כדי לקבל את הזמן בשניות, חלקו ב -1,000,000. מכיוון שהצליל עובר כפול מהמרחק - לאובייקט ובחזרה - עליכם לחלק את המרחק לשניים. אז מתברר שהמרחק לאובייקט S = 34000 ס"מ / שנייה * משך / 1.000.000 שניות / 2 = 1.7 ס"מ / שנייה / 100, אותו כתבנו בשרטוט. המיקרו-בקר מבצע כפל מהר יותר מחלוקה, ולכן החלפתי את "/ 100" במקבילה "* 0, 01".
שלב 4
כמו כן, ספריות רבות נכתבו לעבודה עם טווח טווח קולי. לדוגמה, זה: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. הספרייה מותקנת בצורה סטנדרטית: הורד, פתח את רוכסן לספריית הספריות, שנמצאת בתיקיה עם ה- Arduino IDE. לאחר מכן ניתן להשתמש בספרייה.
לאחר התקנת הספרייה, בואו נכתוב סקיצה חדשה. התוצאה של עבודתה זהה - צג היציאות הטוריות מציג את המרחק לאובייקט בסנטימטרים. אם אתה כותב float dist_cm = ultrasonic. Ranging (INC); בסקיצה, המרחק יוצג באינץ '.
שלב 5
אז חיברנו את טווח הטווח הקולי HC-SR04 לארדואינו וקיבלנו ממנו נתונים בשתי דרכים שונות: באמצעות ספרייה מיוחדת ובלעדיה.
היתרון בשימוש בספרייה הוא שכמות הקוד מצטמצמת משמעותית וקריאות התוכנית משופרת, אינך צריך להתעמק במורכבויות המכשיר ואתה יכול להשתמש בו באופן מיידי. אבל זה גם החיסרון: אתה מבין פחות טוב איך המכשיר עובד ואילו תהליכים מתרחשים בו. בכל מקרה, באיזו שיטה להשתמש תלוי בך.