תוכן עניינים:
וִידֵאוֹ: פוטנציומטר דיגיטלי כפול DS1803 עם Arduino: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
אני אוהב לשתף את השימוש במד פוט דיגיטלי DS1803 עם Arduino. IC זה מכיל שני קנקנים דיגיטליים הניתנים לשליטה באמצעות ממשק דו חוטי, לשם כך אני משתמש בספריית wire.h.
IC זה יכול להחליף מד פוטר אנלוגי רגיל. בדרך זו אתה יכול לשלוט למשל במגבר או באספקת חשמל.
במדריך זה אני שולט בהירות של שני נוריות LED להראות את העבודה.
הארדואינו סופר את הפולסים של מקודד סיבובי ומניח את הערך בסיר המשתנה [0] ובסיר [1]. כאשר אתה לוחץ על המתג על המקודד, אתה יכול לעבור בין סיר [0] לסיר [1].
הערך האמיתי של הסירים נקרא בחזרה מה- DS1803 ומונח ב- potValue משתנה [0] וב- potValue [1] ומוצג על מסך LCD.
שלב 1: חיבורים של ה- DS1803
כאן תוכל לראות את החיבורים של ה- DS1803. H הוא הצד הגבוה של הפוטנציומטר, L הצד הנמוך ו- W המגב. SCL ו- SDA הם חיבורי האוטובוס.
עם חיבור A0, A1 ו- A2 אתה יכול לתת ל- DS1803 כתובת משלו, בדרך זו תוכל לשלוט בהתקנים נוספים באמצעות אוטובוס אחד. בדוגמה שלי נתתי את כתובת DS1803 0 על ידי חיבור כל הסיכות לקרקע.
שלב 2: בייט פקודה
ניתן להשתמש באופן הפעולה של DS1803 בבת הפקודה. כאשר אתה בוחר "לכתוב פוטנציומטר -0" שני הפוטנציומטרים נבחרים, כאשר אתה רק רוצה להתאים פוטנציומטר -0, עליך לשלוח רק את בית הנתונים הראשון. "כתוב פוטנציומטר -1" כוונן את פוטרומטר -1 בלבד. "כתוב לשני הפוטנציומטרים" נותן לשני הפוטנציומטרים את אותו ערך.
שלב 3: שליטה ב- DS1803
לבקת הבקרה (איור 3) יש מזהה התקן, זה נשאר תמיד אותו הדבר. בדוגמה שלי A0, A1 ו- A2 הם 0 מכיוון שאנו בוחרים כתובת על ידי הנחת כל סיכות A לקרקע. הסיבית האחרונה R/W תוגדר ל- 0 או 1 על ידי הפקודה "Wire.beginTransmission" ו- "Wire.requestFrom" בארדואינו. באיור 5 אתה יכול לראות את כל המברק. המברק הנקרא מוצג באיור 4.
שלב 4: הגדר
מעגל זה מראה כיצד לחבר הכל. ה- LCD של Nokia זמין עם חיבורים שונים, ודא שאתה מחבר את שלך נכון. גם המקודד הסיבובי בגרסאותיו השונות, לחלקן המשותף בסיכה האמצעית אחרות לא. שמתי רשת מסננים קטנה (נגד 470 אוהם עם מכסה 100nF) כדי לסנן את אותות הפלט A ו- B של המקודד. אני צריך את המסנן הזה כי הפלט אכן הרעיש הרבה. הכנסתי גם טיימר ניתוק לתוכנית כדי לבטל רעש. לשאר אני חושב שהמעגל ברור. ניתן להזמין את ה- LCD באמצעות Adafruit
שלב 5: התוכנית
לשימוש באוטובוס דו-חוטי אני כולל את ספריית Wire.h. כדי להשתמש ב- LCD אני כולל את ספריית Adafruit שניתן להוריד מ https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library גם ספריית Adafruit_GFX.h זמינה כאן https:// github. com/adafruit/Adafruit-GFX-Library.
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
תצוגה Adafruit_PCD8544 = Adafruit_PCD8544 (7, 6, 5, 4, 3);
כאן תוכל לראות את כל המשתנים. בקרת בתים ובייט פקודה כפי שתואר קודם. ניתן להתאים את deBounceTime בהתאם לרעש שבמקודד שלך.
סיר בתים [2] = {1, 1}; בייט בקרת בתים = B0101000; // 7 סיביות, byte commandByte = B10101001; // 2 הביטים האחרונים הם בחירת פוטר. בתים potValue [2]; int i = 0; int deBounceTime = 10; // התאם ערך זה בהתאם לרעש const int encoder_A = 8; const int encoder_B = 9; const int buttonPin = 2; newDebounceTime long on unsigned long; oldTime לא חתום; בוליאני לחוץ = 0; ספירה בוליאנית = 1;
בהגדרה אני מגדיר את הסיכות הנכונות ושם את הטקסט הסטטי על ה- LCD
הגדרת חלל () {Wire.begin (); Serial.begin (9600); pinMode (encoder_A, INPUT); pinMode (encoder_B, INPUT); pinMode (buttonPin, INPUT); newDebounceTime = millis ();
display.begin ();
display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (שחור); display.setCursor (0, 10); display.println ("POT 1 ="); display.setCursor (0, 22); display.println ("POT 2 ="); display.display ();
}
בלולאה אני בודק תחילה אם המרווח הוא יותר מ 500ms, אם כן ה- LCD מתעדכן. אם לא הכפתור על המקודד מסומן. אם תלחץ על toggleBuffer תתקשר. לאחר מכן המקודד נבדק. אם קלט 0 נמוך (סיבוב מזוהה) אני בודק קלט B, אם קלט B הוא 0 אני מגדיל סיר , אחרים אני מוריד. לאחר מכן הערך יישלח ל- DS1803 באמצעות wire.write.
לולאת חלל () {
הַפסָקָה();
if (digitalRead (buttonPin) == 1 && (לחצו == 0)) {toggleBuffer ();} if (digitalRead (buttonPin) == 0) {לחץ = 0;}
if (digitalRead (encoder_A) == 0 && count == 0 && (millis () - newDebounceTime> deBounceTime)) {if (digitalRead (encoder_B) == 0) {pot ++; אם (סיר > 25) {סיר = 25;}} אחר {סיר -; אם (סיר <1) {סיר = 1;}} count = 1; newDebounceTime = millis ();
Wire.beginTransmission (controlByte); // להתחיל לשדר
Wire.write (commandByte); // מבחר קוטרי Wire.write (סיר [0] * 10); // שלח בייט ראשון של נתוני מד פוטר Wire.write (סיר [1] * 10); // שלח בתים 2 של נתוני מד פוטר Wire.endTransmission (); // להפסיק לשדר} אחרת אם (digitalRead (encoder_A) == 1 && digitalRead (encoder_B) == 1 && count == 1 && (millis () - newDebounceTime> deBounceTime)) {count = 0; newDebounceTime = millis (); }}
void toggleBuffer () {לחץ = 1; אם (i == 0) {i = 1;} אחר {i = 0;}}
ראשית אני מנקה את האזור שבו עלי לכתוב את המשתנים. אני עושה זאת כדי לצייר מלבן באזור זה. אחרי זה אני כותב את המשתנים למסך.
void writeToLCD () {Wire.requestFrom (controlByte, 2); potValue [0] = Wire.read (); // קרא הראשון potmeter byte potValue [1] = Wire.read (); // קראו את השני בייט פוטמטר display.fillRect (40, 0, 40, 45, WHITE); // מסך משתנה ברור בתצוגת LCD.setCursor (40, 10); display.print (potValue [0]); // כתוב את ערך פוטר הראשון לתצוגת LCD.setCursor (40, 22); display.print (potValue [1]); // כתוב ערך מד פוטר שני לתצוגת LCD.setCursor (60, (10 + i * 12)); display.print ("<"); display.display (); }
מרווח חלל () {// טיימר מרווח לכתיבת נתונים ל- LCD אם ((millis () - oldTime)> 500) {writeToLCD (); oldTime = millis (); }}
מוּמלָץ:
מהירות וכיוון מנוע Arduino Control DC באמצעות פוטנציומטר, תצוגת OLED ולחצנים: 6 שלבים
מהירות וכיוון מנוע DC של Arduino Control באמצעות פוטנציומטר, תצוגת OLED ולחצנים: במדריך זה נלמד כיצד להשתמש במנהג L298N DC MOTOR CONTROL ובפוטנציומטר לשליטה על מהירות וכיוון מנוע DC באמצעות שני לחצנים ונציג את ערך הפוטנציומטר. בתצוגת OLED צפה בסרטון הדגמה
שליטה בהירות LED עם פוטנציומטר עם Arduino: 3 שלבים
שליטה בהירות LED עם פוטנציומטר עם Arduino: בפרויקט זה, נשלוט על בהירות LED באמצעות התנגדות משתנה המסופקת על ידי פוטנציומטר. זהו פרויקט בסיסי מאוד למתחילים, אך הוא ילמד אותך הרבה דברים על פוטנציומטר ועבודת LED שנדרשים כדי להפוך את ההתקדמות
פוטנציומטר דיגיטלי MCP41HVX1 עבור Arduino: 10 שלבים (עם תמונות)
פוטנציומטר דיגיטלי MCP41HVX1 עבור Arduino: משפחת הפוטנטיומטרים הדיגיטליים MCP41HVX1 (aka DigiPots) הם מכשירים המחקים את תפקודו של פוטנציומטר אנלוגי ונשלטים באמצעות SPI. יישום לדוגמה יהיה החלפת כפתור עוצמת הקול בסטריאו שלך עם DigiPot שהוא
כיצד להרוס קליפר דיגיטלי וכיצד עובד קליפר דיגיטלי: 4 שלבים
כיצד לקרוע קליפר דיגיטלי וכיצד עובד קליפר דיגיטלי: אנשים רבים יודעים כיצד להשתמש בקליפר למדידה. מדריך זה ילמד אתכם כיצד לקרוע קליפר דיגיטלי והסבר כיצד עובד המחוגה הדיגיטלית
מתג לד כפול כפול: 3 שלבים
מתג לד כפול כפול: מה זה עושה בעזרת נכסים מ- Abid, יצרתי מתג נורות לד כפול, בעזרת Arduino Leonardo, לוח לחם, כמה כבלים, מיקרופון פשוט ולד. כאשר אתה מוחא כפיים פעמיים, הלייד נדלק. למחוא כפיים שוב, ונורית ה- LED תידלק