สารบัญ:
- ขั้นตอนที่ 1: การเดินสาย
- ขั้นตอนที่ 2: ตัวอย่างโค้ดอย่างง่าย:
- ขั้นตอนที่ 3: รหัสทดสอบสี่รีเลย์
- ขั้นตอนที่ 4: โครงการของฉัน
- ขั้นตอนที่ 5: เรียกรีเลย์ด้วยคำสั่งเดียว
วีดีโอ: I2C Relay กับ Arduino IDE: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ฉันสั่งรีเลย์บอร์ดที่ดี แต่ไม่มีคำสั่ง ArduinoIDE แค่ Raspberry Pi e.o ฉันพบวิธีใช้งานกับ Arduino และต้องการแชร์เพื่อให้คุณประหยัดเวลาได้
ตัวอย่าง RaspberryPi ดั้งเดิม:
wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099
สิ่งที่ดีคือคุณสามารถวางซ้อนกันได้ถึง 4 บอร์ด คุณจึงสามารถใช้ 4 x 4 = 16 รีเลย์บนบัส I2C หนึ่งบัส
นอกจากนี้ยังมีข้อเสียบางประการ:
- ขั้วเล็กไม่พอดีกับลวดขนาด 1 mm2
- คุณไม่สามารถเปลี่ยนสายไฟของขั้วต่อด้านล่างเมื่อวางซ้อนกันได้
แต่ยังคงมีประโยชน์ของกระดาน
ขั้นตอนที่ 1: การเดินสาย
ในภาพคุณสามารถเห็นการเดินสายไฟ
52Pi ต้องการทั้ง 5V (สำหรับรีเลย์) en 3.3V (ชิป I2C)
ต้องใช้สายไฟ 5 เส้น:
- GND เป็น GND
- 5 V ถึง 5 V
- 3.3 V ถึง 3.3 V
- SLA เป็น SLA
- SCL เป็น SCL
หากคุณใช้ Arduino UNO หรือ 5 V อื่น ๆ ให้ระวังสูงสุด 3, 6 V จากคอนโทรลเลอร์ I2C! ใช้ตัวต้านทานหรืออย่างอื่นเพื่อลด 5 V จาก PIN ของ Arduino!
ขั้นตอนที่ 2: ตัวอย่างโค้ดอย่างง่าย:
/* ตัวอย่าง Arduino IDE (ESP) สำหรับรีเลส์บอร์ด I2C
* โดย Laurens Korste www.boktorrobotica.nl * ใช้งานได้ฟรี */ #include // สำหรับการตั้งค่าโมฆะการสื่อสาร I2C () { // กฎนี้ไม่ใช่สำหรับ UNO หรือบอร์ดที่มีหมุด I2C เฉพาะ Wire.begin (D1, D2); // เข้าร่วมบัส i2c ด้วย SDA=D1 และ SCL=D2 สำหรับ NodeMCU } void loop() { Wire.beginTransmission(0x10);/* เริ่มส่งไปยังที่อยู่ I2C 10 (เพื่อเปลี่ยนเป็น 11, 12 หรือ 13 ด้วย) */ Wire.write(0x01); /* ตัวเลือก 1 (จาก 4) บนบอร์ด 10 (เช่น 0x02, 0x03, 0x04) */ Wire.write(0xFF); /* ตั้งค่ารีเล 1 บนบอร์ด 10 เป็นเปิด ตัวเลขทั้งหมด > 0 จะทำเช่นนั้น */ Wire.endTransmission(); /* หยุดส่งสัญญาณ */ ล่าช้า (3000); Wire.beginการส่ง(0x10); /* */ Wire.write(0x01); Wire.write(0x00); /* ตั้งค่ารีเล 1 บนบอร์ด 10 เป็น OFF */ Wire.endTransmission(); /* หยุดส่งสัญญาณ */ ล่าช้า (3000); }
ขั้นตอนที่ 3: รหัสทดสอบสี่รีเลย์
/* ร่างโดย Laurens Korste สำหรับ Arduino (ESP / NodeMCU)
* แต่บอร์ดอื่นๆ ก็ทำเช่นกัน * www.boktorrobotica.nl * ใน skeych นี้ al รีเลย์ 4 ตัวจะถูกเปิดใช้งานเมื่อปิดใช้งาน */ #include // สำหรับการตั้งค่าการสื่อสารเป็นโมฆะ I2C () { Serial.begin (115200); // เริ่มซีเรียลสำหรับการดีบัก (9600 สำหรับ UNO) Wire.begin(D1, D2); // เข้าร่วมบัส i2c ด้วย SDA=D1 และ SCL=D2 ของ NodeMCU ไม่จำเป็นต้องมี UNO } void loop() { สำหรับ (int i=1; i<=4; i++){ Wire.beginTransmission(0x10); // เริ่มต้นด้วยที่อยู่อุปกรณ์ Wire.write(i); // เลือกรีเลส์ Wire.write(0xFF); // ส่งรหัส "เปิด" FF (ทุก ๆ การนับตั้งแต่ 01 ถึง FF จะทำ) Wire.endTransmission(); // หยุดส่ง Serial.write(i); Serial.println(" aan "); ล่าช้า (1000); Wire.beginการส่ง(0x10); // เริ่มต้นด้วยที่อยู่อุปกรณ์ Wire.write(i); Wire.write(0x00); // ส่งรหัส "ปิด" Wire.endTransmission(); // หยุดส่ง Serial.write(i); Serial.println(" uit "); ล่าช้า (1000); } }
ขั้นตอนที่ 4: โครงการของฉัน
ฉันได้เขียนโค้ดเพื่อใช้งานบานประตูหน้าต่างทั้ง 3 บานของฉัน ซึ่งสามารถทำได้ด้วยสวิตช์ แต่ด้วยแอป BLYNK ดูภาพ
- การกดสั้นๆ หนึ่งครั้งจะเริ่มขยับชัตเตอร์หนึ่งบาน (หรือหยุดเมื่อเคลื่อนที่)
- กดค้างหนึ่งครั้งและบานประตูหน้าต่างทั้งสามบานจะเปิดขึ้น (หรือปิดหรือหยุด)
- แรงดันสองเท่า: บานประตูหน้าต่างไปที่ตำแหน่ง "รู"
ดังที่เห็นในภาพ ฉันยังรวมเซ็นเซอร์อุณหภูมิและแสงไว้ด้วย
ตอนนี้ทุกอย่างบน PCB ฐานที่ดีและเรียบร้อยในกล่อง
ขั้นตอนที่ 5: เรียกรีเลย์ด้วยคำสั่งเดียว
มีประโยชน์หากคุณต้องการเพียงคำสั่งเดียวเพื่อเปิดใช้งานหรือปิดใช้งานรีเลย์ ด้านล่างนี้เป็นฟังก์ชันที่สามารถทำได้ (ด้วย lowbyte และ highbyte)
/* ร่างโดย Laurens Korste สำหรับ Arduino (ESP / NodeMCU) พร้อมรีเลย์บอร์ด I2C * แต่บอร์ดอื่นๆ ก็ทำได้เช่นกัน * href= https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099; www.boktorrobotica.nl * ในโครงร่างนี้ รีเลย์จะถูกเปิดใช้งานโดยการโทรหนึ่งครั้ง *// #include // สำหรับการสื่อสาร I2C // ประกาศรีเลย์ 4 PCB's Per PCB เป็นไปได้ 4 รีเลย์ ในภาพร่างนี้มีเพียงสอง PCB // PCB และรีเลย์ถูกรวมเข้าด้วยกันเพื่อให้สามารถเรียกได้ด้วยคำสั่งเดียว const byte PutOn=0xFF; // คำสั่งให้เปิด const byte PutOff=0x00; //comand เพื่อปิด const word Relay1bord1=0x1001; //คุณสามารถสุ่มชื่อโดยตัวอย่าง Relay1 const word Relay2bord1=0x1002; //คุณสามารถสุ่มชื่อโดยตัวอย่าง Relay2 คำ const Relay3bord1=0x1003; // คุณสามารถสุ่มชื่อโดยตัวอย่าง Relay3 คำ const Relay4bord1=0x1004; //คุณสามารถเดาชื่อได้จากตัวอย่าง Relay4 const word Relay1bord2=0x1101; //คุณสามารถสุ่มชื่อได้ด้วยตัวอย่าง Relay5 const w หรือรีเลย์2bord2=0x1102; //คุณสามารถเดาชื่อได้จากตัวอย่าง Relay6 const word Relay3bord2=0x1103; //คุณสามารถเดาชื่อได้จากตัวอย่าง Relay7 const word Relay4bord2=0x1104; // คุณสามารถมีโอกาสได้ชื่อตามตัวอย่าง Relay8 const word Relay1bord3=0x1201; // คุณสามารถมีโอกาสได้ชื่อตามตัวอย่าง Relay9 const word Relay2bord4=0x1302; // คุณสามารถเสี่ยงชื่อโดยตัวอย่าง Relay14 ตั้งค่าเป็นโมฆะ () { Serial.begin (115200); // เริ่มซีเรียลสำหรับการดีบัก (9600 สำหรับ UNO) Wire.begin(D1, D2); // เข้าร่วมบัส i2c กับ SDA=D1 และ SCL=D2 ของ NodeMCU ไม่จำเป็นต้องมี UNO } void loop () { // เพื่อสลับรีเลย์ 4 บน PCB 2 บน RelayActie (Relay4bord2, PutOn); ล่าช้า (1000); // เพื่อสลับรีเลย์ 4 บน PCB 2 ปิด RelayActie(Relay4bord2, PutOff); ล่าช้า (1000); } โมฆะ RelayActie (รีเลย์คำ ไบต์ OnOrOff) { Wire.beginTransmission (highByte (รีเลย์)); Wire.write (lowByte (รีเลย์)); Wire.write (OnOrOff); Wire.endTransmission(); }
แนะนำ:
วิธีใช้จอแสดงผล LCD อักขระ 20x4 I2C กับ Arduino: 6 ขั้นตอน
วิธีใช้จอ LCD อักขระ I2C ขนาด 20x4 กับ Arduino: ในบทช่วยสอนง่ายๆ นี้ เราจะได้เรียนรู้วิธีใช้จอ LCD อักขระ I2C ขนาด 20x4 กับ Arduino Uno เพื่อแสดงข้อความง่ายๆ "สวัสดีชาวโลก ชมวิดีโอ
วิธีใช้เซ็นเซอร์ความชื้นและอุณหภูมิ DHT12 I2C กับ Arduino: 7 ขั้นตอน
วิธีใช้เซ็นเซอร์ความชื้นและอุณหภูมิ DHT12 I2C กับ Arduino: ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้เซ็นเซอร์ความชื้นและอุณหภูมิ DHT12 I2C กับ Arduino และแสดงค่าบนจอแสดงผล OLED ดูวิดีโอ
Arduino I2C 16*2 การเชื่อมต่อจอแสดงผล LCD กับ Utsource: 10 ขั้นตอน
Arduino I2C 16*2 การเชื่อมต่อจอแสดงผล LCD กับ Utsource: I²C (Inter-Integrated Circuit) ออกเสียงว่า I-squared-C เป็นบัสคอมพิวเตอร์แบบอนุกรมแบบ multi-master, multi-slave, packet switched, single-ended ที่คิดค้นโดย Philips Semiconductor (ปัจจุบันคือ NXP Semiconductors)
การเชื่อมต่อ TMP-112 กับ Arduino Nano (I2C): 5 ขั้นตอน
การเชื่อมต่อ TMP-112 กับ Arduino Nano (I2C) : สวัสดีครับ สวัสดี..!!ผม (Somanshu Choudhary) ในนามของ Dcube tech ร่วมทุนไปวัดอุณหภูมิโดยใช้ Arduino nano เป็นหนึ่งในแอพพลิเคชั่นของโปรโตคอล I2C ในการอ่าน ข้อมูลอนาล็อกของเซ็นเซอร์อุณหภูมิ TMP-112
จอ 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 สายเท่านั้น