สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
รับและส่งข้อความโดยใช้ Sparkfun CAN Bus Shield
CAN คืออะไร?
บัส CAN ได้รับการพัฒนาโดย BOSCH ให้เป็นระบบกระจายข้อความแบบหลายมาสเตอร์ ซึ่งระบุอัตราการส่งสัญญาณสูงสุดที่ 1 เมกะบิตต่อวินาที (bps) ไม่เหมือนกับเครือข่ายแบบเดิม เช่น USB หรืออีเทอร์เน็ต CAN จะไม่ส่งข้อมูลขนาดใหญ่แบบจุดต่อจุดจากโหนด A ไปยังโหนด B ภายใต้การดูแลของมาสเตอร์บัสหลัก ในเครือข่าย CAN ข้อความสั้นๆ จำนวนมาก เช่น อุณหภูมิหรือ RPM จะถูกถ่ายทอดไปยังเครือข่ายทั้งหมด ซึ่งให้ความสอดคล้องของข้อมูลในทุกโหนดของระบบ
ขั้นตอนที่ 1: วัสดุที่จำเป็น
2 - Sparkfun CAN บัสชิลด์
2 - Arduino UNO
ตัวต้านทาน 2 - 120 โอห์ม
1 - เขียงหั่นขนม
สายจัมเปอร์
ดาวน์โหลดไลบรารี CAN Bus Shield:
drive.google.com/open?id=1Mnf2PN_fAQFpo1ID…
ขั้นสูง (CAN บัส):
DB9 (หญิง)
RJ45
สาย UTP
ตัวแยกสัญญาณ 2 ทาง RJ45
ขั้วต่อตรง RJ45
เครื่องมือ:
ไขควง
RJ45 Crimper
หัวแร้ง
ขั้นตอนที่ 2: สร้าง CAN Bus บน Breadboard
1. ติดตั้ง CAN Bus Shield กับ Arduino แต่ละตัว
2. ต่อหมุด CAN_H และ CAN_L ของชิลด์เข้ากับเขียงหั่นขนม
3. เชื่อมต่อตัวต้านทานปลายสาย 120 โอห์มที่ปลายแต่ละด้านของเส้น CAN_H และ CAN_L
ขั้นตอนที่ 3: การเขียนโปรแกรม Arduino
1. ดาวน์โหลดและติดตั้ง CAN Bus Shield Library จากลิงค์ที่ให้ไว้ด้านบน
กำหนดค่า Arduino ตัวแรกให้อ่านข้อความ CAN
2. เปิด Arduino IDE
3. ไปที่ไฟล์ตัวอย่าง SparkFun CAN-Bus CAN_Read_Demo
4. เลือกพอร์ตที่เหมาะสมของ Arduino ตัวแรกและอัปโหลด
กำหนดค่า Arduino ตัวที่ 2 เพื่อส่งข้อความ CAN
5. เปิด Arduino IDE. ใหม่
6. ไปที่ไฟล์ตัวอย่าง SparkFun CAN-Bus CAN_Write_Demo
7. เลือกพอร์ตที่เหมาะสมของ Arduino ตัวที่สองและอัปโหลด
ขั้นตอนที่ 4: การทดสอบ
/*เพิ่มรูปภาพตัวอย่างการทำงาน*/
หลังจากอัปโหลดโปรแกรมไปยัง Arduinos ทั้งสอง…
1. เปิด Serial Monitors ของ Arduino. ตัวแรกและตัวที่สอง
2. ตั้งค่าอัตราบอดเป็น 9600
3. ตรวจสอบว่า Arduino ตัวแรกได้รับข้อมูลหรือไม่
หากไม่ได้รับข้อมูล:
1. ตรวจสอบว่าเลือกพอร์ตและอัตรารับส่งข้อมูลที่เหมาะสมสำหรับ Arduino. แต่ละตัวหรือไม่
2. ตรวจสอบการเชื่อมต่อของเส้น CAN_H และ CAN_L
3. ตรวจสอบการเชื่อมต่อของตัวต้านทานปลายสาย
ขั้นตอนที่ 5: สำรวจ
สร้างข้อความ CAN ที่กำหนดเอง
แก้ไขโปรแกรม CAN_Write_Demo เป็น…
- เปลี่ยนรหัสข้อความ (message.id)
- เปลี่ยนบิต RTR (message.header.rtr)
- กำหนดความยาวของข้อมูล (message.header.length)
- ป้อนข้อมูลของคุณเอง (message.data[x])
แก้ไข CAN_Read_Demo เพื่อปรับแต่งวิธีการพิมพ์ข้อมูลของคุณ
- พิมพ์ ID ข้อความ (message.id)
- พิมพ์ความยาวของข้อความ (message.header.length)
- พิมพ์ข้อความ ข้อมูล (message.data[x])
ขั้นตอนที่ 6: (เพิ่มเติม) สร้าง CAN Bus โดยใช้ UTP
CAN Bus ที่ใช้ในแผนภาพนี้เป็นสาย UTP 8 ขา
มีตัวเชื่อมต่อสองประเภทในไดอะแกรมนี้ ได้แก่ (DB9 - to - RJ45) และ (RJ45 - to - RJ45)
DB9 - ถึง - RJ45
DB9 (พิน 1- 8) = wO, O, wG, Bl, wBl, G, wBr, Br
RJ45 (พิน 1-8) = wO, O, wG, Bl, wBl, G, wBr, Br
RJ45 - ถึง - RJ45 (ตรงผ่าน)
RJ45 (พิน 1-8) = wO, O, wG, Bl, wBl, G, wBr, Br
RJ45 (พิน 1-8) = wO, O, wG, Bl, wBl, G, wBr, Br
RJ45 - ถึง - Terminator
RJ45 (พิน 1-8) = wO, O, wG, Bl, wBl, G, wBr, Br
ตัวต้านทานเทอร์มิเนเตอร์ (wG, wBl)
โหนดสามารถเชื่อมต่อกับ CAN Bus ได้ตามความต้องการและจำนวนโหนดที่ใช้
สำหรับการเชื่อมต่อแบบสองโหนด ขั้วต่อ RJ45 Straight จะใช้ระหว่างสายเคเบิล (DB9 - to - RJ45)
สำหรับการเชื่อมต่อแบบ 3 โหนด ตัวแยกสัญญาณแบบ 2 ทางจะเชื่อมต่อกับขั้วต่อแบบตรงเพื่อสร้างการเชื่อมต่อแบบ "T" ระหว่างสายเคเบิลทั้งหมด (DB9 - to - RJ45)
สำหรับการเชื่อมต่อโหนด 2+ (2 โหนดขึ้นไป) ตัวแยกสัญญาณแบบ 2 ทางจะเชื่อมต่อกับขั้วต่อแบบตรงเพื่อสร้างการเชื่อมต่อแบบ "T" สายเคเบิล (RJ45 - to - RJ45) ใช้สำหรับเชื่อมต่อโหนด "T" สองโหนด และสายเคเบิล (DB9 - ถึง - RJ45) ใช้สำหรับเชื่อมต่อโหนด "T" กับ CAN Bus Shield มีการใช้เทอร์มิเนเตอร์ RJ45 ที่ปลายแต่ละด้านของ "T" ของ CAN Bus
แนะนำ:
มาตรวัดรอบ/สแกนด้วย Arduino, OBD2 และ CAN Bus: 8 ขั้นตอน
มาตรวัดรอบ/การสแกนโดยใช้ Arduino, OBD2 และ CAN Bus: เจ้าของ Toyota Prius (หรือรถยนต์ไฮบริด/รุ่นพิเศษอื่นๆ) จะรู้ว่าแผงหน้าปัดของพวกเขาอาจไม่มีแป้นหมุนสองสามหน้าปัด! prius ของฉันไม่มีรอบเครื่องยนต์หรือมาตรวัดอุณหภูมิ หากคุณเป็นคนที่ชอบแสดง คุณอาจต้องการทราบสิ่งต่าง ๆ เช่น การกำหนดเวลาล่วงหน้าและ
บทช่วยสอน Arduino Cellular Shield: 9 ขั้นตอน (พร้อมรูปภาพ)
บทช่วยสอน Arduino Cellular Shield: Arduino Cellular Shield ช่วยให้คุณสามารถโทรผ่านโทรศัพท์มือถือและส่งข้อความได้ สมองของเกราะนี้คือ SM5100B ซึ่งเป็นโมดูลเซลลูลาร์ที่แข็งแกร่งซึ่งสามารถทำงานได้หลายอย่างของโทรศัพท์มือถือมาตรฐานส่วนใหญ่ ช
บทช่วยสอน Arduino L293D Motor Driver Shield: 8 ขั้นตอน
บทช่วยสอน Arduino L293D Motor Driver Shield: คุณสามารถอ่านบทช่วยสอนนี้และบทช่วยสอนที่น่าทึ่งอื่น ๆ ได้จากเว็บไซต์ทางการของ ElectroPeak ภาพรวมในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีขับเคลื่อน DC, สเต็ปเปอร์ และเซอร์โวมอเตอร์โดยใช้โล่ไดรเวอร์มอเตอร์ Arduino L293D สิ่งที่คุณจะได้เรียนรู้: ข้อมูลทั่วไป
บทช่วยสอน Arduino GPS Shield: เครื่องคำนวณระยะทาง: 5 ขั้นตอน
Arduino GPS Shield Tutorial: เครื่องคำนวณระยะทาง: GPS หรือ Global Positioning System เป็นระบบนำทางด้วยวิทยุผ่านดาวเทียม ซึ่งช่วยให้คุณได้รับตำแหน่งของคุณและแนะนำสถานที่อื่นๆ ผ่านแผนที่ที่เป็นที่รู้จักและกำหนดไว้ล่วงหน้า เช่น Google Maps และในโลกของ Arduino ที
บทช่วยสอน TFT Shield: 4 ขั้นตอน
บทช่วยสอน TFT Shield: วันนี้ คุณจะได้เรียนรู้วิธีสร้างและใช้ปุ่มในโครงการ Arduino TFT Touchscreen ของคุณ ฉันกำลังใช้ 2.8" ของ Kuman TFT Shield รวมกับ Arduino UNO ของ Kuman โบนัส: TFT Shield จาก Kuman มาพร้อมกับ Stylus ฟรี ซึ่งคุณสามารถใช้