תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
בשיעור זה נשתמש במנוע סרוו, פוטורזיסטור ונגד נפתח להרכבת מערכת מקור אור העוקבת אוטומטית.
שלב 1: רכיבים:
- לוח Arduino Uno * 1
- כבל USB * 1
- מנוע סרוו * 1
- פוטורסיסטור * 1
- התנגדות (10k) * 1
- לוח לחם * 1
- חוטי מגשר
שלב 2: עקרון
מנוע הסרוו והפוטורסיסטור סורקים ומחפשים מקור אור ב -180 מעלות ומתעדים את המיקום של מקור האור. לאחר סיום הסריקה, מנוע הסרוו והפוטורסיסטור עוצרים בכיוון מקור האור.
שלב 3: נהלים:
שלב 1:
בנה את המעגל.
שלב 2:
הורד את הקוד מ-
שלב 3:
העלה את הסקיצה ללוח ה- Arduino Uno
לחץ על סמל ההעלאה כדי להעלות את הקוד ללוח הבקרה.
אם "סיום ההעלאה" מופיע בתחתית החלון, פירוש הדבר שהסקיצה הועלתה בהצלחה.
עכשיו, אם אתה משתמש בפנס כדי להאיר את הפוטורזיסטור, תראה את מנוע הסרוו ואת הפוטוריסטור מסתובב, ולבסוף עוצר בכיוון מקור האור.
שלב 4: תרשים סכמטי
שלב 5: קוד
/********************************************************************
* שם:
מעקב אוטומטי אחר מקור אור
* פונקציה
: אם אתה משתמש בפנס כדי להאיר את הפוטורזיסטור, * אתה תראה
מנוע הסרוו והפוטורזיסטור מסתובבים, * ולבסוף
לעצור בכיוון מקור האור.
***********************************************************************
/דוא ל: [email protected]
// אתר: www.primerobotics.in
#לִכלוֹל
const int photocellPin = A0;
/************************************************/
Servo myservo; // ליצור אובייקט סרוו לשליטה בסרוו
int outputValue = 0;
int angle = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0;
int maxPos = 0;
/*************************************************/
הגדרת חלל ()
{
Serial.begin (9600);
myservo.attach (9); // מצרף את הסרוו על סיכה 9 לאובייקט סרוו
}
/*************************************************/
לולאת חלל ()
{
עבור (int i = 0;
אני <19; אני ++)
{
myservo.write (זווית ); // כתוב את הזווית לסרוו
outputValue
= analogRead (photocellPin); // קרא את הערך של A0
Serial.println (outputValue); // הדפס אותו
if (outputValue> maxVal) // אם הערך הנוכחי של A0 גדול מהקודם
{
maxVal = outputValue; // רשום את הערך
maxPos
= i; //
}
עיכוב (200);
}
myservo.write (זווית [maxPos]); // כתוב את הזווית לסרוו שיש ל- A0 ערך רב ביותר
בעוד (1);
}