כיצד להשתמש ב- CD74HC4067 Multiplexer עם Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

ה- CD74HC4067 הוא מרבב/דמולטפלקס אנלוגי/דיגיטלי בן 16 ערוצים המאפשר לך להרחיב את מספר סיכות הקלט או הפלט בארדואינו שלך. זה שימושי במיוחד בפרויקטים הדורשים חיישנים מרובים, כפתורים או נוריות LED תוך צמצום השימוש ב- PIN. מדריך זה ינחה אתכם באמצעות חיבור ושימוש ב- CD74HC4067 עם Arduino.


מה תצטרך

  1. CD74HC4067 מודול מולטיפלקס או IC
  2. לוח ארדואינו (למשל, אונו, מגה, ננו)
  3. חיישנים, כפתורים או נוריות LED לבדיקה
  4. חוטי לחם וגשר
  5. מחשב עם Arduino IDE המותקן

שלב 1: הבנת ה- CD74HC4067

ה- CD74HC4067 פועל כמתג המחבר בין 16 סיכות הקלט/הפלט שלו לסיכה משותפת יחידה. אתה יכול לשלוט באיזה ערוץ פעיל באמצעות 4 סיכות בקרה (S0 ל- S3).

Pinout

פִּין פוּנקצִיָה
VCC ספק כוח (3.3 וולט או 5 וולט)
GND טָחוּן
S0, S1, S2, S3 בקרת סיכות (לבחירת הערוץ הפעיל)
EN אפשר סיכה (פעילה נמוכה; התחבר ל- GND כדי לאפשר)
Com סיכת קלט/פלט נפוצה (התחברו לארדואינו)
CH0-CH15 ערוצים 0 עד 15 (התחבר לחיישנים, כפתורים או נוריות LED)

שלב 2: חיווט CD74HC4067 ל- Arduino

כך תוכלו לחבר את CD74HC4067 ל- Arduino Uno:

CD74HC4067 PIN סיכת ארדואינו
VCC 5V
GND GND
S0 סיכה 8
S1 סיכה 9
S2 סיכה 10
S3 סיכה 11
EN GND
Com A0 (לקריאת אותות אנלוגיים)
CH0-CH15 חיישנים, נוריות LED או כפתורים

שלב 3: העלה את הקוד

הדוגמה הבאה מדגימה כיצד לקרוא ערכים אנלוגיים מחיישנים המחוברים ל- CD74HC4067:

קוד דוגמה

const int s0 = 8; // Control pin S0
const int s1 = 9; // Control pin S1
const int s2 = 10; // Control pin S2
const int s3 = 11; // Control pin S3
const int comPin = A0; // Common pin connected to A0

void setup() {
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i); // Select the active channel
    int sensorValue = analogRead(comPin); // Read the value from the sensor
    Serial.print("Channel ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(sensorValue);
    delay(500); // Small delay for readability
  }
}

void selectChannel(int channel) {
  digitalWrite(s0, channel & 0x01); // Set S0
  digitalWrite(s1, (channel >> 1) & 0x01); // Set S1
  digitalWrite(s2, (channel >> 2) & 0x01); // Set S2
  digitalWrite(s3, (channel >> 3) & 0x01); // Set S3
}

שלב 4: בדוק את ההתקנה

  1. חבר את Arduino למחשב שלך באמצעות USB.
  2. פתח את ה- Arduino IDE ובחר את הנכון לוּחַ וכן נָמָל מתחת ל כְּלֵי עֲבוֹדָה תַפרִיט.
  3. העלה את הקוד על ידי לחיצה העלה.
  4. פתח את הצג הסדרתי (כְּלֵי עֲבוֹדָה > צג סידורי) וקבעו את שיעור הבוד 9600.
  5. שימו לב לערכים האנלוגיים עבור כל ערוץ המוצג במוניטור הסדרתי.

אופציונלי: שליטה על נוריות LED

כדי לשלוט על נוריות LED המחוברות לערוצים, שנה את הקוד לפלט אותות דיגיטליים במקום לקרוא תשומות אנלוגיות. לְדוּגמָה:

קוד דוגמה עבור נוריות LED

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i);
    digitalWrite(comPin, HIGH); // Turn on LED on the active channel
    delay(500);
    digitalWrite(comPin, LOW); // Turn off LED
  }
}

יישומים של CD74HC4067

  1. הרחבת כניסות/יציאות אנלוגיות ודיגיטליות
  2. קריאת חיישנים מרובים עם סיכות מוגבלות
  3. בניית מטריצות כפתור גדול
  4. שליטה על נוריות LED או ממסרים מרובים

פתרון בעיות

  • אין תגובה מערוצים: אמת את חיבורי סיכות הבקרה והבטיח את EN PIN מחובר ל- GND.
  • בחירת ערוצים שגויה: בדוק את selectChannel() היגיון להגדרת סיכות S0-S3.
  • קריאות לא יציבות: להבטיח הארקה נאותה ואספקת חשמל יציבה לחיישנים.

מַסְקָנָה

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

השאירו תגובה

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.