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

מנוע צעד מבוקר קל + סוגר/מעמד קיר: 6 שלבים
מנוע צעד מבוקר קל + סוגר/מעמד קיר: 6 שלבים

וִידֵאוֹ: מנוע צעד מבוקר קל + סוגר/מעמד קיר: 6 שלבים

וִידֵאוֹ: מנוע צעד מבוקר קל + סוגר/מעמד קיר: 6 שלבים
וִידֵאוֹ: ככה זה כשיש לך חברה רוסיה 2024, יולי
Anonim
מנוע צעד מבוקר קל + סוגר/מעמד
מנוע צעד מבוקר קל + סוגר/מעמד

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

שלב 1: מרכיבים

כדי להתחיל פרויקט זה תצטרך;

- 2 ערכות שבבים של Arduino- מגן מנוע Arduino- מסך LCD Arduino- 1 לוח- 1 מנוע צעד דו-קוטבי- 1 סוללה D- 1 הנגד תלוי- 1 10k Ω נגד- 10 חוטי זכר -6 זכר- חוטי נקבה- גישה למדפסת תלת מימד

שלב 2: בניית Arduino

בניית ארדואינו
בניית ארדואינו

קו ראשון את מגן המנוע בעזרת סיכות הארדואינו וברגע שהם מסודרים בשורה, הניחו אותו היטב. לאחר מכן חבר את חוטי מנוע הצעד לפינים 8, 9, 10 ו -11 של מגן המנוע. לאחר מכן חבר את סוללת ה- D בחריצים כפי שמוצג בתרשים. לאחר מכן תרצה לקבל את 6 החוטים (זכר לנקבה) עבור את מסך ה- LCD וחבר אותם ליחידת ה- Arduino האחרת כפי שמוצג בתרשים המעגלים. לאחר מכן הגדר את ה- LDR כפי שמוצג למעלה, כאשר הנגד מתחבר לשורה השלילית. בעת הוספת ה- LDR בצד הנגד, הוסף את חיבורי A0 ובצד הנגדי, הוסף 1 קלט 5V לכל לוח שאתה משתמש בו, כך שאם אתה משתמש בשני לוחות, תרצה שלכל אחד מהם יהיה סיכת 5V ו- A0 שתגיע ל- LDR.

חבר את כל החוטים כך שזהה לתרשים- 2 כניסות ל- LDR- 2 יציאות מה- LDR ונגד המתחבר לקרקע- 8 חוטים ל- LCD, 1 5V, 1 כניסה ו- 6 כניסות- 4 חוטים המתחברים ל- צעד- 2 חיבורים לסוללה- יש לחבר את קרקע הלחם

שלב 3: קידוד Arduino

קידוד Arduino
קידוד Arduino

להלן קוד לדוגמא לשינוי סטטוס ההילוך המבוסס על ה- LDR

זהו הקוד שיאפשר לפרויקט לשלוט באופן אוטומטי בוילון. התמונה למעלה מסבירה את הנתיבים השונים בין הצהרות ה- IF המקוננות במונחים של העלייה, ירידה או שהייה של המסך. (לחץ על התמונה כדי לראות אותה במלואה מכיוון שיש בעיות עיצוב)

#defineLDRA0 // מגדיר את המשתנה "LDR" לפין A0#כולל// כולל קוד מנוע צעד

constintstepsPerRevolution = 200; // כאשר מנוע הצעד מופעל, סיבובו המלא שווה ל -200 צעדים

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // מגדיר את הקלט למדרגה כסיכות 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // קובע כמה מהר המנוע עושה rotationpinMode (LDR, INPUT); // מגדיר את המשתנה "LDR" ככניסה Serial.begin (9600); // מתחיל קריאה סדרתית }

voidloop () {intlightlevel = analogRead (LDR); // מגדיר את המשתנה "lightlevel" כפעולה הקוראת את הערך של "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // מדפיס את הערך של "lightlevel" עם הכיתוב למעלה

/* כעת יש לולאה המזהה את רמת האור בכל נקודת הדרך* 3 אפשרויות זמינות, עלו, ירדו, הישארו באותה מיקום* היא מתוכננת כך שאם רמת האור תהיה זהה, היא תהיה הישאר אותו דבר, אם לא זה ישתנה * כלומר אם זה 950, אז יגיע ל -952, שום דבר לא יקרה, אולם אם זה היה מ -950 ל -600 זה היה מושך את המסך למעלה ולהיפך * כל שלב מסומן באות מול המדרגה כדי לעקוב אחר המקום בו הוא נמצא בלולאה דרך הצג הטורי */

if (lightlevel> = 900) {Serial.println ("A"); // באיזה שלב הוא נמצא ב- loopmyStepper.step (3*stepsPerRevolution); // הצעד עושה 3 סיבובים קדימה. אם הוא שלילי, הוא עובר לאחור (30000); // משאיר אותו שם במשך 5 דקות intlightlevel = analogRead (LDR); // מגדיר את "lightlevel" המשתנה כקריאה האחרונה מתוך LDRSerial.print ("רמת אור:"); // מדפיס את הטקסט מול המשתנה Serial.println (lightlevel) // מדפיס את הערך של רמת האור

if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (רמה קלה);

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); עיכוב (500); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);}

אחרת {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);}}

else {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); עיכוב (500); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (רמה קלה);}

else {Serial.println ("G"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);}}

}

אחרת {Serial.println ("H"); myStepper.step (0); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); סידורי.println (אור ברמה);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); עיכוב (500); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);}

אחרת {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);

}}

אחרת {Serial.println ("L"); myStepper.step (0); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); עיכוב (500); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (רמה קלה);}

אחרת {Serial.println ("N"); myStepper.step (0); עיכוב (10000); intlightlevel = analogRead (LDR); Serial.print ("רמת אור:"); Serial.println (lightlevel);

}}

}

}

שלב 4: אופציונלי: מסך LCD

פעולה זו תדפיס את רמת האור שזוהה על ידי ה- LDR על מסך ה- LCD.

#לִכלוֹל

  • // מוסיף את ספריית הגביש הנוזלי עם קוד נוסף#הגדר ldr A0 // מגדיר את המשתנה "ldr" לסיכה A0

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // לאתחל את הספרייה עם מספרי סיכות הממשק

    voidsetup () {// קוד הפועל פעם ב- startlcd.begin (16, 2); // הגדר את מספר העמודות והשורות של ה- LCD בהתאמה pinMode (ldr, INPUT); // מגדיר את ה- ldr כקלט pinSerial.begin (9600); // מתחיל תקשורת עם הצג הטורי

    }

    voidloop () {// קוד שחוזר על עצמו באופן רציף Serial.println (analogRead (ldr)); // מדפיסה את הקריאה שה- ldr מרים (מספר בין 0-1023) במסך הטרי monitorlcd.setCursor (6, 0); // הגדר את הסמן לעמודה 6, שורה 0lcd.print (analogRead (ldr)); // מדפיסה קריאה זו במסך LCD המסך (1000); // מעכב את הפקודה הבאה לשנייה אחת

    }

    שלב 5: חלקים מודפסים

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

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

    ניתן להסיר את 2 הרגליים הקדמיות של סוגר הקיר אם היה מותקן על קיר. הם נוספו רק כדי שזה יעמוד בזמן שבדקנו עם זה.

    שלב 6: מיקום

    כעת, כשכל החלקים מוכנים, הגיע הזמן להתחיל במיקום הסופי.

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

    הלוח שלך אמור להיראות עכשיו כמו הלוח בתמונה למעלה.

    מזל טוב!

    ניתן להשתמש בציוד לווילונות אוטומטיים או לכל דבר אחר שתרצה בשליטת ה- LDR.

    אתה גמור. תהנה מהיצירה החדשה שלך.

מוּמלָץ: