Я уже отчаиваться начинаю.
У меня Mazda5 2008 года выпуска.
Хочу вывести на дисплей простую текстовую строчку. Скетч взял пока вот этот.
Код
// вывод на экран " _ _ _ _ _ E U R O P A + _ _ _"
#include <mcp_can.h> //тут важно подключить правильную библиотеку
#include <spi.h>
const int SPI_CS_PIN = 10; //к какому pin-у arduino подключен вывод CS
MCP_CAN CAN(SPI_CS_PIN);
void setup()
{
Serial.begin(115200);
START_INIT:
if(CAN_OK == CAN.begin(CAN_125KBPS, MCP_8MHz)) // строка инициализации
{
Serial.println("CAN BUS Shield init ok!");
}
else
{
Serial.println("CAN BUS Shield init fail");
Serial.println("Init CAN BUS Shield again");
delay(100);
goto START_INIT;
}
}
unsigned char stmp1[8] = {0x80, 0, 0, 0, 0, 0x27, 0x10, 0};
unsigned char stmp2[8] = {0xc0, 0x20, 0x20, 0x20, 0x20, 0x45, 0x55, 0x52};
unsigned char stmp3[8] = {0x87, 0x4f, 0x50, 0x41, 0x2b, 0x20, 0x20, 0x20};
void loop()
{
CAN.sendMsgBuf(0x28F, 0, 8, stmp1);
CAN.sendMsgBuf(0x290, 0, 8, stmp2);
CAN.sendMsgBuf(0x291, 0, 8, stmp3);
delay(100);
}
Библиотеки все скачал и установил.
У меня Ардуино Уно (правда китайская с квадратным чипом как у Нано, но вроде никакой разницы нет). Can-контроллер MCP2515. Соединил их.
Дисплей вытащил из машины, положил на столе. Подал питание 12 В и подключил к CAN-контроллеру.
Заливаю скетч, запускаю, а дисплей молчит. Подсветка работает, время показывает, а центральная часть, куда должна приходить информация, молчит.
Монитор порта (в Ардуино IDE) показывает соединение с шилдом.
Провода от дисплейчика к шилду короткие (не более 10 см). Земля общая с платой, шилдом и дисплеем.
Читал, что надо подключать то ли один резистор на 120 Ом в CAN-шину, то ли на каждый конец по 120 Ом вешать. В общем по разному пробовал, дисплей молчит. Как будто нет соединения с шилдом. Но я уже 10 раз проверял правильность подключения.