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

מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3: 5 שלבים
מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3: 5 שלבים

וִידֵאוֹ: מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3: 5 שלבים

וִידֵאוֹ: מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3: 5 שלבים
וִידֵאוֹ: CS50 2015 - Week 7 2024, נוֹבֶמבֶּר
Anonim
מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3
מעקב אחר מקור אור אוטומטי עם ARDUINO UNO R3

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

שלב 1: רכיבים

- לוח Arduino Uno * 1

- כבל USB * 1

- מנוע סרוו * 1

- פוטורסיסטור * 1

- התנגדות (10k) * 1

- לוח לחם * 1

- חוטי מגשר

שלב 2: עקרון

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

שלב 3: תרשים סכמטי

תרשים סכמטי
תרשים סכמטי

שלב 4: נהלים

נהלים
נהלים
נהלים
נהלים

שלב 1:

בנה את המעגל.

שלב 2:

הורד את הקוד מ-

שלב 3:

העלה את הסקיצה ללוח ה- Arduino Uno

לחץ על סמל ההעלאה כדי להעלות את הקוד ללוח הבקרה.

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

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

שלב 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);

}

מוּמלָץ: