מה אם נוכל ליצור צבעים שונים באמצעות נורית RGB אחת ולהפוך את פינת החדר שלנו לאטרקטיבית יותר? אז הנה מנורת ערבוב צבעים פשוטה המבוססת על Arduino שיכולה לשנות צבע כאשר יש שינוי באור בחדר. אז המנורה הזו תשנה את צבעה באופן אוטומטי בהתאם לתנאי האור בחדר.
כל צבע הוא השילוב של צבע אדום, ירוק וכחול. כך שנוכל ליצור כל צבע על ידי שימוש בצבעים אדום, ירוק וכחול. אז, כאן נשתנה PWM כלומר עוצמת האור ב- LDR. זה ישנה עוד יותר את עוצמת הצבע האדום, הירוק והכחול ב- RGB LED, וצבעים שונים יופקו.
הטבלה שלהלן מציגה את שילובי הצבעים עם שינוי בהתאמה במחזורי העבודה.
חומרים נדרשים:
- 1 x ארדואינו UNO
- 1 x לוח לחם
- נגדים 3 x 220 אוהם
- נגדים 3 x 1 קילו
- חוטי מגשר
- 3 x LDRs
- 3 רצועות צבעוניות (אדום, ירוק, כחול)
- 1 x נורית RGB
LDR:
אנו נשתמש במצלמת פוטו (או נגד תלוי אור, LDR או תא מוליך צילום) במעגל זה. LDRs מיוצרים מחומרים מוליכים למחצה כדי לאפשר להם לקבל את המאפיינים הרגישים לאור שלהם. LDRs או PHOTO RESISTORS פועלים על פי העיקרון של "מוליכות תמונות". עכשיו מה שעיקרון זה אומר הוא, בכל פעם שאור נופל על פני ה- LDR (במקרה זה) מוליכות האלמנט עולה או במילים אחרות, ההתנגדות של ה- LDR נופלת כאשר האור נופל על פני ה- LDR. תכונה זו של ירידת ההתנגדות ל- LDR מושגת מכיוון שהיא תכונה של חומר מוליך למחצה המשמש על פני השטח.
כאן שלושה חיישני LDR משמשים לשליטה על בהירותם של נורות LED אדומות, ירוקות וכחולות בתוך RGB Led. למידע נוסף על שליטה ב- LDR עם Arduino כאן.
נורית RGB:
ישנם שני סוגים של נוריות RGB, האחד הוא סוג הקתודה הנפוץ (שלילי נפוץ) והשני הוא סוג האנודה הנפוץ (החיובי הנפוץ). ב- CC (קתודה משותפת או שלילית משותפת) יהיו שלושה מסופים חיוביים שכל מסוף מייצג צבע ומסוף שלילי אחד המייצג את כל שלושת הצבעים.
במעגל שלנו אנו נשתמש בסוג CA (Common Anode או Common Positive). בסוג Anode משותף, אם אנו רוצים שה- LED האדום יהיה דולק, עלינו לקרקע את סיכת ה- LED האדומה ולהפעיל את החיובי המשותף. כנ"ל לגבי כל הנוריות. למדו כאן לממשק RGB LED עם Arduino.
תרשים מעגל:
תרשים המעגל השלם של פרויקט זה ניתן לעיל. ניתן להשיג את חיבור + 5 וולט והקרקע המוצג בתרשים המעגל מהסיכה 5 וולט והארקה של הארדואינו. ניתן להפעיל את הארדואינו עצמו מהמחשב הנייד שלך או דרך שקע DC באמצעות מתאם 12 וולט או סוללת 9 וולט.
נשתמש ב- PWM כדי לשנות את הבהירות של ה- RGB. תוכל ללמוד עוד על PWM כאן. להלן מספר דוגמאות PWM עם Arduino:
- ספק כוח משתנה על ידי Arduino Uno
- בקרת מנוע DC באמצעות Arduino
- מחולל טונים מבוסס ארדואינו
הסבר על תכנות:
ראשית, אנו מצהירים על כל הכניסות וסיכות הפלט כפי שמוצג להלן.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; const byte green_led_pin = 9; const byte blue_led_pin = 10; const byte red_led_pin = 11;
הכריז על ערכים ראשוניים של חיישנים ומנורות כ- 0.
uns חתום int red_led_value = 0; לא חתום int blue_led_value = 0; לא חתום int green_led_value = 0; uns חתום int red_sensor_value = 0; לא חתום int blue_sensor_value = 0; לא חתום int green_sensor_value = 0; הגדרת חלל () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
בקטע לולאה, ניקח פלט של שלושה חיישנים עם AnalogRead (); לתפקד ולאחסן בשלושה משתנים שונים.
לולאה בטלה () { red_sensor_value = analogRead (red_sensor_pin); עיכוב (50); blue_sensor_value = analogRead (blue_sensor_pin); עיכוב (50); green_sensor_value = analogRead (green_sensor_pin);
הדפיסו את הערכים על גבי המסך הטורי לצורך איתור באגים
Serial.println ("ערכי חיישנים גולמיים:"); Serial.print ("\ t אדום:"); Serial.print (red_sensor_value); Serial.print ("\ t כחול:"); Serial.print (blue_sensor_value); Serial.print ("\ t ירוק:"); Serial.println (green_sensor_value);
נקבל ערכים 0-1023 מהחיישנים אך לפינים של ארדואינו PWM יש ערכים 0-255 כפלט. אז עלינו להמיר את הערכים הגולמיים שלנו ל- 0-255. לשם כך עלינו לחלק ערכים גולמיים ב- 4 או פשוט נוכל להשתמש בפונקציית המיפוי של Arduino כדי להמיר ערכים אלה.
red_led_value = red_sensor_value / 4; // הגדר נורית LED אדומה כחול_דד-ערך = כחול_חיישן_ערך / 4; // הגדר נורית LED כחולה ירוקה_ד_ערך = ירוקה_סנסור_ערך / 4; // הגדירו את הירוק לד
הדפס ערכים ממופים לצג סדרתי
Serial.println ("ערכי חיישנים ממופים:"); Serial.print ("\ t אדום:"); Serial.print (red_led_value); Serial.print ("\ t כחול:"); Serial.print (blue_led_value); Serial.print ("\ t ירוק:"); Serial.println (green_led_value);
השתמש ב- analogWrite () כדי להגדיר פלט עבור נורית RGB
analogWrite (red_led_pin, red_led_value); // ציין אנלוגי LED אדומים (כחול_דד סיכה, כחול_דד ערך); // ציין אנלוגי LED כחול (green_led_pin, green_led_value); // ציין ירוק
עבודה של מנורת ערבוב צבע Arduino:
כאשר אנו משתמשים בשלושה LDR כך, כאשר אור מתרחש על חיישנים אלה, התנגדותו משתנה כתוצאה מכך מתח משתנה גם בסיכות אנלוגיות של Arduino המשמשות כסיכות כניסה לחיישנים.
כאשר עוצמת האור משתנה בחיישנים אלה, ה- LED שלה בהתאמה ב- RGB יאיר עם שינוי בהתנגדות ויש לנו ערבוב צבעים שונה ב- RGB עם PWM.