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

מערבל צבעים עם ארדואינו: 9 שלבים (עם תמונות)
מערבל צבעים עם ארדואינו: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערבל צבעים עם ארדואינו: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערבל צבעים עם ארדואינו: 9 שלבים (עם תמונות)
וִידֵאוֹ: שלוט על סרוו 360 רציף עם מתגי לחצן ולחיצת ארדואינו 2024, נוֹבֶמבֶּר
Anonim
Image
Image

מאת tliguori330 עקוב אחר מאת המחבר:

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

אודות: לומד תמיד … עוד על tliguori330 »

מיקסר צבעים הוא פרויקט נהדר לכל מי שעובד וצומח עם Arduino. עד סוף ההנחיה הזו תוכלו לערבב ולהתאים כמעט כל צבע שניתן להעלות על הדעת על ידי סיבוב של 3 כפתורים. רמת המיומנות נמוכה מספיק אפילו שאולי טירון שלם יכול להשלים אותה בהצלחה, אך גם מספיק מעניין כדי שיהיה מהנה עבור וטרינר מנוסה. עלות הפרויקט הזה היא כמעט כלום ורוב ערכות ארדואינו מגיעות עם החומרים הדרושים. בבסיס הקוד הזה כמה פונקציות ארדואינו מיסודות שכל מי שמשתמש בארדואינו ירצה להבין. ניכנס לעומק לגבי הפונקציות analogRead () ו- analogWrite () כפי שאנו כעוד פונקציה רגילה הנקראת map (). קישורים אלה מביאים אותך לדפי ההתייחסות של arduino עבור פונקציות אלה.

שלב 1: חלקים ורכיבים

חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים
חלקים ורכיבים

ארדואינו אונו

פוטנציומטר (x3)

LED RGB

נגד 220 אוהם (x3)

חוטי מגשר (x12)

לוח לחם

שלב 2: תכנן את ההתקדמות שלך

תכנן את ההתקדמות שלך
תכנן את ההתקדמות שלך

זה יכול להיות מאוד מועיל לתכנן כיצד תסיים את הפרויקט שלך. הקידוד עוסק בהתקדמות הלוגית משלב אחד לשני. ערכתי תרשים זרימה המתאר כיצד אני רוצה שהמערכון שלי ירוץ. המטרה הכוללת היא לשלוט על 3 ידיות (פוטנציומטרים) על כל אחד משלושת הצבעים של LED RGB. על מנת להשיג זאת נצטרך ליצור סקיצה התואמת את תרשים הזרימה. נרצה….

1) קרא 3 פוטנציומטרים שונים ושמור את ערכיהם במשתנים.

2) אנו ממירים את הערכים כך שיתאימו לטווח הנורית RGB.

3) ואז לבסוף נכתוב את אותם ערכים שהומרו לכל אחד מהצבעים של ה- RGB.

שלב 3: אופן השימוש בפוטנציומטרים

אופן השימוש בפוטנציומטרים
אופן השימוש בפוטנציומטרים
אופן השימוש בפוטנציומטרים
אופן השימוש בפוטנציומטרים

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

שלב 4: סכמה חיווט לפוטנציומטר (3x)

חיווט סכמטי לפוטנציומטר (3x)
חיווט סכמטי לפוטנציומטר (3x)
חיווט סכמטי לפוטנציומטר (3x)
חיווט סכמטי לפוטנציומטר (3x)
חיווט סכמטי לפוטנציומטר (3x)
חיווט סכמטי לפוטנציומטר (3x)

הרגל השמאלית ביותר תהיה מחוברת ל- 5v והרגל הימנית ביותר תהיה מחוברת ל- GND. אתה יכול למעשה להפוך את שני השלבים הללו וזה לא יזיק לפרויקט במיוחד. כל מה שישתנה הוא סיבוב הכפתור עד שמאלה תהיה בהירות מלאה במקום כל הדרך. הרגל האמצעית תחובר לאחד מהסיכות האנלוגיות בארדואינו. מכיוון שיהיו לנו שלושה ידיות, נרצה לשלש את העבודה שעשינו זה עתה. כל כפתור צריך 5v ו- GND כך שניתן לחלק אותם באמצעות לוח לחם. הרצועה האדומה בלוח הלחם מחוברת ל -5 וולט והרצועה הכחולה מחוברת לקרקע. כל כפתורים זקוקים לסיכה אנלוגית משלה כך שהם מחוברים ל- A0, A1, A2.

שלב 5: שימוש ב- AnalogRead () ובמשתנים

כאשר הפוטנציומטר שלך מוגדר כהלכה אנו מוכנים לקרוא ערכים אלה. כאשר אנו רוצים לעשות זאת אנו משתמשים בפונקציה analogRead (). התחביר הנכון הוא analogRead (pin#); כדי לקרוא את הפוטנציומטר האמצעי שלנו היינו analogRead (A1); על מנת לעבוד עם המספרים הנשלחים מהכפת אל הארדואינו, נרצה לשמור גם מספרים אלה במשתנה. שורת הקוד תבצע משימה זו בעת קריאת הפוטנציומטר ונשמור את המספר הנוכחי שלה במשתנה המספר השלם "val"

int val = analogRead (A0);

שלב 6: שימוש במסך הטורי עם ידית אחת

Image
Image

נכון לעכשיו אנו מסוגלים לקבל ערכים מהכפתורים ולאחסן אותם במשתנה, אך יהיה מועיל אם נוכל לראות ערכים אלה. לשם כך עלינו להשתמש בצג הטורי המובנה. הקוד שלהלן הוא הסקיצה הראשונה שלמעשה נריץ ב- Arduino IDE שניתן להוריד באתר שלהם. בהגדרת הריק () נפעיל את הסיכות האנלוגיות המחוברות לכל רגל אמצעית כ- INPUT ונפעיל את הצג הטורי באמצעות Serial.begin (9600); לאחר מכן קראנו רק את אחד הכפתורים ושמרו אותו במשתנה כמו קודם. השינוי כעת הוא שהוספנו שורה שמדפיסה איזה מספר מאוחסן במשתנה. אם אתה אוסף ומריץ את הסקיצה תוכל לפתוח את הצג הסידורי ולראות מספרים מתגלגלים על המסך. בכל פעם שהקוד לולא אנו קוראים ומדפיסים מספר נוסף. אם תסובב את הכפתור המחובר ל- A0 אתה אמור לראות ערכים הנעים בין 0-1023. מאוחר יותר המטרה תהיה לקרוא את כל 3 הפוטנטיומטרים שידרשו עוד 2 אנלוגים ו -2 משתנים שונים כדי לשמור ולהדפיס.

הגדרת בטל () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } לולאת חלל () {int val = analogRead (A0); Serial.println (val); }

שלב 7: שימוש בנורית ה- RGB

שימוש ב- LED RGB
שימוש ב- LED RGB
שימוש ב- LED RGB
שימוש ב- LED RGB
שימוש ב- LED RGB
שימוש ב- LED RGB

ה- 4 רגליים RGB LED אני אחד המרכיבים האהובים עלי עבור Arduino. אני מוצא את הדרך שבה היא מסוגלת ליצור אינסוף צבעים מתערובות של 3 צבעי יסוד מרתקת. ההתקנה דומה לכל לד רגיל, אך כאן יש לנו בעצם נוריות אדומות, כחולות וירוקות המשולבות יחד. כל הרגליים הקצרות נשלטות על ידי אחד מסיכות ה- PWM על הארדואינו. הרגל הארוכה ביותר תחובר ל- 5 וולט או לקרקע, תלוי אם שלך באנודה משותפת או LED קתודה משותפת. יהיה עליך לנסות את שתי הדרכים לפתרון הבעיה. כבר יהיה לנו 5v ו- GND מחובר ללוח הלחם אליו אמור להיות קל לשנות. התרשים לעיל מראה גם שימוש ב -3 נגדים. אני למעשה מדלג על שלב זה לעתים קרובות מכיוון שלא היה לי ומנורת LED נושבת עלי.

כדי ליצור צבעים נשתמש בפונקציה analogWrite () כדי לשלוט בכמה אדום, כחול או ירוק להוסיף. כדי להשתמש בפונקציה זו עליך לומר לאיזה סיכה# נדבר ומספר שבין 0-255. 0 כבוי לחלוטין ו- 255 הוא הכמות הגבוהה ביותר של צבע אחד. מאפשר לחבר את הרגל האדומה לסיכה 9, ירוק לסיכה 10 וכחול לסיכה 11. זה עלול לקחת קצת ניסוי וטעיה כדי להבין איזו רגל היא באיזה צבע. אם אני רוצה לעשות גוון סגול הייתי יכול לעשות הרבה אדום, לא ירוק, ואולי חצי כוח של כחול. אני ממליץ לך להתעסק במספרים האלה, זה ממש מרגש. כמה דוגמאות נפוצות נמצאות בתמונות למעלה

הגדרת בטל () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } לולאת חלל () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

שלב 8: שימוש בפוטנציומטרים לשליטה ב- RGB LED (עם באג אחד)

שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)
שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)
שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)
שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)
שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)
שימוש בפוטנציומטרים לשליטה ב- LED RGB (עם באג אחד)

הגיע הזמן להתחיל לאחד את שני הקודים שלנו. יהיה לך מספיק מקום על לוח לחם סטנדרטי שיתאים לכל 3 הכפתורים ולנורת ה- RGB. הרעיון הוא במקום להקליד את הערכים לכחול אדום וירוק, נשתמש בערכים השמורים מכל פוטנציומטר כדי לשנות את הצבעים ללא הרף. נצטרך 3 משתנים במקרה זה. redval, greenval, blueval הם כולם משתנים שונים. זכור שאתה יכול לתת שם למשתנים כל מה שאתה רוצה. אם אתה מסובב את הכפתור "הירוק" והכמות האדומה משתנה, תוכל לשנות את השמות כך שיתאימו. עכשיו אתה יכול לסובב כל כפתור ולשלוט בצבעים !!

הגדרת בטל () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } הגדרת void () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

שלב 9: בונוס: מפת () פונקציה וקוד מנקה

אתה עשוי להבחין שכאשר אתה מתחיל לסובב את הכפתור לצבע אחד למעלה הוא יגדל ואז ייפול לפתע למטה. דפוס זה של צמיחה ואז כיבוי מהיר חוזר על עצמו 4 פעמים כאשר אתה מסובב את הכפתור עד הסוף. אם אתה זוכר אמרנו שהפוטנציומטרים יכולים לקרוא ערכים בין 0 ל- 1023. הפונקציה analogWrite () מקבלת רק ערכים בין 0 ל- 255. ברגע שהפוטנציומטר עובר את 255 הוא בעצם מתחיל מחדש ב -0. יש פונקציה נחמדה שתעזור עם באג שנקרא מפה (). אתה יכול להמיר טווח מספרים אחד לטווח מספרים אחר בצעד אחד. נמיר מספרים מ- 0-1023 למספרים מ- 0-255. למשל אם הכפתור היה מוגדר למחצית הדרך הוא צריך לקרוא בערך 512. המספר הזה ישתנה ל -126 שזה חצי כוח עבור הנורית. במערכון הסופי הזה שמתי את הסיכות עם שמות משתנים לנוחותי. כעת יש לך מערבל צבע מושלם להתנסות בו !!!

// שמות משתנים לסיכות פוטנציומטר

int redPot = A0; int greenPot = A1; int bluePot = A2 // שמות משתנים לסיכות RGB int redLED = 9; int greenLED = 10; int blueLED = 11; הגדרת void () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); סדרתי, התחל (9600); } לולאת חלל () {// לקרוא ולשמור ערכים מפוטנציומטרים int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // להמיר את הערכים מ- 0-1023 ל- 0-255 עבור RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = מפה (greenVal, 0, 1023, 0, 255); blueVal = מפה (blueVal, 0, 1023, 0, 255); // כתוב את הערכים המומרים האלה לכל צבע של RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // הצג את הערכים בצג Serial Serial.print ("אדום:"); Serial.print (redVal); Serial.print ("ירוק:"); Serial.print (greenVal); Serial.print ("כחול:"); Serial.println (blueVal); }

מוּמלָץ: