במדריך זה אנו הולכים לשלוט על מנוע סרוו על ידי ARDUINO UNO. מנועי סרוו משמשים כאשר יש צורך בתנועת פיר או במיקום מדויק. אלה אינם מוצעים ליישומים במהירות גבוהה. אלה מוצעים עבור מהירות נמוכה, מומנט בינוני ויישום מיקום מדויק. מנועים אלה משמשים במכונות זרוע רובוטיות, בקרות טיסה ומערכות בקרה.
מנועי סרוו זמינים בצורות ובגדלים שונים. במנוע סרוו יהיו בעיקר חוטים, אחד מהם הוא למתח חיובי, אחר הוא לקרקע והאחרון הוא להגדרת מיקום. החוט האדום מחובר לחשמל, החוט השחור מחובר לקרקע וחוט הצהוב מחובר לאות.
מנוע סרוו הוא שילוב של מנוע DC, מערכת בקרת מיקום, הילוכים. מיקום הפיר של מנוע ה- DC מותאם על ידי אלקטרוני הבקרה בסרוו, בהתבסס על יחס החובה של אות ה- PWM, סיכת ה- SIGNAL.
במילים פשוטות, האלקטרוניקה שליטה מכוונת את מיקום הפיר באמצעות שליטה במנוע DC. נתונים אלה לגבי מיקום הפיר נשלחים דרך סיכת הסיגנל. יש לשלוח את נתוני המיקום לבקרה בצורה של אות PWM דרך סיכת האות של מנוע הסרוו.
תדירות האות PWM (Pulse Width Modulated) יכולה להשתנות בהתאם לסוג מנוע הסרוו. הדבר החשוב כאן הוא יחס החובה של אות ה- PWM. בהתבסס על תנאי זה, האלקטרוניקה לבקרה מכוונת את הפיר.
כפי שמוצג באיור למטה, כדי שהפיר יועבר לשעון 9o, הפעל את המנה חייב להיות 1/18. זמן הפעלה של 1ms ו 17ms של זמן OFF באות 18ms.
כדי שהמנוע יועבר לשעון 12o זמן ההפעלה של האות חייב להיות 1.5ms וזמן ה- OFF צריך להיות 16.5ms. יחס זה מפוענח על ידי מערכת בקרה בסרוו והוא מתאים את המיקום על פיו. PWM זה כאן נוצר באמצעות ARDUINO UNO.
רכיבי מעגל
חומרה: ARDUINO UNO, ספק כוח (5v), קבל 100uF, כפתורים (שני חלקים), נגד 1KΩ (שני חלקים), מנוע סרוו (שהיה צריך לבדוק).
תוכנה: arduino IDE (Arduino nightly).
דיאגרמת מעגל מנועי סרוו של Arduino והסבר
במקרים רגילים עלינו ללכת לרשומות הבקר להתאמת התדר ולקבלת יחס החובה הנדרש לבקרת מיקום מדויקת של סרוו, ב- ARDUINO אנחנו לא צריכים לעשות את הדברים האלה.
ב- ARDUINO יש לנו ספריות שהוגדרו מראש, אשר יקבעו את התדרים ואת יחסי החובה בהתאם לאחר שקוראים או מכילים את קובץ הכותרת. ב- ARDUINO עלינו פשוט לציין את מיקום הסרוו הנדרש וה- PWM יותאם אוטומטית על ידי UNO.
הדברים שאנחנו צריכים לעשות כדי לקבל מיקום מדויק של סרוו הם:
|
ראשית עלינו להגדיר תדר של אות PWM ולשם כך עלינו לקרוא "# כלול
עכשיו עלינו להגדיר שם לסרוו "Servo sg90sevo", הנה 'sg90servo' הוא השם שנבחר, לכן בזמן כתיבת שיקויים אנו הולכים להשתמש בשם זה, תכונה זו שימושית כשיש לנו הרבה סרוו לשלוט, אנחנו יכולים לשלוט על שמונה סרוו על ידי זה.
עכשיו אנו אומרים ל- UNO היכן מחובר סיכת האות של סרוו או היכן עליה ליצור את אות ה- PWM. לשם כך יש לנו "Sg90.attach (3);", כאן אנו אומרים ל- UNO שחיברנו את סיכת האות של סרוו ב- PIN3.
כל שנותר הוא לקבוע את המיקום, אנו הולכים לקבוע את המיקום של סרוו באמצעות "Sg90.write (30);", על ידי פקודה זו היד סרוו נע 30 מעלות, אז זהו. אחרי זה בכל פעם שאנחנו צריכים לשנות את מיקום הסרוו אנחנו צריכים לקרוא לפקודה "Sg90.write (הצורך_זווית__);". במעגל זה יהיו לנו שני כפתורים כפתור אחד מגדיל את מיקום הסרוו והשני מיועד להפחתת מיקום הסרוו.
ההדרכה מלאת Arduino Servo Motor מוסברת צעד אחר צעד של קוד C כדלקמן.