สารบัญ:
วีดีโอ: Arduino I²C™ EEPROM BYTEBANGER: 5 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เมื่อเร็วๆ นี้ ฉันรู้สึกทึ่งกับ I²C EEProms หลังจากเก็บกู้บางส่วนจากทีวีฉายภาพด้านหลังเครื่องเก่าที่ฉันเลิกใช้
ฉันค้นหาอินเทอร์เน็ตเพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ เช่น เอกสารข้อมูล และบทช่วยสอนเกี่ยวกับวิธีการทำงานของสิ่งเหล่านี้และนำไปใช้ได้ น่าแปลกที่ข้อมูลกระจัดกระจายและค่อนข้างหายาก… แผ่นข้อมูลหาค่อนข้างง่าย และมีบทช่วยสอนสองสามข้อ (รวมถึงวิดีโอ) ที่แสดงวิธีพื้นฐานในการเข้าถึงฟังก์ชันการทำงานของ eeproms ฉันยังไม่พอใจกับสิ่งที่ต้องการทำ ฉันจึงตัดสินใจติดตั้งเขียงหั่นขนมและเขียนโค้ดของตัวเอง พร้อมด้วยไลบรารี Arduino สองสามตัว… และ I²C™ EEPROM BYTEBANGER ก็ถือกำเนิดขึ้น!
บทช่วยสอนที่ฉันพบว่าไม่มีสิ่งที่ฉันอยากทำ เช่น การอ่านและเขียนข้อมูลจากและไปยัง eeprom มากกว่าหนึ่งไบต์ในแต่ละครั้ง ฉันยังต้องการมีตัวเลือกในการดัมพ์ข้อมูล eeprom ไปยังการ์ด SD รวมทั้งโหลดไฟล์ CSV จากการ์ด SD และตั้งโปรแกรม eeprom ใหม่อีกครั้ง
การเพิ่มฟังก์ชันการจัดการข้อมูลและการตั้งค่าการควบคุมให้กับโค้ดช่วยทำให้สิ่งที่ฉันเชื่อว่าเป็นแอปพลิเคชัน Arduino ที่ดีมากที่คุณจะเพลิดเพลินได้! น่าแปลกที่อุปกรณ์ที่คุณต้องการมีน้อย… การเขียนโค้ดเป็นส่วนที่ยาก… ซึ่งเป็นข่าวดีสำหรับคุณ เนื่องจากที่นี่มีให้คุณดาวน์โหลด
ฉันต้องการให้แน่ใจว่าฉันสามารถทำสิ่งนี้ทั้งหมดโดยใช้ Arduino UNO ได้ เนื่องจากสิ่งนั้นยังคงเป็นไมโครคอนโทรลเลอร์ที่ได้รับความนิยมอย่างมาก และความคิดของฉันก็คือ "ถ้ามันทำงานบน UNO ได้ มันก็ควรจะใช้ได้กับทุกอย่าง" ซึ่งน่าจะเป็น true โดยเปลี่ยนรหัสเล็กน้อยสำหรับไมโครคอนโทรลเลอร์เฉพาะของคุณ
เสบียง
คุณจะต้องการ:
Arduino UNO R3 พร้อมสาย USB อย่างน้อย 1 (และมากถึง 8) โมดูล I²C EEPromsan SD Card ลำโพงหรือ Piezo Buzzer (อุปกรณ์เสริม) สายเชื่อมต่อที่ยุ่งยาก
ขั้นตอนที่ 1: แผนผัง
ใช้แผนผังและรูปภาพของ Fritzing ด้านบนเพื่อเป็นแนวทางในการเชื่อมต่อ eeprom, โมดูล SD และลำโพงเสริม
ฉันพบว่าเป็นการดีที่สุดที่จะเริ่มต้นด้วย eeproms
วางไว้บนเขียงหั่นขนมตามที่แสดง โดยให้ความสนใจกับระยะห่างระหว่าง eeproms ตรวจสอบแผ่นข้อมูลสำหรับ eeprom เฉพาะของคุณ แต่ฉันพบว่า eeprom I²C PDIP8 ส่วนใหญ่มีพินเอาต์เหมือนกัน:
พิน 1-3 คือการตั้งค่าที่อยู่สำหรับ eeprom ขา 4 เชื่อมต่อกับกราวด์ ขา 5 คือ SDA (ข้อมูล) ซึ่งเชื่อมต่อกับ UNO SDA pinPin 6 คือ SCL (นาฬิกา) ซึ่งเชื่อมต่อกับ UNO SCL pinPin 7 คือ WP (Write Protect) ซึ่งเชื่อมต่อกับ groundPin 8 คือ VCC เชื่อมต่อกับ +5v
ฉันพบว่ามันง่ายที่สุดในการเริ่มต้นโดยการเพิ่ม VCC และสายกราวด์ให้กับ eeprom แต่ละตัวก่อน (หากคุณใช้ eeprom เพียงตัวเดียว วิธีนี้ง่ายมาก!)
ถัดไป ต่อสาย SDA และสาย SCL เข้ากับบัสI²C
เนื่องจากเราสามารถระบุได้ถึง 8 eeproms บนบัส I²C เราจะผูกสาย SDA ทั้งหมดเข้าด้วยกัน และในทำนองเดียวกันกับสาย SCL หากคุณสังเกตเห็นในภาพ ฉันใช้รางไฟฟ้าเพิ่มเติมเป็นรถบัส I²C หากคุณไม่มีรางเพิ่มเติม คุณสามารถทำตามแผนผัง Fritzing ได้
ตอนนี้ผูก WP (pin7) ทั้งหมดเข้ากับพื้น เราต้องการที่จะสามารถเขียนไปยัง eeprom ได้… และไม่ต้องกังวล มีฟังก์ชัน SAFEMODE ในโค้ดที่เราสามารถใช้จำลองฟังก์ชัน Write Protect ได้
ตอนนี้เราจะเชื่อมต่อโมดูล SD …
ขั้นตอนที่ 2: โมดูล SD
โมดูล SD ของคุณอาจแตกต่างจากที่ฉันใช้เล็กน้อย แต่โดยพื้นฐานแล้วทั้งหมดเหมือนกัน (คุณสามารถใช้อะแดปเตอร์การ์ด micro SD ได้ด้วยตัวเอง… แต่นั่นเป็นโครงการในอนาคต)
ดูที่หมุดบนโมดูล SD จากซ้ายไปขวาคือ:
CS- Chip SelectSCK- Serial ClockMOSI- Master Out/Slave InMISO- Master In/ Slave OutVCC- +5vGROUND3.3 (ไม่ได้ใช้)
เชื่อมต่อ CS กับ UNO pin 8 เชื่อมต่อ SCK กับ UNO pin 13 เชื่อมต่อ MOSI กับ UNO pin 11 เชื่อมต่อ MISO กับ UNO pin 12
ขั้นตอนที่ 3: เชื่อมต่อลำโพง
ลำโพงหรือออด Piezo เป็นตัวเลือกที่สมบูรณ์
เชื่อมต่อลำโพงกับกราวด์และ UNO pin 7
รหัสใช้ฟังก์ชันเสียงบางอย่าง แต่ไม่จำเป็นสำหรับการทำงาน (อันที่จริงบางครั้งฉันถอดปลั๊กลำโพงเมื่อฉันไม่ต้องการได้ยินเสียง คุณสามารถตั้งค่าสวิตช์ได้เช่นกัน)
ขั้นตอนที่ 4: เชื่อมต่อ UNO Power และอัปโหลดรหัส
เชื่อมต่อกราวด์และ +5v จาก UNO เข้ากับรางไฟแบบเขียงหั่นขนมของคุณ
อย่าลืมผูกพลังด้านบนและด้านล่างและพื้นดินเข้าด้วยกัน!
ตอนนี้เพียงเสียบ UNO ของคุณเข้ากับคอมพิวเตอร์แล้วอัปโหลดรหัส!
รหัส I²C EEPROM BYTEBANGER ค่อนข้างกว้างขวาง และฉันจะทำวิดีโอแนะนำเกี่ยวกับคุณสมบัติทั้งหมด แต่ก็มีคำอธิบายประกอบค่อนข้างดีพร้อมความคิดเห็น
ฉันยินดีต้อนรับคุณให้สมัครรับข้อมูลจากช่อง YouTube ของฉัน ซึ่งคุณจะพบวิดีโอบทช่วยสอนในเร็วๆ นี้ รวมถึงโครงการอื่นๆ ที่จะตามมา
จับยาทีหลัง!
~MITZ