
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

I2C เป็นโปรโตคอลอนุกรมที่ใช้ในการสื่อสารไมโครคอนโทรลเลอร์กับอุปกรณ์ต่อพ่วงภายนอกที่ต่ออยู่กับวงจรเดียวกัน อุปกรณ์ต่อพ่วงแต่ละเครื่องต้องมีหมายเลข ID ที่ไม่ซ้ำกันซึ่งเรียกว่าที่อยู่ซึ่งใช้เพื่อระบุว่าเป็นผู้รับข้อความที่กำหนด ที่อยู่เหล่านี้กำหนดโดยผู้ผลิตอุปกรณ์และส่วนใหญ่ไม่สามารถเปลี่ยนแปลงได้ นักดมกลิ่นจะสแกนที่อยู่ที่เป็นไปได้ทั้งหมดเพื่อค้นหาอุปกรณ์ที่เชื่อมต่อและรายงานสิ่งที่พบ วิธีนี้ช่วยระบุชิปที่ไม่ได้ทำเครื่องหมายเมื่อที่อยู่นั้นสามารถ googled เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับชิปได้
อุปกรณ์นี้เลียนแบบการทำงานของ Arduino UNO ของสคริปต์ Raspberry Pi i2cdetect โดยดมกลิ่นที่อยู่ i2c ที่เป็นไปได้ทั้งหมดเพื่อค้นหาอุปกรณ์ที่เชื่อมต่อและพิมพ์ผลลัพธ์อย่างดีบนหน้าจอ LCD ขนาด 16x02
เพื่อให้พอดีกับทุกอย่างบนหน้าจอ ทั้งส่วนที่สูงและต่ำของที่อยู่จะถูกพิมพ์เหนือผลลัพธ์ ส่วนที่สูงจะเป็นตัวพิมพ์หนา ปุ่มกดสองปุ่มช่วยให้นำทางไปมาระหว่างที่อยู่ โดยแสดงที่อยู่ได้ครั้งละ 16 รายการ ในกรณีที่ตรวจพบอุปกรณ์ W จะถูกพิมพ์เพื่อแสดงเป็นที่อยู่สำหรับเขียนและ R จะแสดงในกรณีที่เป็นที่อยู่สำหรับอ่าน ในกรณีที่ไม่พบสิ่งใดที่ที่อยู่นั้น เครื่องหมายยัติภังค์ (-) จะแสดงบนหน้าจอ
ขั้นตอนที่ 1: วัสดุ


ตัวเลือกที่ 1
1 x Arduino UNO
หน้าจอ LCD ขนาด 1 x 16x02
1x 10K โพเทนชิออมิเตอร์
ตัวต้านทาน 1x330 โอห์ม
3x ปุ่มกด
สายจัมเปอร์
1x I2C ระดับ shifter (ไม่ใช่บนภาพวัสดุ)
ตัวเลือก 2
1 x Arduino UNO
LCD Keypad Shield (ปุ่มบนโล่จะไม่ถูกใช้งาน)
3x ปุ่มกด
สายจัมเปอร์
1x I2C ระดับ shifter (ไม่ใช่บนภาพวัสดุ)
ตัวเลือกที่ 2 คือสิ่งที่จะถูกสร้างขึ้นเพราะนั่นคือสิ่งที่ฉันมีอยู่ในตอนนี้ ตัวเลื่อนระดับเป็นส่วนสำคัญของวงจรเนื่องจากปัจจุบันอุปกรณ์ส่วนใหญ่ใช้ลอจิก 3.3V และ 5V จาก Arduino สร้างความเสียหาย
(ในภาพ ไม่จำเป็นต้องขีดฆ่า)
ขั้นตอนที่ 2: วงจร



วงจรค่อนข้างตรงไปตรงมา โดยใช้พินมาตรฐานสำหรับตัวอย่าง Arduino สำหรับ LCD, พินเริ่มต้นสำหรับ I2C และพินสำรอง 3 พินสำหรับปุ่มกด
ในกรณีที่คุณใช้ LCD Keypad Shield หมุดสำหรับ LCD จะเปลี่ยนไป แต่ถือว่าอยู่ในโค้ดแล้ว ไม่ใช้ปุ่ม LCD Keypad Shield เนื่องจากต้องใช้วิธีการโพลแบบแอนะล็อกที่ทำลายความเข้ากันได้ระหว่างวงจรการใช้งานที่เป็นไปได้สองวงจร (Shield และ LCD แบบสแตนด์อโลน)
ขั้นตอนที่ 3: รหัส

ในกรณีที่ใช้ LCD Keypad Shield #define LCD_SHIELD จะต้องไม่ใส่เครื่องหมายกำกับไว้ที่จุดเริ่มต้นของร่าง มิฉะนั้น แสดงความคิดเห็นเพื่อใช้ไดอะแกรมแรก
ขั้นตอนที่ 4: บทสรุป



สำหรับการทดสอบรหัสและวงจร ใช้ชิป BQ32000 RTC และมาตรความเร่ง MMA8452Q ดังที่เห็นในภาพ อุปกรณ์กำลังตรวจจับที่อยู่ 4 แห่ง: 0x3A และ 0xD0 เป็นที่อยู่สำหรับเขียน และ 0x3B และ 0xD1 เป็นที่อยู่สำหรับอ่าน ที่อยู่นี้สอดคล้องกับอุปกรณ์ทดสอบเพื่อให้โค้ดใช้งานได้
ฉันขอขอบคุณผู้หญิงใจดีที่ Beijing Makerspace, Fu Yao และ Liu Xin ที่ช่วยฉันได้วัสดุที่จำเป็นสำหรับการทดสอบโครงการนี้ในช่วงเวลาสั้นๆ
แนะนำ:
Arduino UNO Logic Sniffer: 8 ขั้นตอน (พร้อมรูปภาพ)

Arduino UNO Logic Sniffer: โครงการนี้เริ่มต้นจากการทดลองง่ายๆ ระหว่างการวิจัยเอกสารข้อมูลของ ATMEGA328P สำหรับโครงการอื่น ฉันพบสิ่งที่น่าสนใจมากกว่า หน่วยจับสัญญาณเข้า Timer1 ช่วยให้ไมโครคอนโทรลเลอร์ของ Arduino UNO ตรวจจับสัญญาณ
Particle Sniffer: 6 ขั้นตอน (พร้อมรูปภาพ)

Particle Sniffer: ในขณะที่ทำงานกับโครงการก่อนหน้าในการประเมิน PM2.5 ฉันสังเกตเห็นข้อเสียของการไม่สามารถระบุแหล่งที่มาของอนุภาคขนาดเล็กที่ก่อให้เกิดมลพิษ การสุ่มตัวอย่างส่วนใหญ่ทำโดยเทศบาลและภาพถ่ายดาวเทียมรวบรวมแหล่งที่มากว้างๆ ที่ไม่
จอ 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 สายเท่านั้น
จอ LCD I2C / IIC - แปลง SPI LCD เป็นจอแสดงผล LCD I2C: 5 ขั้นตอน

จอ LCD I2C / IIC | แปลง SPI LCD เป็น I2C LCD Display: การใช้จอแสดงผล spi lcd จำเป็นต้องมีการเชื่อมต่อมากเกินไป ซึ่งทำได้ยากมาก ดังนั้นฉันจึงพบโมดูลที่สามารถแปลง i2c lcd เป็น spi lcd ได้ ดังนั้นมาเริ่มกันเลย
Snorkel Sniffer: 4 ขั้นตอน

Snorkel Sniffer: ประตูถูกปิดในเที่ยวบิน และเช่นเดียวกับเที่ยวบินอื่นๆ ที่คล้ายกัน อาการง่วงนอนอย่างท่วมท้นครอบงำคุณ ขณะที่เรากำลังเดินทางโดยรถแท็กซี่ ฉันก็ตื่นขึ้นโดยผู้หญิงที่อยู่ข้างหน้าเรากรีดร้องว่า "ช่วยเขาด้วย!" "ช่วยเขาด้วย!!!!" "