Вопросы эксплуатации > Допы
Индикация круиз контроля CEED FL
drPopov:
Привет всем.
Появилось время на разбирательство с CAN шиной автомобиля, в частности с индикацией на приборной панели круиз контроля.
Было предложение по реализации от украинских друзей - Tema_TT, но проект коммерческий и автор не дал никакой информации.
Мой проект основан на микроконтроллере Atmega (код помещается даже в Atmega8) и драйвере CAN шины mcp2515 и транссивере mcp2551.
Схем в инете полно, но я свою тоже нарисовал.
и печатную плату тоже. может кто лучше разведет, у меня получилось 3 перемычки.
Конечный размер устройства 3,5см на 4,5см.
Прикрепляю ссылку на архив и сам архив с прошивкой, платами для вытравливания.
В архиве есть:
1- Папка CANARDUINO_ino - это проект для Arduino
2- CAN_SPI.PDF - это мой вариант платы для ЛУТ.
3- CANARDUINO.hex - прошивка.
4- CAN_SPI.pdsprj - проект для Proteus 8
5,6... - другие схемы.
Код для компилятора Arduino:
--- Код: ---#include <mcp_can.h>
#include <SPI.h>
long unsigned int rxId;
unsigned char len = 0;
unsigned char rxBuf[8];
String stringOne;
void setup()
{
Serial.begin(115200);
CAN.begin(CAN_500KBPS); // init can bus : baudrate = 500k
pinMode(2, INPUT); // Setting pin 2 for /INT input
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
//установим маску и фильтр на сообщения Can
CAN.init_Mask(0, 0, 0x7FF);
CAN.init_Mask(1, 0, 0x7FF);
CAN.init_Filt(0, 0, 0x260);
CAN.init_Filt(1, 0, 0x260);
CAN.init_Filt(2, 0, 0x260);
CAN.init_Filt(3, 0, 0x260);
CAN.init_Filt(4, 0, 0x260);
CAN.init_Filt(5, 0, 0x260);
}
void loop()
{
if(!digitalRead(2)) // If pin 2 is low, read receive buffer
{
CAN.readMsgBuf(&len, rxBuf); // Read data: len = data length, buf = data byte(s)
rxId = CAN.getCanId(); // Get message ID
if (String(rxId, HEX) == "260") {
for(int i = 0; i<len; i++) // each byte of the data
{
if ( i==3 ){ //бит
stringOne = String(rxBuf[i], HEX);
if (stringOne=="32") { //КК включен
analogWrite(A1,0);
analogWrite(A0,255);
}
else if (stringOne=="36") { //SET включен
analogWrite(A0,255);
analogWrite(A1,255);
}
else //все выключено
{
analogWrite(A0,0);
analogWrite(A1,0);
}
}
}
}
}
}
--- End code ---
Видео как это работает на макетке
http://youtu.be/TQ6xSct9B-Q
Ну а в планах заставить дополнительный маленький диплей над магнитолой показывать текст который мне нужен.
Всем спасибо за внимание. Другие проекты в подписи.
lecs1:
Привет :)
Сам будешь собирать? ЗАКАЗАЛ БЫ. Купил rulezz
drPopov:
--- Цитата: lecs1 от Ноябрь 23, 2013, 10:19:25 am ---Сам будешь собирать? ЗАКАЗАЛ БЫ. Купил
--- End quote ---
Себе соберу, за деньги собирать никому не буду - банально нет времени.
Может сделаю 3-4 платки когда себе буду травить.
Выложу тут подробно как самому сделать и прошить контроллер.
De3mond:
Жду инфу, подписываюсь, буду благодарен за любые ништяки советы!
Андрей Александрович:
красава
Навигация
Go to full version