สารบัญ:
- ขั้นตอนที่ 1: ภาพรวมโดยย่อของวงจร
- ขั้นตอนที่ 2: ภาพรวมโดยย่อของซอฟต์แวร์
- ขั้นตอนที่ 3: เนื้อหาแพ็คเก็ต I2C
- ขั้นตอนที่ 4: การรับรหัสการควบคุมระยะไกล (ui32Data)
- ขั้นตอนที่ 5: วิธีทดสอบอุปกรณ์ทาส I2C ของคุณ
- ขั้นตอนที่ 6: ลดขนาดการออกแบบของคุณ
- ขั้นตอนที่ 7: บทสรุป
- ขั้นตอนที่ 8: ข้อมูลอ้างอิงที่ใช้
วีดีโอ: I2C รีโมทคอนโทรลอินฟราเรดกับ Arduino: 8 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
PreambleThis อธิบายรายละเอียดวิธีการสร้างรีโมทคอนโทรลสากลโดยใช้ I2C สำหรับอินเทอร์เฟซ
คุณพูดแปลกแค่ไหนเมื่อใช้อุปกรณ์ทาส I2C?
ใช่ อุปกรณ์ทาส I2C
นี่เป็นเพราะว่าเวลาที่แม่นยำของแพ็กเก็ต IR นั้นค่อนข้างเรียกร้อง และ Arduino ทั่วไปจะต้องลำบากหากมันทำงานอื่นๆ หลายอย่างพร้อมๆ กันอยู่แล้ว เป็นการดีกว่าที่จะกระจายโหลดการคำนวณโดยกำหนดกิจกรรมที่เน้นเวลาให้กับโปรเซสเซอร์เฉพาะเมื่อทำได้ (ยังดีกว่าทำในฮาร์ดแวร์) เนื่องจาก I2C เป็นวิธีการสื่อสารที่มีการจัดทำเอกสารอย่างดีและมีประสิทธิภาพระหว่าง IC ฉันจึงเลือกสิ่งนี้เป็นอินเทอร์เฟซ
บทนำ
ตามที่กล่าวไว้ข้างต้นคำแนะนำนี้จะอธิบายวิธีควบคุมเครื่องใช้ในบ้านเช่นทีวีเครื่องเล่นดีวีดีและดาวเทียมเป็นต้นโดยใช้ไลบรารี IRremote บน Arduino
สรุปด้วยตัวอย่างการออกแบบที่เปลี่ยน Arduino ให้เป็นโมดูลควบคุมระยะไกล I2C ทาส (รูปที่ 1 ด้านบน) พร้อมวงจรทดสอบต้นแบบ (รูปที่ 2 ด้านบน) และอธิบายรายละเอียดวิธีย่อการออกแบบของคุณให้เหลือส่วนประกอบขั้นต่ำที่จำเป็นเพื่อให้สามารถ ฝังอยู่ในการออกแบบอื่น ในกรณีของฉัน ฉันใช้อุปกรณ์ฝังตัวนี้ในอุปกรณ์ควบคุมระยะไกล IoT Universal ที่ใช้ ESP8266-12E
ฉันต้องการชิ้นส่วนอะไร?
ในการสร้างวงจรที่แสดงในขั้นตอนที่ 1 (เครื่องส่งสัญญาณ IR) คุณจะต้องมีชิ้นส่วนดังต่อไปนี้
- ตัวต้านทาน 10K ลด 2 ตัว
- 1 ปิดตัวต้านทาน 390R
- 1 ปิดตัวต้านทาน 33R
- 1 ปิดตัวต้านทาน 3K8
- 1 ปิด LED สีแดง
- 1 ปิด IR Led TSAL6400
- 1 ปิดทรานซิสเตอร์ BC337
- 1 ปิด 220uF ตัวเก็บประจุ
- 1 จาก Arduino Uno
ในการสร้างวงจรที่แสดงในขั้นตอนที่ 4 (IR Receiver) คุณจะต้องมีชิ้นส่วนดังต่อไปนี้
- 1 ปิดตัวต้านทาน 10K
- 1 ปิด TSOP38328
- 1 ปิด 220uF ตัวเก็บประจุ
- 1 จาก Arduino Uno
ในการสร้างวงจรที่แสดงในขั้นตอนที่ 5 (วงจรทดสอบสเลฟ) คุณจะต้องมีชิ้นส่วนดังต่อไปนี้
- 4 ปิดตัวต้านทาน 10K
- 2 ปิดตัวต้านทาน 390R
- 1 ปิดตัวต้านทาน 33R
- 1 ปิดตัวต้านทาน 3K8
- 2 ปิด LED สีแดง
- 1 ปิด IR Led TSAL6400
- 1 ปิดทรานซิสเตอร์ BC337
- 1 ปิด 220uF ตัวเก็บประจุ
- 2 ปิด SPST ปุ่ม
- 2 ปิด Arduino Unos
ในการสร้างวงจรที่แสดงในขั้นตอนที่ 6 (แบบย่อ) คุณจะต้องมีชิ้นส่วนดังต่อไปนี้
- ตัวต้านทาน 10K ลด 3 ตัว
- 1 ปิดตัวต้านทาน 270R
- 1 ปิดตัวต้านทาน 15R
- ตัวต้านทาน 4 ตัวออก 1K
- 1 ปิด LED สีแดง
- 1 ปิด IR Led TSAL6400 หรือ TSAL5300
- 1 ปิดทรานซิสเตอร์ BC337
- 1 ปิด 220uF ตัวเก็บประจุด้วยไฟฟ้า @ 6.3v
- 1 ปิด 1000uF ตัวเก็บประจุด้วยไฟฟ้า @ 6.3v
- 2 ปิด 0.1uF ตัวเก็บประจุ
- 2 ปิดตัวเก็บประจุ 22pF
- 1 ปิด 16MHz Xtal
- 1 ปิด ATMega328P-PU
หมายเหตุ: คุณจะต้องใช้อุปกรณ์ FTDI เพื่อตั้งโปรแกรม ATMega328P
ฉันต้องการทักษะอะไร?
- เข้าใจอุปกรณ์อิเล็กทรอนิกส์เพียงเล็กน้อย
- ความรู้เกี่ยวกับ Arduino และ IDE
- อดทนหน่อย
- ความเข้าใจบางอย่างเกี่ยวกับ I2C จะเป็นประโยชน์ (ดูที่นี่สำหรับรายละเอียดทั่วไปของ I2C/Wire Library)
หัวข้อที่ครอบคลุม
- ภาพรวมโดยย่อของวงจร
- ภาพรวมโดยย่อของซอฟต์แวร์
- เนื้อหาแพ็คเก็ต I2C,
- การรับรหัสควบคุมระยะไกล (ui32Data)
- วิธีทดสอบอุปกรณ์ I2C Slave ของคุณ
- ลดขนาดการออกแบบของคุณ
- บทสรุป,
- ข้อมูลอ้างอิงที่ใช้
ข้อจำกัดความรับผิดชอบ
เช่นเคย คุณใช้คำแนะนำเหล่านี้โดยยอมรับความเสี่ยงเองและไม่รองรับ
ขั้นตอนที่ 1: ภาพรวมโดยย่อของวงจร
วัตถุประสงค์ของวงจรคือเพื่อส่งรหัสรีโมทคอนโทรล IR การออกแบบค่อนข้างตรงไปตรงมาและค่อนข้างเรียบง่าย
เมื่อทรานซิสเตอร์ Q1 เปิด BC337 NPN ผ่านลอจิกหนึ่งจาก Arduino PWM O/P D3 ถึง Resistor R5 กระแสไฟจะไหลผ่าน Leds 1 และ 2 ถูกจำกัดโดยตัวต้านทานบัลลาสต์ R3 และ R4 ตามลำดับเท่านั้น Q1 ใช้เพื่อเพิ่มกระแสที่ไหลผ่าน IR Diode (IF Max = 100mA) ให้มากกว่าที่ Arduino O/P มีความสามารถ ~40mA @ +5v supply
Capacitor C1 a 220uF Electrolytic ให้ความเสถียรในการป้องกันไม่ให้รางจ่ายไฟตกจากพลังงานที่ดึงมาจาก Leds 1 และ 2
ตัวต้านทาน R1 และ R2 เป็นตัวต้านทานแบบ I2C
ขั้นตอนที่ 2: ภาพรวมโดยย่อของซอฟต์แวร์
คำนำ
ในการคอมไพล์ซอร์สโค้ดนี้ให้สำเร็จ คุณจะต้องมีไลบรารีเพิ่มเติมดังต่อไปนี้
IRremote.h
- โดย: z3t0
- วัตถุประสงค์: ไลบรารีระยะไกลอินฟราเรดสำหรับ Arduino: ส่งและรับสัญญาณอินฟราเรดด้วยโปรโตคอลหลายตัว
- จาก:
ภาพรวมรหัส
ดังแสดงในภาพที่ 1 ด้านบน เมื่อเริ่มต้นโค้ดจะกำหนดค่าไมโครคอนโทรลเลอร์ I/O จากนั้นจะสำรวจสถานะของซอฟต์แวร์ภายในแฟล็ก 'bFreshDataFlag' เมื่อตั้งค่าสถานะนี้ตัวควบคุมยืนยันว่าเป็นบรรทัด 'ไม่ว่าง' (กำลังส่งข้อมูลพิน D4 ต่ำ) และย้ายไปยังสถานะ 'eBUSY' โดยกดปุ่มอ่านตามลำดับซึ่งอยู่ใน uDataArray และส่งข้อมูลการปรับ IR ไปยัง IR LED ใน ลำดับการส่ง
เมื่อข้อมูลที่เก็บไว้ใน uDataArray ถูกส่งโดยสมบูรณ์แล้ว สถานะ 'eIDLE' จะกลับมาทำงานต่อ และจะไม่มีการยืนยันบรรทัด 'Busy' (กำลังส่งข้อมูลพิน D4 สูง) ขณะนี้อุปกรณ์พร้อมที่จะรับการกดปุ่มเพิ่มเติมเพื่อทำเครื่องหมายจุดสิ้นสุดของลำดับการส่งสัญญาณ
การรับข้อมูลการกดปุ่ม IR
เมื่อข้อมูลถูกส่งไปยังรีโมตคอนโทรลอินฟราเรดผ่าน I2C จะทริกเกอร์การขัดจังหวะและการเรียกใช้ฟังก์ชัน receiveEvent() จะถูกทริกเกอร์แบบอะซิงโครนัส
เมื่อทริกเกอร์ข้อมูล I2C ที่ได้รับจะถูกเขียนตามลำดับลงในบัฟเฟอร์ 'uDataArray'
ในระหว่างการรับข้อมูล ถ้าการสิ้นสุดของลำดับถูกส่งสัญญาณโดยต้นแบบ (bFreshData!=0x00) 'bFreshDataFlag' จะถูกตั้งค่า ดังนั้นจึงเป็นการส่งสัญญาณการเริ่มต้นของลำดับการส่งข้อมูล
รูปภาพ 2…3 ให้ตัวอย่างของลำดับแพ็กเก็ตทั่วไป
หมายเหตุ: ดูซอร์สโค้ดแบบเต็มได้ที่นี่
ขั้นตอนที่ 3: เนื้อหาแพ็คเก็ต I2C
รูปแบบของแพ็คเก็ตควบคุมที่ส่งไปยังสเลฟผ่าน I2C นั้นแสดงไว้ด้านบนในรูปที่ 1 ความหมายของแต่ละฟิลด์แสดงไว้ด้านล่าง
ความหมายของฟิลด์แพ็คเก็ตควบคุม
ไบต์ bEncoding;
-
การเข้ารหัสการควบคุมระยะไกล IR,
- RC6 (ท้องฟ้า) = 0,
- โซนี่ = 1,
- ซัมซุง = 2,
- NEC = 3,
- LG = 4
uint32_t ui32ข้อมูล;
การแทนค่าฐานสิบหกของสตรีมข้อมูล IR แบบไบนารี 4 ไบต์ข้อมูล (แบบยาวที่ไม่ได้ลงนาม), LSByte … MSByte
ไบต์ bNumberOfBitsInTheData;
จำนวนบิตในข้อมูล (สูงสุด 32) ช่วง = 1 … 32
ไบต์ bPulseTrainRepeats;
กี่ครั้งของรถไฟชีพจรนี้ ช่วง = 1 … 255. โดยปกติ 2…4 ซ้ำ คุณอาจต้องการขยายเวลานี้สำหรับคำสั่งเปิด/ปิด เนื่องจากอุปกรณ์ที่รับบางครั้งอาจต้องใช้พัลส์เทรนซ้ำหลายครั้งเพื่อรับสัญญาณเปิดเครื่อง
ไบต์ bDelayBetweenPulseTrainRepeats;
ความล่าช้าระหว่างการทำซ้ำของพัลส์เทรนนี้ ช่วง = 1 … 255mS โดยทั่วไปแล้ว 22mS … 124mS
ไบต์ bButtonRepeats;
จำลองการกดปุ่มเดิมซ้ำๆ (แต่ไม่รองรับโค้ดที่แก้ไขแล้ว เช่น รีโมทของ Apple แต่ใช้รหัสปุ่มซ้ำ) ช่วง = 1 … 256. ค่าเริ่มต้น = 1
uint16_t ui16DelayBetweenButton ซ้ำ;
หน่วงเวลาระหว่างปุ่มซ้ำ (unsigned int) LSByte ทั้งหมด 2 ไบต์ … MSByte ช่วง = 1 … 65535mS ค่าเริ่มต้น = 0mS
ไบต์ bFreshData;
-
ข้อมูลสด ค่าที่ไม่เป็นศูนย์ เขียนล่าสุด ทริกเกอร์ลำดับ IR TX ช่วง 0x00…0xFF
- แพ็กเก็ตควบคุมเพิ่มเติมกำลังจะมา = 0
- นี่คือแพ็กเก็ตควบคุมสุดท้าย = ค่าที่ไม่ใช่ศูนย์ 1, 2, … 255
สังเกตการใช้คำสั่งคอมไพเลอร์ '_packed_' เพื่อให้แน่ใจว่าข้อมูลเป็นแพ็คเก็ตไบต์สำหรับไบต์ในหน่วยความจำโดยไม่คำนึงถึงระบบเป้าหมายที่ใช้ (Uno, Due, ESP8266 เป็นต้น) ซึ่งหมายความว่าการรวมกันระหว่าง registerAllocationType และ dataArrayType ต้องการเพียงนาฬิกาเอาท์/นาฬิกาเป็นไบต์ตามลำดับจากแพ็กเก็ตควบคุมเท่านั้น ทำให้ซอฟต์แวร์ TX/RX ใช้งานง่าย
ขั้นตอนที่ 4: การรับรหัสการควบคุมระยะไกล (ui32Data)
คุณสามารถรับรหัสคีย์รีโมตคอนโทรลได้สามวิธี
- ผ่านการนับบิตด้วยออสซิลโลสโคป
- ดูในเว็บไซต์,
- ถอดรหัสโดยตรงจากสตรีมข้อมูลในซอฟต์แวร์
ผ่านการนับบิตด้วยขอบเขต
วิธีนี้ไม่ใช่วิธีที่มีประสิทธิภาพ เนื่องจากต้องใช้เวลาค่อนข้างนานและอาจต้องใช้ความพยายามมากกว่า 1 ครั้ง อย่างไรก็ตาม วิธีนี้อาจมีความแม่นยำสูง นอกจากนี้ยังมีประโยชน์ในการตรวจสอบรหัสด้วยสายตาที่ได้รับโดยใช้วิธีที่ 2 และ 3 รวมถึงการกำหนดลักษณะเฉพาะของรีโมต ตัวอย่างเช่นเมื่อกดปุ่มบนรีโมท Apple IR ค้างไว้ รีโมตจะออกลำดับคำสั่งในขั้นต้น จากนั้นตามด้วยลำดับการบีบอัดซ้ำเป็น 0xF….
ดูในเว็บไซต์
ฐานข้อมูลรหัสการควบคุมระยะไกลบนเว็บไซต์ Linux Infrared Remote Control เป็นแหล่งที่ดี
ข้อเสียคือคุณอาจต้องลองใช้รหัสสองสามรหัสจนกว่าจะพบรหัสที่เหมาะกับคุณ คุณอาจต้องตีความการแสดงรหัสบางส่วนเพื่อแปลงเป็นรูปแบบฐานสิบหกที่เทียบเท่ากัน
ถอดรหัสโดยตรงจากสตรีมข้อมูล
การใช้วงจรในรูปที่ 1 ด้านบนร่วมกับตัวอย่างไลบรารี IRremote 'IRrecvDumpV2.ino' ทำให้สามารถถอดรหัสสตรีมข้อมูลได้โดยตรงจากรีโมต ภาพที่ 2 แสดงรีโมททีวี Samsung ที่ถอดรหัสแล้วสำหรับการกดปุ่มเปิด/ปิดในหน้าต่างเทอร์มินัล Arduino IDE
เครื่องรับ/เครื่องส่งแบบรวม
รูปภาพที่ 3 และ 4 ด้านบนแสดงถึงโซลูชันที่ช่วยให้ทั้งรับและส่งคำสั่ง IR เพื่อให้สร้างต้นแบบได้ง่าย
ในการถอดรหัสการกดปุ่มควบคุมระยะไกล IR คุณจะต้องแฟลช Arduino ด้วยตัวอย่าง 'IRrecvDumpV2.ino' ซึ่งมาพร้อมกับไลบรารี IRremote
นอกจากนี้ยังทำงานได้ดีสำหรับการส่งสัญญาณหากคำสั่ง IR มีไฟ LED สีแดงเป็นตัวบ่งชี้ว่าอุปกรณ์กำลังทำงานอยู่
ขั้นตอนที่ 5: วิธีทดสอบอุปกรณ์ทาส I2C ของคุณ
ใช้ซอร์สโค้ดที่นี่ และวงจรที่ระบุไว้ด้านบนในภาพที่ 1 ตั้งโปรแกรม Arduino 'Master' ด้วย 'IR_Remote_Sim_Test.ino' และ 'Slave' Arduino ด้วย 'IR_Remote_Sim.ino'
สมมติว่าคุณมีทีวี Sony Bravia กล่อง Sky HD และ Sony BT SoundBar ให้กดปุ่ม 1 แล้วทีวีของคุณจะเปลี่ยนเป็น BBC1 (ช่อง 101) กดปุ่ม 2 และซาวด์บาร์ของคุณจะปิดเสียง กดอีกครั้งและจะปิดเสียง
ในระหว่างการดำเนินการของลำดับการส่ง IR LED3 จะสว่างขึ้นเพื่อระบุว่าทาสไม่ว่างและ LED1 จะกะพริบในแนวเดียวกับกระบวนการส่งสัญญาณ IR
แน่นอน หากคุณไม่ได้ตั้งค่าระบบความบันเทิงแบบเดียวกับด้านบน คุณสามารถตั้งโปรแกรมทาสใหม่ด้วย 'IRrecvDumpV2.ino' ถอดรหัสคำสั่งทางไกลที่คุณสนใจ จากนั้นตั้งโปรแกรมให้เป็น 'IR_Remote_Sim_Test.ino' สำหรับคุณ สถานการณ์ที่กำหนด
ภาพที่ 2 แสดงภาพรวมซอฟต์แวร์ทดสอบระดับระบบระหว่าง Master และ Slave
ขั้นตอนที่ 6: ลดขนาดการออกแบบของคุณ
ตกลง สมมติว่าคุณได้ปฏิบัติตามคำแนะนำนี้โดยอาศัย Arduinos สองตัวเพื่อควบคุมอุปกรณ์ในบ้านของคุณ ไม่ใช่การใช้สต็อก Arduino ของคุณอย่างมีประสิทธิภาพมากที่สุด ดังนั้น หากคุณสร้างวงจรที่แสดงในภาพด้านบน และทำตามคำแนะนำที่นี่เพื่อตั้งโปรแกรม ATMega328P ด้วย 'IR_Remote_Sim.ino' คุณจะสามารถลดทั้งระบบให้เป็นส่วนประกอบที่น้อยที่สุดได้ ซึ่งจะช่วยให้คุณสามารถฝังการออกแบบของคุณลงในระบบอื่นได้
ขั้นตอนที่ 7: บทสรุป
วิธีแก้ปัญหามีความเสถียรและทำงานได้ดี มันถูกฝังอยู่ในระบบอื่นมาหลายสัปดาห์แล้วโดยไม่มีปัญหาใดๆ
ฉันเลือก Arduino Uno R3 เนื่องจากฉันต้องการอุปกรณ์ที่มี RAM เพียงพอเพื่อให้ฉันมีบัฟเฟอร์ปุ่มที่มีความลึกพอสมควร ฉันตัดสินใจใช้ขนาดบัฟเฟอร์ 20 แพ็กเก็ต (MAX_SEQUENCES)
แผงป้องกัน Hybrid TX/RX ที่ฉันสร้างขึ้นนั้นมีประโยชน์มากเมื่อถอดรหัสการควบคุมระยะไกลของ Sony และ Sky แม้ว่าฉันต้องสารภาพว่าใช้ขอบเขตดิจิทัลของฉันเป็นครั้งคราวเพื่อตรวจสอบซอฟต์แวร์ถอดรหัสคำสั่ง IR เหมือนกับที่มาจาก IR ที่ได้รับ (TSOP38328)
สิ่งเดียวที่ฉันจะทำแตกต่างออกไปคือการใช้วงจรขับกระแสคงที่สำหรับไฟ LED IR ดังที่แสดงด้านบนในรูปที่ 2
ข้อสังเกตอีกประการหนึ่งคือ เครื่องส่งสัญญาณ IR บางตัวไม่ได้รับการปรับความถี่ด้วย 38KHz, TSOP38328 ได้รับการปรับให้เหมาะสมสำหรับ 38KHz
ขั้นตอนที่ 8: ข้อมูลอ้างอิงที่ใช้
IRRemote.h
- โดย: z3t0
- วัตถุประสงค์: ไลบรารีระยะไกลอินฟราเรดสำหรับ Arduino: ส่งและรับสัญญาณอินฟราเรดด้วยโปรโตคอลหลายตัว
- จาก:
ห้องสมุด IR Remote
- z3t0.github.io/Arduino-IRremote/
- https://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
IR (อินฟราเรด) ตัวรับ เซนเซอร์ - TSOP38238 (เทียบเท่า)
https://cdn-shop.adafruit.com/datasheets/top382.pdf
เพื่อหลีกเลี่ยงการขยายโครงสร้างข้อมูลไปยังขอบเขตคำ
- https://github.com/esp8266/Arduino/issues/1825
- https://github.com/tuanpmt/esp_bridge/blob/master/modules/include/cmd.h#L15
- https://stackoverflow.com/questions/11770451/what-is-the-meaning-of-attribute-packed-aligned4
แหล่งที่มาของรายละเอียดรีโมท IR ที่ดี
https://www.sbprojects.com/knowledge/ir/index.php
I2C
- https://playground.arduino.cc/Main/WireLibraryDetailedReference
- https://www.arduino.cc/en/Reference/WireSend
ฐานข้อมูลรีโมท IR
- https://www.lirc.org/
- https://lirc-remotes.sourceforge.net/remotes-table.html
BC337 เอกสารข้อมูลสินค้า
https://www.onsemi.com/pub/Collateral/BC337-D. PDF
1N4148 เอกสารข้อมูลสินค้า
https://www.vishay.com/docs/81857/1n4148.pdf
เอกสารข้อมูล ATMega328P-PU
แนะนำ:
Arduino Hygrothermograph Hygrometer Kit +LCD1602/I2C+DHT11 Sinoning Maker การซื้อ: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Hygrothermograph Hygrometer Kit +LCD1602/I2C+DHT11 Sinoning Makerbuying: ไม่จำเป็นต้องเชื่อม ไม่จำเป็นต้องมีความรู้ทางไฟฟ้าที่ซับซ้อน คุณสามารถสร้างเทอร์โมมิเตอร์ของคุณเองได้ เพียงแค่เสียบสายเคเบิลที่เราให้มา ROBOTซื้อชุดอุปกรณ์
จอ LCD I2C / IIC - ใช้ SPI LCD กับจอแสดงผล LCD I2C โดยใช้โมดูล SPI เป็น IIC กับ Arduino: 5 ขั้นตอน
จอ LCD I2C / IIC | ใช้ SPI LCD กับจอแสดงผล LCD I2C โดยใช้โมดูล SPI เป็น IIC กับ Arduino: สวัสดีทุกคน เนื่องจาก SPI LCD 1602 ปกติมีสายเชื่อมต่อมากเกินไป ดังนั้นจึงยากมากที่จะเชื่อมต่อกับ Arduino แต่มีโมดูลเดียวในตลาดที่สามารถทำได้ แปลงจอแสดงผล SPI เป็นจอแสดงผล IIC ดังนั้นคุณต้องเชื่อมต่อเพียง 4 สายเท่านั้น
วิธีควบคุม I2C Oled Display ด้วย Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
วิธีควบคุมจอแสดงผล Oled I2C ด้วย Arduino: นี่เป็นบทแนะนำง่ายๆ เกี่ยวกับวิธีการควบคุม I2C Oled Display ด้วย Arduino หากคุณชอบคำแนะนำนี้ โปรดสมัครรับข้อมูลจากช่องของฉัน https://www.youtube.com/ZenoModiff
จอ LCD I2C / IIC - แปลง SPI LCD เป็นจอแสดงผล LCD I2C: 5 ขั้นตอน
จอ LCD I2C / IIC | แปลง SPI LCD เป็น I2C LCD Display: การใช้จอแสดงผล spi lcd จำเป็นต้องมีการเชื่อมต่อมากเกินไป ซึ่งทำได้ยากมาก ดังนั้นฉันจึงพบโมดูลที่สามารถแปลง i2c lcd เป็น spi lcd ได้ ดังนั้นมาเริ่มกันเลย
ตัวอักษร LCD I2c Adapter (ตัวอย่างการเชื่อมต่อ I2c): 12 ขั้นตอน (พร้อมรูปภาพ)
อะแดปเตอร์ LCD I2c ของตัวละคร (ตัวอย่างการเชื่อมต่อ I2c): ฉันกำลังสร้างสคีมาการเชื่อมต่อสำหรับอะแดปเตอร์แสดงอักขระ i2c ตรวจสอบการอัปเดตในไซต์ของฉัน ตอนนี้ฉันเพิ่ม olso สคีมาการเชื่อมต่อสายไฟเพื่อใช้ไลบรารีดั้งเดิมไม่ใช่ส้อมของฉัน ไลบรารี LiquidCrystal Arduino สำหรับจอ LCD แบบตัวอักษร โปรเจ็กต์แบบแยก