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

מחוון צילום DIY: 4 שלבים
מחוון צילום DIY: 4 שלבים

וִידֵאוֹ: מחוון צילום DIY: 4 שלבים

וִידֵאוֹ: מחוון צילום DIY: 4 שלבים
וִידֵאוֹ: פתיחת חיבור בצינור 4 צול בקיר 2024, יולי
Anonim
מחוון צילום DIY
מחוון צילום DIY

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

בתיאוריה, זה אמור לעבוד במלואו

אם תבחר לעשות זאת אני מקווה שתיהנה מזה!

שלב 1: אסוף חומרים

אסוף לך חומרים
אסוף לך חומרים
אסוף לך חומרים
אסוף לך חומרים
אסוף לך חומרים
אסוף לך חומרים

חומרים אלקטרוניים

  • ארדואינו
  • שני 360 סרוו
  • לוח לחם
  • נגדים
  • כפתורים (רצוי 3)

חומרי בנייה

  • שתי חתיכות של לוח קצף
  • פיסות עץ של דיבל (יכול להיות מתכת)
  • חתיכות מעוצבות בצורת אליפסה (עיין בתמונת המבוא לתמונה).

שלב 2: התקנה

להכין!
להכין!

תמונה זו היא תרשים המעגלים

עקוב אחר זה והפרויקט שלך יעבוד!

שלב 3: הרכבת לוח הלחם

הרכבה של לוח לחם!
הרכבה של לוח לחם!
  • קודם כל חבר חיובי וטחון ללוח הלחם.
  • שנית חבר את שני הסרוו … ויש להם שני חוטים שרצים לקרקע וחיוביים, ועוד אחד לסיכה שהיית בוחר. (שימו לב שלקוד יהיו הסיכות שבחרתי)..
  • לאחר מכן הרכיב את הכפתורים שלך … זכור להתחבר לפינים שבחרת אך הקוד לא יעבוד אם לא תשתמש בסיכות שבחרתי. חבר את הכפתורים גם לקרקע.
  • והשתמש בנגד 220.
  • לבסוף, אם תרצה להשתמש בצג LCD יהיה עליך לחבר 2 סיכות לכניסה אנלוגית וחוט אחד למסוף החיובי.

שלב 4: קוד הארדואינו

#include #include #include

LiquidCrystal_I2C lcd (0x27, 16, 2); // הגדר את כתובת ה- LCD ל- 0x27 עבור תצוגה של 16 תווים ו -2 שורות

Servo servoLeft; // הגדר סרוו סרוו שמאל ServoRight; // הגדר סרוו ימין

const int startbut = 8; // סיכה עבור startbut (startbutton) const int forwardbut = 12; // סיכה עבור forwardbut (forwardbutton) const int reversebut = 13; // סיכה עבור reversebut (reversebutton) int tim = 500; // ערך זמן ההשהיה int flag = 0; int count = 0;

char array1 = "ברוך הבא"; // המחרוזת להדפסה במערך ה- char ("ברוך הבא") 2 = "לדחוף שמאלה = שמאל, ימינה = ימינה!"; // המחרוזת להדפסה על ה- LCD ("לדחוף שמאלה = שמאל, ימינה = ימינה")

הגדרת void () {servoLeft.attach (10); // הגדר סרוו שמאלי לפין דיגיטלי 10 servoRight.attach (9); // הגדר סרוו ימני לפין דיגיטלי 9 servoLeft.write (90); // הגדר סרווס ל- 90 מעלות servoRight.write (90); עיכוב (100);

// הופך את הסיכה לכניסות pinMode (startbut, INPUT); // לאתחל את startbut (startbutton) כ- pinMode קלט (reversebut, INPUT); // לאתחל את reversebut (reversebutton) כ- pinMode קלט (forwardbut, INPUT); // לאתחל את forwardbut (קדימה כפתור) כקלט

}

לולאת void () {// לולאה באמצעות בדיקות תנועה // קוד עבור צג LCD אם (flag == 1 && count == 0) {count = 1; lcd.init (); // לאתחל את lcd lcd.backlight (); // פתח את התאורה האחורית

lcd.setCursor (15, 0); // הגדר את הסמן לעמודה 15, שורה 0 עבור (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // מגולל את תוכן התצוגה רווח אחד שמאלה. lcd.print (array1 [positionCounter1]); // הדפס הודעה ל- LCD. עיכוב (טים); // המתן ל -250 מיקרו שניות} lcd.clear (); // מנקה את מסך ה- LCD וממקם את הסמן בפינה השמאלית העליונה. lcd.setCursor (15, 1); // הגדר את הסמן לעמודה 15, שורה 1 עבור (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // מגולל את תוכן התצוגה רווח אחד שמאלה. lcd.print (array2 [positionCounter]); // הדפס הודעה ל- LCD. עיכוב (טים); // המתן ל -250 מיקרו שניות} lcd.clear (); // מנקה את מסך ה- LCD וממקם את הסמן בפינה השמאלית העליונה. } //////////////////////////////////// ////////////////////////////////////////// /////////////////////////////////////////

/בדוק אם לחצו על כפתורים אם (digitalRead (startbut) == 1) {flag = 1; // משתנה דגל כדי שהלחצן יתחיל}

if (flag == 1) {if (digitalRead (reversebut) == HIGH) // reversebut נלחץ יפעיל סרוו {reverse (); // משתנה לאחור עבור כפתור הפוך} אחרת אם (digitalRead (forwardbut) == HIGH) // קדימה אך לחוץ יפעיל סרוו {קדימה (); // משתנה קדימה עבור forwardbutton} else {stop (); // משתנה עצור להפסקת תנועת סרוו כאשר לא לוחצים על לחצנים}}

}

// שגרת תנועה קדימה, אחורה ועצירת חלל קדימה () {// פקודה קדימה servoLeft.write (0); // כיוון שבו סרוווס הופכים servoRight.write (180); } void stop () {// stop command servoLeft.write (90); // עוצר את שני סרוואות באותה נקודה, אחרת הם היו נמצאים בעמדות שונות servoRight.write (90); } void reverse () {// הפקודה הפוכה servoLeft.write (180); // servos מפעילים בכיוון ההפוך servoRight.write (0); }

הנה הקוד להצלחה! לאחר שתגדיר את הארדואינו שלך הכל אמור לעבוד! ותהנה!

אם זה לא עובד הקפד להסתכל אחורה על ההוראה ולבדוק הכל!

מוּמלָץ: