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

RaspberryPi: דוהה LED פנימה והחוצה: 4 שלבים (עם תמונות)
RaspberryPi: דוהה LED פנימה והחוצה: 4 שלבים (עם תמונות)

וִידֵאוֹ: RaspberryPi: דוהה LED פנימה והחוצה: 4 שלבים (עם תמונות)

וִידֵאוֹ: RaspberryPi: דוהה LED פנימה והחוצה: 4 שלבים (עם תמונות)
וִידֵאוֹ: ПРИВОЗ. ОДЕССА. ЦЕНЫ. САЛО КАРТИНА МАСЛОМ. ЯНВАРЬ. ПОДАРОК ОТ СЕРЁГИ 2024, נוֹבֶמבֶּר
Anonim
RaspberryPi: לדעוך LED פנימה והחוצה
RaspberryPi: לדעוך LED פנימה והחוצה

השלבים הבאים הם ניסויים להמחיש כיצד נוריות פועלות. הם מראים כיצד לעמעם LED בקצב אחיד וכיצד להדהים אותו פנימה והחוצה.

אתה תצטרך:

  • RaspberryPi (השתמשתי ב- Pi ישן יותר, ה- Pi-3 שלי נמצא בשימוש, אבל כל Pi יעבוד).
  • לוח לחם
  • LED אדום 5 מ"מ
  • נגד 330 Ω (לא קריטי 220-560 Ω יעבוד.)
  • חיבור חוט

סנדלר פי שהשתמשתי בו מ- Adafruit אינו הכרחי, אך הוא מקל על הלוח.

WiringPi היא קבוצת ספריות לתכנות ה- RaspberryPi ב- C. הוראות להורדה, התקנה ושימוש נמצאות בכתובת

להתקנת wiringPi בצע את ההוראות בדף זה:

כדי לקבל רשימה של מספרי PIN של wiringPi הזן readpal של gpio בשורת הפקודה.

בגרסאות חדשות יותר של Raspian wiringPi מותקן כברירת מחדל.

שלב 1: אפנון רוחב הדופק

אפנון רוחב הדופק
אפנון רוחב הדופק
אפנון רוחב הדופק
אפנון רוחב הדופק
אפנון רוחב הדופק
אפנון רוחב הדופק

נוריות LED פועלות תמיד באותו מתח ללא קשר לבהירות. הבהירות נקבעת על ידי מתנד גל מרובע ומשך הזמן שהמתח גבוה קובע את הבהירות. זה נקרא אפנון רוחב הדופק (PWM). זה נשלט על ידי הפונקציה wiringPi pwmWrite (סיכה, n) שבה n יש ערך מ -0 עד 255. אם n = 2 הנורית תהיה בהירה פי שניים מ- n = 1. הבהירות תמיד מכפילה כאשר n מכפילה. אז n = 255 יהיה בהיר פי שניים מ- n = 128.

הערך של n מתבטא לעתים קרובות באחוזים הנקראים מחזור העבודה. התמונות מראות עקבות אוסצילוסקופ במשך 25, 50 ו -75% מחזורי עבודה.

שלב 2: LED ונגד

LED ונגד
LED ונגד

זה לא הכרחי, אבל כמה מהשימוש בהם יכול להקל על הלוח.

הלחם נגד למנורת LED קצרה. השתמש בנגד 220-560 אוהם.

שלב 3: עמעום לא אחיד

עמעום לא אחיד
עמעום לא אחיד

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

/******************************************************************

* הידור: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * ביצוע: sudo./fade1 * * כל מספרי הסיכה הינם מספרי חיווט Pi, אלא אם צוין אחרת. ********************************************** *****************/ #include int main () {wiringPiSetup (); // התקנה נדרשת על ידי wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // סימן/מצב רווח int i; בעוד (1) {עבור (i = 255; i> -1; i--) {pwmWrite (1, i); עיכוב (10); } עבור (i = 0; i <256; i ++) {pwmWrite (1, i); עיכוב (10); }}}

השלב הבא מראה כיצד לעמעם את הנורית בקצב קבוע, ובאחד להצהרה.

שלב 4: שלב 4: למעלה ולמטה באחד עבור (), ובקצב שווה

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

השורה:

int d = (16-i/16)^2;

מחשב את הריבוע ההפוך של הבהירות כדי לקבוע את אורך העיכוב. הידור והפעל תוכנית זו ותראה כי ה- LED ידהה פנימה והחוצה בקצב קבוע.

/******************************************************************

* הידור: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * ביצוע: sudo./fade2 * * כל מספרי הסיכה הינם מספרי חיווט Pi אלא אם צוין אחרת. ********************************************** *****************/ #include int main () {wiringPiSetup (); // התקנה נדרשת על ידי wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // מצב סימון/רווח בעוד (1) {int i; int x = 1; עבור (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // ריבוע הפוך של אינדקס pwmWrite (1, i); עיכוב (ד); אם (i == 255) x = -1; // החלף כיוון בשיא}}}

מוּמלָץ: