วิธีใช้ตัวเปลี่ยนระดับแรงดันไฟฟ้า TXS0108E กับ Arduino

How to Use the TXS0108E Voltage Level Shifter with Arduino

TXS0108E เป็นตัวเปลี่ยนระดับแรงดันไฟฟ้าสองทิศทางที่ช่วยให้การสื่อสารที่ปลอดภัยระหว่างอุปกรณ์ที่ทำงานในระดับแรงดันไฟฟ้าที่แตกต่างกันเช่น 3.3V และ 5V มันมักจะใช้ในการเชื่อมต่อไมโครคอนโทรลเลอร์ 5V (เช่น Arduino) กับเซ็นเซอร์ 3.3V หรือโมดูล บทช่วยสอนนี้จะแนะนำคุณผ่านการใช้ TXS0108E กับ Arduino


สิ่งที่คุณต้องการ

  1. โมดูลตัวเปลี่ยนระดับแรงดันไฟฟ้า TXS0108E
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. อุปกรณ์ 3.3V และ 5V (เช่นเซ็นเซอร์โมดูล)
  4. เครื่องหั่นขนมปังและสายจัมเปอร์
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจโมดูล TXS0108E

โมดูล TXS0108E มีสองโดเมนพลังงาน:

  • VCCA: แหล่งจ่ายไฟสำหรับด้านแรงดันไฟฟ้าต่ำ (1.2V - 3.6V, เช่นอุปกรณ์ 3.3V)
  • VCCB: แหล่งจ่ายไฟสำหรับด้านแรงดันไฟฟ้าสูง (1.65V - 5.5V, เช่นอุปกรณ์ 5V)

สามารถจัดการสายข้อมูลได้สูงสุด 8 เส้นสองทิศทางช่วยให้การสื่อสารในทั้งสองทิศทาง

txs0108e pinout

เข็มหมุด การทำงาน
VCCA แหล่งจ่ายไฟด้านข้างแรงดันต่ำ
VCCB แหล่งจ่ายไฟด้านข้างแรงดันสูง
gnd พื้น
โอ เปิดใช้งานเอาต์พุต (ใช้งานได้สูง)
ขวาน สายข้อมูลด้านแรงดันต่ำ (A1-A8)
BX สายข้อมูลด้านแรงดันสูง (B1-B8)

ขั้นตอนที่ 2: เดินสาย TXS0108E ไปยัง Arduino

ด้านล่างเป็นตัวอย่างของการเชื่อมต่อ TXS0108E กับอุปกรณ์ Arduino และอุปกรณ์ 3.3V I2C (เช่นเซ็นเซอร์ BMP280):

การเชื่อมต่อ

TXS0108E PIN พิน Arduino พินอุปกรณ์ 3.3V
VCCA 3.3V 3.3V
VCCB 5V N/A
gnd gnd gnd
A1 A4 (SDA, แรงดันต่ำ) SDA
A2 A5 (SCL, แรงดันต่ำ) SCL
B1 อุปกรณ์ SDA N/A
B2 อุปกรณ์ SCL N/A
โอ 5V N/A

บันทึก: ตรวจสอบให้แน่ใจว่าทั้ง VCCA และ VCCB เชื่อมต่อกับอุปกรณ์แรงดันไฟฟ้าที่เกี่ยวข้องและนั้น OE เชื่อมโยงกับสูง (5V) เพื่อเปิดใช้งานโมดูล


ขั้นตอนที่ 3: อัปโหลดรหัส Arduino

นี่คือตัวอย่างตัวอย่างในการสื่อสารกับอุปกรณ์ 3.3V I2C (เช่นเซ็นเซอร์ BMP280) ผ่าน TXS0108E:

รหัสตัวอย่าง

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // Create BMP280 object

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Initializing BMP280...");

  if (!bmp.begin(0x76)) { // Default I2C address for BMP280
    Serial.println("Could not find a valid BMP280 sensor. Check wiring.");
    while (1);
  }

  Serial.println("BMP280 initialized.");
}

void loop() {
  Serial.print("Temperature: ");
  Serial.print(bmp.readTemperature());
  Serial.println(" °C");

  Serial.print("Pressure: ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");

  delay(1000); // Wait for a second before the next reading
}

ขั้นตอนที่ 4: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสโดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. สังเกตการอ่านอุณหภูมิและความดันจากเซ็นเซอร์ BMP280

แอปพลิเคชันของ TXS0108E

  1. การเชื่อมต่อไมโครคอนโทรลเลอร์ 5V กับเซ็นเซอร์ 3.3V หรือโมดูล
  2. การเปลี่ยนระดับสำหรับ SPI, I2C, UART หรือโปรโตคอลการสื่อสารอื่น ๆ
  3. การเปิดใช้งานการสื่อสารแบบสองทิศทางระหว่างอุปกรณ์แรงดันไฟฟ้าผสม

การแก้ไขปัญหา

  • ไม่มีการสื่อสาร: ตรวจสอบสายไฟสำหรับ VCCA, VCCB และ OE ตรวจสอบให้แน่ใจว่าใช้ที่อยู่ I2C ที่ถูกต้อง
  • ข้อมูลที่ไม่เสถียร: ใช้สายสั้นและตรวจสอบแหล่งจ่ายไฟที่เสถียร
  • อุปกรณ์ไม่ตอบสนอง: ตรวจสอบให้แน่ใจว่าเข้ากันได้กับแรงดันไฟฟ้าและการเชื่อมต่อตรวจสอบอีกสองด้าน

บทสรุป

คุณใช้ตัวเปลี่ยนระดับ TXS0108E ได้สำเร็จกับ Arduino เพื่อเปิดใช้งานการสื่อสารระหว่างอุปกรณ์ที่ทำงานในระดับแรงดันไฟฟ้าที่แตกต่างกัน โมดูลอเนกประสงค์นี้เป็นสิ่งจำเป็นสำหรับการเชื่อมช่องว่างแรงดันไฟฟ้าในระบบผสมสัญญาณ ทดลองเพิ่มเติมโดยเชื่อมต่ออุปกรณ์อื่น ๆ และสำรวจแอปพลิเคชันในโครงการของคุณ!

แสดงความคิดเห็น

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.