а кто не в питере.......но не со всем кривыми руками...как быть??????
Привет всем.Появилось время на разбирательство с CAN шиной автомобиля, в частности с индикацией на приборной панели круиз контроля.Было предложение по реализации от украинских друзей - Tema_TT, но проект коммерческий и автор не дал никакой информации.Мой проект основан на микроконтроллере Atmega (код помещается даже в Atmega8) и драйвере CAN шины mcp2515 и транссивере mcp2551.Схем в инете полно, но я свою тоже нарисовал.и печатную плату тоже. может кто лучше разведет, у меня получилось 3 перемычки.Конечный размер устройства 3,5см на 4,5см.Прикрепляю ссылку на архив и сам архив с прошивкой, платами для вытравливания.В архиве есть:1- Папка CANARDUINO_ino - это проект для Arduino2- CAN_SPI.PDF - это мой вариант платы для ЛУТ.3- CANARDUINO.hex - прошивка.4- CAN_SPI.pdsprj - проект для Proteus 85,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); } } } } }}Видео как это работает на макеткеhttp://youtu.be/TQ6xSct9B-QНу а в планах заставить дополнительный маленький диплей над магнитолой показывать текст который мне нужен.Всем спасибо за внимание. Другие проекты в подписи.
#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); } } } } }}
По поводу преобразователя 12В в 5В, возможно лучше использовать импульсный преобразователь, у него КПД выше, и нагрузочная способность лучше. 78L05 максимальный ток 100мА, дальше маленький пых + разница между входным и выходным напряжением составляет более 100%, от этого 78L05 может греться, что может привести к сгоранию. как вариант лучше использовать mc34063. Стоимость примерно 20р, обвязка минимальна, ток 0,5А. Кстати, можно ещё для безопасности поставить полисвитч на 0.25А.
Та-дам! Стала доступна возможность активации индикации круиз-контроля в панели приборов через диагностический разъем без съема панели с автомобиля! Налетай! ))
Та-дам! Стала доступна возможность активации индикации круиз-контроля в панели приборов через диагностический разъем без съема панели с автомобиля! Налетай!