20.06.2015, 22:36 | #1 | |
Пользователь
Регистрация: 17.02.2015
Возраст: 37
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
|
Arduino+CANBUS Shield
Помогите разобраться.
Имеется автомобиль семейства Mazda. Имеется Ардуино Про Микро и CAN-BUS Shield. Между собой соединял согласно даташита про микры и MCP2515 (прозванивал ноги). Цитата:
Согласно найденной информации шина в мазде работает на скорости 500 kbps. Пробовал залить example receive скетч идущий с CANBUS либой. Эффект нулевой - в мониторе порта вообще ничего. Судя по внешнему виду шилда - терминирующего резистора на нём нет, но для эксперимента выпаял резистор R2 - не помогло. Что я делаю не так, и что мне надо сделать, чтобы стало как надо. Вопрос стоит не в расшифровке сообщений идущих по can, а в их простом получении, для начала. PS диагностические приблуды мне не нужны. Использую ардуину с шилдом, потому как в итоге хочу получить самостоятельное устройство непрерывно передающее по шине определенную информацию. Если есть альтернативные ардуине варианты (стоящие копейки) то предлагайте. Последний раз редактировалось admin; 17.03.2017 в 02:23. |
|
21.06.2015, 19:57 | #2 |
Пользователь
Регистрация: 16.03.2009
Возраст: 40
Город: Baku
Регион: другой - для добавления сообщить ab
Машина: 2011\Opel Insignia
Сообщений: 45
|
GND c массой на машине подключаете?
|
22.06.2015, 11:09 | #3 |
Пользователь
Регистрация: 17.02.2015
Возраст: 37
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
|
Нет, а надо? Если да, то мне непонятен принцип подключения - в авто сеть 12V, а ардуина с шилдом питаются от 5V с усб. Да и куда подключать - на ардуине только CAN_H и CAN_L.
В соседней теме у людей не работают параллельно подключенные к колодке OBD устройства - может причина в этом? Хотя у меня подключение скорее последовательное. |
22.06.2015, 11:45 | #4 | |
Пользователь
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 72
|
Цитата:
В can шине не бывает последовательного подключения. |
|
23.06.2015, 13:20 | #5 | |
Пользователь
Регистрация: 17.02.2015
Возраст: 37
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
|
Цитата:
у шилда своя земля, у авто своя. проблема не в этом. может быть всё таки в параллельном соединении? хотя если все системы в авто итак параллельно висят, то добавление шилда ничего не должно менять. |
|
23.06.2015, 14:34 | #6 |
Пользователь
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 72
|
а масса шилда, ардуины и компа как нибудь с массой машиной соединены? шилд начинает принимать данные если подключена масса и can_h, на шилде начинает мигать светодиод.
|
23.06.2015, 16:33 | #7 |
Старший Пользователь
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
|
Масса не обязательна. У меня на Octavia Tour и на FF3 без массы всё отлично принимает и отправляет.
|
23.06.2015, 16:51 | #8 |
Пользователь
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 72
|
|
23.06.2015, 17:08 | #9 | |
Пользователь
Регистрация: 17.02.2015
Возраст: 37
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
|
Цитата:
На шилде очень быстро моргает светодиод RX, почти непрерывно, и немного реже моргает светодиод TX - значит шилда чтото принимает. И либо не передаёт на ардуину, либо делает это неправильно. Или ошибка в соединении ардуино-шилд или загвоздка в скетче. Попробовал ради эксперимента в скетче разные скорости шины указывать - результата нет. В мониторе порта вообще ничего не отображается. Если скорость неправильная так и должно быть? Или должен быть поток ничего не значащих цифр? |
|
24.06.2015, 14:12 | #10 | |
Пользователь
Регистрация: 17.02.2015
Возраст: 37
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
|
Итак, шина работает на скорости 500kbps - это 100%.
Прозвонил все контакты на моём безымянном шилде и на ардуине - подключены они между собой верно - 99% Залил скетч с вот таким содержанием: Код:
if(CAN_OK == CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k { Serial.println("CAN BUS Shield init ok!"); } else { Serial.println("CAN BUS Shield init fail"); Serial.println("Init CAN BUS Shield again"); delay(1000); } Значит дело в скетче для приёма сообщений с can шины. Нашел вот такую информацию: Цитата:
|
|
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|