Ну припустимо скачали скетч з теми. Більше для завантаження вArduino — рекомендую зайти на Сайт по Arduino і встановити іпідключити як там описано Для китайської версії Arduino потрібно щезавантажити і встановити драйвера. Підключення та налаштування, атак само з посиланнями для скачування драйверів та іншого.
Тепер ми відкриваємо скетч і про диво! , він відкривається. І ось мибачимо купу незрозумілих букв. Перший шматочок скетчу У принципіможна завантажити цей скетч, і воно цілком завантажиться і будепрацювати. Однак, відповідність входів не гарантується. Відповіднопотрібні функції виконуватиме навмання, або не виконає зовсім. Томудовелося розбиратися. По-перше до шилда не додавалася схема. Придокладному вивченні я зміг розібратися і зробив малюнок шилду. Уньому розмітив розпинування та назви висновків, зіставивши їх зArduino.
Розпинування шилду. Квітами не морочився, тому потрібно трохипридивлятися. По-друге знаючи які виходи куди ведуть лезем у скетчі бачимо… Ну, загалом ми бачимо зовсім не ті входи і не тепризначення, яке потрібно. Наприклад, у скетчі використовуютьсяпереривання 0 і 1, проте на розпинанні шилда видно, що вони простоне підключені. Розладу мого не було межі. Думав потрібно будезбирати собі ще шматок із підключенням переривань. Проте зауважив, що є ще два переривання, саме підключені — 4 і 5 переривання.
Поколупавшись, я зрозумів, що не важлива відповідність виходів. Їхможна призначити самостійно. Важливо те, яке місце в пакеті данихзаймуть дані.
Пакет даних, який передається з Arduino в програму, має вигляд осьтакий:
0, 0, 0, 0, 0,
Кожен нуль — це певні дані. Звичайно, зараз це тільки нулі, але припідключенні вони змінюються в залежності від показань датчиків.Через кому нулі - це аналогові дані. Без коми - цифрові. Дані, яканалогові, і цифрові, мають тип int. Це означає, що вони можутьприймати значення від -32768 до 32767. Однак такі великі діапазонистосуються в основному аналогових даних. Цифрові обходятьсянабагато меншими значеннями. Ось по порядку до кожного нуля:
Аналогові:
2й - напруга
3й - паливо
4й - температура охолодження
5й - температура в салоні
6й - температура за бортом
7й - диферент
8й - крен
9- 17 - резервні (не знайшли що ще можна підключити)
Цифрові:
18й - запалювання
19й - нічний скін
20й - кнопка вибору і кнопка дії
21й - лівий поворот і правий поворот
22й - габарити і дальнє світло фар
23й - ПТФ передні та ПТФ задні
24й — чек
25й — рівень гальмівної рідини
26й — ручник
27й — знос колодок
28й — лампа палива
29й — рівень охолоджуючої рідини
30й — тиск олії
31й — лампа вентилятора
32й — зарядка
< 33й — ABS
34й — SRS
35й — ремінь
36й — двері
37й — p
< 38-й - r
39-й - n
40-й - d
41-й - s
42-й - порожній
< 43й - порожній
44й-46й - у мене не вистачило пінів на шилді для них, але вониє.
І того 15 аналогових і 29 цифрових. Це в сумі 44. Однак я написав46 і почав відлік з 2го. Справа в тому, що у програмуванні всепочинає відлік з нуля, і виходить, що ми бачимо перший нуль, а віннасправді нульовий. Так реальний 0й і 1й нулі є значеннямиспідометра і тахометра. І ще що:у випадку з цифровими даними, вонимають 2 значення - вкл і вимк. Але змінна закладена під них огого.І мудрі розробники вирішили, що можна повісити не одну індикацію, авідразу дві і більше. Так сталося з ПТФ, поворотами та габаритами здалеким світлом. Могли б і більше, та функціоналу у машині невистачить. Бракує навіть на те, що вже є. З таким пакетом даних хочгірлянду з індикаторів роби та входів на Arduino не вистачить, хочавона і Mega. Але все ж таки навіть на мезі при бажанні все ж таки єкуди повісити додаткові входи. Та й навіть один аналоговий можнаперевести (в ідеальному випадку) в туєву хучу цифрових входів (небез танців із бубном). Але ж сенс? Хоч би ці заповнити.
Загалом не знаю чи правильно, але у мене в скетчі в коментаряхнаписані до чого якийсь вхід я прив'язав.Тести спідометра ітахометра я поки провести не можу (немає генератора імпульсів), тай аналогові ще не тестував, проте цифрові входи працюютьздебільшого (ще в процесі тестів). Якщо щось накосчив — прошувиправити .
Аналогові та частина цифрових
Залишок цифрових
Так, ще я поцупив з інших версій скетчу собі код для лампи палива.У мене індикації у машині нині немає. Червона зона стрілки і вгадуйяк хочеш, де закінчиться. А так буде включатися програмно. Інасамкінець для загального розвитку розпинування Arduino Mega 2560.Раптом знадобиться? Розпинування Ардуїни.
Часу, на жаль, дуже мало. Написати треба ще дуже багато. Томудоводиться такими невеликими шматками викладати. Пробачте. Хоча ятаким чином переважно роблю замітки для себе. А читачі – приємнийбонус.






Коментарі6
Чоловік!
Праця напевно титанічна. Я так розумію, що це мізки машини.
Походу тільки індикація. З великим екраном врятли впорається. Потрібно мінімум на STMці робити. Імхо звичайно.
Це збір даних з датчиків і відправка в програму обробки та візуалізації. А компухтер на андроїді (MK908 ТВ приставка, про яку писав у першій частині) вже буде отримувати це все, обробляти та візуалізувати на екран.
тепер я розумію, як у нас на фордах конверс (візуалізація на екрані) прошивають
Йа зрозумів. Увечері почитаю всі частини.)