Вопросы эксплуатации > Допы
Индикация круиз контроля CEED FL
drPopov:
--- Цитата: Remu от Сентябрь 15, 2014, 14:13:29 pm ---а кто не в питере.......но не со всем кривыми руками...как быть??????
--- End quote ---
Если есть программатор, то присылаешь дамп своей приборки, его правим и отправляем обратно для заливки. по финансам в ЛС
Plemival:
Теперь и у моего железного коня появилась индикация КК. Спасибо Степану!
iWh1te:
--- Цитата: drPopov от Ноябрь 23, 2013, 00:31:48 am ---Привет всем.
Появилось время на разбирательство с 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
Ну а в планах заставить дополнительный маленький диплей над магнитолой показывать текст который мне нужен.
Всем спасибо за внимание. Другие проекты в подписи.
--- End quote ---
По поводу преобразователя 12В в 5В, возможно лучше использовать импульсный преобразователь, у него КПД выше, и нагрузочная способность лучше. 78L05 максимальный ток 100мА, дальше маленький пых + разница между входным и выходным напряжением составляет более 100%, от этого 78L05 может греться, что может привести к сгоранию. как вариант лучше использовать mc34063. Стоимость примерно 20р, обвязка минимальна, ток 0,5А. Кстати, можно ещё для безопасности поставить полисвитч на 0.25А.
AlexRT:
--- Цитата: iWh1te от Декабрь 15, 2014, 00:39:27 am ---По поводу преобразователя 12В в 5В, возможно лучше использовать импульсный преобразователь, у него КПД выше, и нагрузочная способность лучше. 78L05 максимальный ток 100мА, дальше маленький пых + разница между входным и выходным напряжением составляет более 100%, от этого 78L05 может греться, что может привести к сгоранию. как вариант лучше использовать mc34063. Стоимость примерно 20р, обвязка минимальна, ток 0,5А. Кстати, можно ещё для безопасности поставить полисвитч на 0.25А.
--- End quote ---
это уже не актуально..
_slavka:
+1 к сидоводам с индикацией круиз-контроля ;)
Навигация
Go to full version