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

שנה את צבעי הלד באמצעות POT ו- ATTINY85: 3 שלבים
שנה את צבעי הלד באמצעות POT ו- ATTINY85: 3 שלבים

וִידֵאוֹ: שנה את צבעי הלד באמצעות POT ו- ATTINY85: 3 שלבים

וִידֵאוֹ: שנה את צבעי הלד באמצעות POT ו- ATTINY85: 3 שלבים
וִידֵאוֹ: סיפורים מיסטיים. בתולת ים. סיפורי כפר. סיפורים מפחידים ללילה. מִיסטִי. חֲרָדָה 2024, נוֹבֶמבֶּר
Anonim
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85
שנה את צבעי ה- LED בעזרת POT ו- ATTINY85

בפרויקט זה אנו משתמשים בפוטנציומטר (POT) כדי לשנות את הצבעים במנורת LED באמצעות ATTINY85.

כמה הגדרות -

פוטנציומטר הוא מכשיר בעל מנגנון בורג / סיבוב קטן שכאשר מפנים אותו יוצאת התנגדות חשמלית שונה. אתה יכול לראות מהתמונה המבוארת למעלה של- POT יש 3 סיכות, כלומר +, -, ופלט. ה- POT מופעל על ידי חיבור סיכות + ו- - ל- vcc ולקרקע בהתאמה על ספק כוח. כאשר בורג ה- POT מסתובב, התנגדות הפלט משתנה וגורמת לנורית לרדת או להגביר את עוצמתה.. במילים אחרות, זהו נגד משתנה. הם משמשים בדברים כגון דימרים לאור הבית.

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

ATTINY85-זהו מיקרו-שבב קטן בעלות נמוכה שתוכל לתכנת כמו ארדואינו.

סקירה כללית - הפלט מה- POT מחובר ל- ATTINY85. כאשר בורג POT מסתובב, התנגדות ההבדל מופקת כמספר בין 0 ל -255. ה- ATTINY יכול למדוד זאת ולנקוט פעולות שונות בהתאם לערך של התנגדות ה- POT. במקרה זה, תיכנו אותו לחיבור למנורת LED כדלקמן.

אם המספר גדול מ -170 העבר את הנורית לירוק.

אם המספר קטן מ -170 אך גדול מ- 85 העבר את הנורית לאדום.

אם המספר הוא פחות מ 85 הפעל את LED ירוק ואדום וכתוצאה מכך כתום.

בום

1 x 3 פינים LED 1 x ATTINY 85

1 x סיר (B100K)

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

ספק כוח 1.

שלב 1: תכנות ה- ATTINY85

מבחינת תכנות ה- ATTINY85, עיין במדריך הקודם שלי-https://www.instructables.com/id/15-Dollar-Attiny8…

הקוד מוצג למטה. כמה נקודות שחשוב לציין הן ששני סיכות ATTINY, PB3, פין פיזי 2, PB2, פין 7 מחוברים במצב דיגיטלי לנורית כדי לחולל שינוי בצבע. ATTINY pin PB4, pin 3 פיזי, מחובר ל- POT במצב אנלוגי, מה שאומר שהוא יכול לקרוא ערכים בין 0 ל- 254. התאמתי אישית קוד שמצאתי באינטרנט אז אני מודה בעבודה. -

init ADC () {// *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============= ==================================================== ============================= // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) //* ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) פונקציה זו מאתחלת את ה- ADC

הערות מדריך למריחה מראש של ADC:

יש להגדיר את ADC Prescaler כך שתדר הכניסה של ADC יהיה בין 50 - 200kHz.

למידע נוסף, עיין בטבלה 17.5 "בחירות למכשיר טיהור ADC" בפרק 17.13.2 "ADCSRA - ADC Control and Status Register A" (עמודים 140 ו -141 בגיליון הנתונים המלא של ATtiny25/45/85, Rev. 2586M – AVR – 07/ 10)

ערכי תקליטור תקפים למהירויות שעון שונות

שעון ערכי זרימה זמינים מראש --------------------------------------- 1 MHz 8 (125kHz), 16 (62.5kHz) 4 MHz 32 (125kHz), 64 (62.5kHz) 8 MHz 64 (125kHz), 128 (62.5kHz) 16 MHz 128 (125kHz)

להלן הדוגמה הגדירו את מכשיר ההנעה מראש ל -128 עבור mcu הפועל ב -8 מגה -הרץ

(בדוק את גליון הנתונים של ערכי הסיביות המתאימים כדי להגדיר את מכשיר ההחזר) */

// רזולוציה של 8 סיביות

// הגדר את ADLAR ל -1 כדי לאפשר את התוצאה במשמרת שמאלה (רק סיביות ADC9.. ADC2 זמינות) // ואז רק קריאת ADCH מספיקה לתוצאות של 8 סיביות (256 ערכים) DDRB | = (1 << PB3); // סיכה מוגדרת כפלט. DDRB | = (1 << PB2); // סיכה מוגדרת כפלט. ADMUX = (1 << ADLAR) | // תוצאה משמרת שמאלה (0 << REFS1) | // קובע ref. מתח ל- VCC, ביט 1 (0 << REFS0) | // קובע ref. מתח ל- VCC, ביט 0 (0 << MUX3) | // השתמש ב- ADC2 לקלט (PB4), MUX bit 3 (0 << MUX2) | // השתמש ב- ADC2 לקלט (PB4), MUX bit 2 (1 << MUX1) | // השתמש ב- ADC2 לקלט (PB4), MUX bit 1 (0 << MUX0); // השתמש ב- ADC2 לקלט (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // אפשר ADC (1 << ADPS2) | // הגדר את מכשיר ההנעה מראש ל- 64, bit 2 (1 << ADPS1) | // הגדר את מכשיר ההנעה מראש ל- 64, bit 1 (0 << ADPS0); // הגדר את מכשיר ההנעה מראש ל- 64, ביט 0}

int main (void)

{initADC ();

בעוד (1)

{

ADCSRA | = (1 << ADSC); // התחל מדידת ADC תוך (ADCSRA & (1 << ADSC)); // המתן עד להשלמת ההמרה

אם (ADCH> 170)

{PORTB | = (1 << PB3); // סיכה מוגדרת ל- HIGH. PORTB | = (1 << PB2); // סיכה מוגדרת ל- HIGH. } אחרת אם (ADCH 85) {PORTB | = (1 << PB3); // סיכה מוגדרת ל- HIGH. PORTB & = ~ (1 << PB2); // סיכה מוגדרת ל- LOW

} אחר {

PORTB | = (1 << PB2); // סיכה מוגדרת ל- HIGH. PORTB & = ~ (1 << PB3); // סיכה מוגדרת ל- LOW

}

}

החזר 0;

}

שלב 2: מעגל

מעגל חשמלי
מעגל חשמלי

סיכות ATTINY

PB3, פין פיזי 2 - סיכת לד מחוברת 1

PB4, סיכה פיזית 3, מחובר לסיכה האמצעית POT

GND, פין פיזי 4, מחובר למעקה השלילי - אספקת חשמל

PB2, פין פיזי 7 - סיכת לד מחוברת 3

VCC, פין פיזי 8, מחובר למעקה החיובי - ספק כוח

סיר

סיכת pos ו- neg מחוברת למסילות בהתאמה - ספק כוח.

לד

סיכה אמצעית המחוברת למעקה השלילי - ספק כוח

ניסיתי להשתמש באספקת 3 ו -3.3 וולט ושניהם עבדו.

שלב 3: מסקנה

סיכום
סיכום

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

מוּמלָץ: