şemam bu şekilde sck pinlerini çıkardığımda master dan slaveye veri gönderemiyorum
C++:
#include <SPI.h>
#include <mcp_can.h>
const int SPI_CS_PIN = 15; // ESP8266 için CS pini (D8)
MCP_CAN CAN(SPI_CS_PIN);
void setup() {
Serial.begin(115200);
while (!Serial);
SPI.begin();
if (CAN.begin(MCP_ANY, CAN_250KBPS, MCP_8MHZ) == CAN_OK) {
Serial.println("CAN bus başlatıldı (250 kbps)");
CAN.setMode(MCP_NORMAL);
} else {
Serial.println("Başlatılamadı, program durdu");
while (1);
}
}
void loop() {
byte data[8] = {10, 20, 30, 40, 50, 60, 70, 80};
if (CAN.sendMsgBuf(0x100, 0, 8, data) == CAN_OK) {
Serial.println("Mesaj gönderildi");
} else {
Serial.println("Gönderme başarısız");
}
delay(1000);
}
C++:
#include <SPI.h>
#include <mcp_can.h>
const int SPI_CS_PIN = 10; // Arduino Nano için CS pini
MCP_CAN CAN(SPI_CS_PIN);
void setup() {
Serial.begin(115200);
while (!Serial);
SPI.begin();
if (CAN.begin(MCP_ANY, CAN_250KBPS, MCP_8MHZ) == CAN_OK) {
Serial.println("CAN bus başlatıldı (250 kbps)");
CAN.setMode(MCP_NORMAL);
} else {
Serial.println("Başlatılamadı, program durdu");
while (1);
}
}
void loop() {
unsigned long id;
byte len = 0;
byte buf[8];
if (CAN.checkReceive() == CAN_MSGAVAIL) {
CAN.readMsgBuf(&id, &len, buf);
Serial.print("Mesaj alındı. ID: 0x");
Serial.print(id, HEX);
Serial.print(" Uzunluk: ");
Serial.print(len);
Serial.print(" Veri: ");
for (byte i = 0; i < len; i++) {
Serial.print(buf[i], DEC);
Serial.print(" ");
}
Serial.println();
}
}
SADECE ESP32 yerine ESP8266 ile deniyorum şu anda esp32 kargoda
Ekler
Son düzenleme: