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

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

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

פוטנציומטרים לעומת מקודדים רוטריים

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

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

מהו פוטנציומטר?

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

instagram viewer

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

למרות היותם אנלוגיים, פוטנציומטרים עובדים היטב עם מיקרו-בקרים. אתה יכול בקלות הגדר פוטנציומטר עם Raspberry Pi Pico או ארדואינו.

מהו מקודד רוטרי?

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

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

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

הודות לעיצוב הפשוט שלהם, השימוש בפוטנציומטר עם ארדואינו הוא פשוט. לפוטנציומטר שלך יש שלושה מחברים: הארקה, פלט ו-vref. פיני האדמה וה-vref מתחברים למחברי GND ו-5V ב-Arduino שלך, בהתאמה, בעוד שפין היציאה של הפוטנציומטר מתחבר לאחת מהכניסות האנלוגיות בלוח שלך.

קוד פוטנציומטר ארדואינו

קוד הפוטנציומטר של Arduino שלך מתחיל עם הבסיס להכין() ו לוּלָאָה() תבנית שתראה בעת יצירת קובץ חדש ב- Arduino IDE. ראשית, הוסף א const int משתנה בתחילת הקוד כדי לרשום את חיבור הפין האנלוגי של הסיר - במקרה זה, A0.

constint פוטנציומטר = A0;

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

בָּטֵללהכין(){
pinMode (פוטנציומטר, INPUT);
סידורי.התחל(9600);
}

לאחר מכן, הגיע הזמן להגדיר את לוּלָאָה() פוּנקצִיָה. התחל ביצירת int משתנה באמצעות ה analogRead() פונקציה לאחסון המיקום של הפוטנציומטר שלך. לאחר מכן, אתה יכול להשתמש ב- מַפָּה() פונקציה להקטנת גודל הערך איתו אתה מתמודד - בדוגמה זו כדי להתאים למפרטי PWM, למשל כדי לשלוט בבהירות של נורית LED. הוסף עיכוב קצר כדי להבטיח יציבות.

בָּטֵללוּלָאָה(){
int potentiometerValue = analogRead (פוטנציומטר);
מפה (פוטנציומטרValue, 0, 1023, 0, 255);
סידורי.println(ערך פוטנציומטר);
עיכוב (10);
}

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

constint פוטנציומטר = A0;

בָּטֵללהכין(){
pinMode (פוטנציומטר, INPUT);
סידורי.התחל(9600);
}

בָּטֵללוּלָאָה(){
int potentiometerValue = analogRead (פוטנציומטר);
מפה (פוטנציומטרValue, 0, 1023, 0, 255);
סידורי.println(ערך פוטנציומטר);
עיכוב (10);
}

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

מקודדים סיבוביים דורשים קוד מורכב יותר מפוטנציומטרים, אבל הם עדיין קלים למדי לעבודה. לקודד הסיבובי שלך יש חמישה פינים: הארקה, VCC, פין כפתור (SW), פלט A (CLK) ופלט B (DT). פיני האדמה וה-VCC מתחברים למחברי הארקה ו-5V ב-Arduino שלך, בהתאמה, בעוד שפיני SW, CLK ו-BT מתחברים למחברים דיגיטליים בודדים ב-Arduino.

קוד מקודד רוטרי של Arduino

כדי להפוך את הקוד שלנו לפשוט יותר וקל יותר לעבוד איתו, נשתמש בספריית SimpleRotary Arduino שנוצרה על ידי MPrograms ב- GitHub. ודא שהספרייה הזו מותקנת לפני שתתחיל לעבוד על הקוד שלך.

בדומה לקוד הפוטנציומטר שלך, אתה יכול להתחיל את סקריפט המקודד הסיבובי שלך עם Arduino הבסיסי להכין() ו לוּלָאָה() תבנית פונקציה. התחל בהכרזה על ספריית SimpleRotary והקצאת פיני המקודד שלך בסדר זה; CLK, DT ו-SW.

#לִכלוֹל 
SimpleRotary מַחזוֹרִי(1,2,3);

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

בָּטֵללהכין(){
סידורי.התחל(9600);
}

ה לוּלָאָה() הפונקציה היא סיפור אחר. קביעת סיבוב ציר המקודד מתחילה בא rotary.rotate() קריאת פונקציה המוקצה ל-an int מִשְׁתַנֶה. אם התוצאה היא 1, המקודד מסתובב עם כיוון השעון. אם התוצאה היא 2, המקודד מסתובב נגד כיוון השעון. התוצאה תמיד תהיה 0 אם המקודד לא הסתובב מאז הבדיקה האחרונה.

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

בָּטֵללוּלָאָה(){
int encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("בכיוון השעון");
}

if (encoderRotation == 2) {
Serial.println("נגד כיוון השעון");
}
}

אתה גם צריך להוסיף קוד כלשהו עבור כפתור המקודד שלך ל- לוּלָאָה() פוּנקצִיָה. תהליך זה דומה מאוד, אלא שתשתמש ב- rotary.push() פונקציה, במקום rotary.rotate().

בָּטֵללוּלָאָה(){
int encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("לחצו על הכפתור");
}
}

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

#לִכלוֹל 
SimpleRotary מַחזוֹרִי(1,2,3);

בָּטֵללהכין(){
סידורי.התחל(9600);
}

בָּטֵללוּלָאָה(){
int encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("בכיוון השעון");
}

if (encoderRotation == 2) {
Serial.println("נגד כיוון השעון");
}

int encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("לחצו על הכפתור");
}
}

כיצד לבחור בין פוטנציומטרים למקודדים סיבוביים עבור פרויקטים

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

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

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

מראה דומה, רכיבים שונים

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