وحدة تحكم ناقل CAN ‏MCP2515 مع TJA1050 عبر SPI

60,00 DH 65,00 DH

التوفر:

9 متوفر في المخزون

رمز المنتج: 0216 التصنيفات: ,

الوصف

وحدة تحكم ناقل CAN ‏MCP2515 مع TJA1050 عبر SPI

تجمع هذه الوحدة متحكم CAN 2.0B ‏MCP2515 مع مرسل/مستقبل الطبقة الفيزيائية TJA1050. وتتيح إضافة اتصال CAN بسهولة إلى مشاريع Arduino وESP32 وRaspberry Pi وغيرها.

🔧 المواصفات التقنية

  • بروتوكول CAN: الإصدار 2.0B، حتى 1 Mb/s (وفق المواصفة المدرجة)
  • المتحكم: MCP2515 عبر SPI ‏(CS وSCLK وSI وSO)، مع مقاطعة INT
  • مرسل/مستقبل الإشارة: TJA1050 ‏(مستويات CANH / CANL)
  • التغذية: 5 V DC ‏(نحو 5 mA أثناء التشغيل و1 µA في وضع الاستعداد)
  • الإنهاء: مقاومة 120 Ω تُفعّل بواسطة جسر لحام
  • مؤشرات LED: ‏TX للإرسال وRX للاستقبال
  • درجة حرارة التشغيل: من −40 °C إلى +85 °C
  • الأبعاد: 44 × 28 mm؛ تباعد فتحات التثبيت: 23 × 38 mm

💡 الاستخدامات الشائعة

  • شبكات CAN للسيارات والتطبيقات الصناعية
  • أنظمة القياس عن بُعد والحساسات الموزعة
  • التحكم بالمحركات والمشغلات والأتمتة
  • مشاريع إنترنت الأشياء المدمجة التي تتطلب ناقلًا موثوقًا
  • جسور البيانات بين المتحكمات الدقيقة وأجهزة CAN

مثال Arduino باستخدام مكتبة mcp_can

#include <SPI.h>
#include <mcp_can.h>

const int SPI_CS_PIN = 10;
MCP_CAN CAN(SPI_CS_PIN);

void setup() {
Serial.begin(115200);
while (CAN_OK != CAN.begin(CAN_500KBPS)) {
Serial.println("Initialisation CAN échouée");
delay(100);
}
Serial.println("CAN initialisé à 500 kbps");
}

void loop() {
// Envoi d'un message CAN 11-bit ID 0x100, 8 octets
byte data[8] = {0xDE,0xAD,0xBE,0xEF,0x00,0x11,0x22,0x33};
CAN.sendMsgBuf(0x100, 0, 8, data);
delay(1000);

// Lecture
if (CAN_MSGAVAIL == CAN.checkReceive()) {
unsigned long id;
byte len;
byte buf[8];
CAN.readMsgBuf(&len, buf);
id = CAN.getCanId();
Serial.print("Reçu ID 0x"); Serial.print(id, HEX);
for (byte i = 0; i < len; i++) {
Serial.print(" "); Serial.print(buf[i], HEX);
}
Serial.println();
}
}

شرح الكود

  • تهيئة SPI والوحدة MCP2515 بسرعة 500 kbps باستخدام CAN.begin(...).
  • داخل loop()، إرسال إطار CAN من 8 بايت بالمعرّف 0x100 باستخدام sendMsgBuf().
  • بعد ذلك، التحقق من وجود رسالة عبر checkReceive()، وقراءة المعرّف والبيانات باستخدام readMsgBuf() وgetCanId()، ثم عرضها في الشاشة التسلسلية.

🛠️ ترتيب الأطراف والتوصيل

طرف الوحدة الوظيفة Arduino UNO
VCC تغذية +5 V DC 5 V
GND أرضي مشترك GND
CS اختيار شريحة SPI (فعّال بالمستوى المنخفض) D10
SO (MISO) دخل المتحكم الرئيسي، خرج الطرف التابع D12
SCLK ساعة SPI D13
SI (MOSI) خرج المتحكم الرئيسي، دخل الطرف التابع D11
INT مقاطعة (استلام رسالة CAN) D2
CANH / CANL أطراف ناقل CAN اللولبية توصيل بالناقل

ملاحظة: فعّل مقاومة الإنهاء 120 Ω بلحام الجسر المخصص إذا كانت الوحدة عند أحد طرفي الناقل.

شكرًا لولائك!

AR