ФУОЗ на ардуино НАНО с 328 чипом

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

Итак версия 2 ФУОЗа готова.

ФУОЗ - формирователь угла опережения зажигания.

По сути плата ставится в разрыв проводов коммутатор-датчик Холла. Нюанс - перекинуть провод на коммутаторе с пина 5 на 4, т.к. через резистор 150 Ом ардуине не хватает тока.

 

Искру нужно установить четко в ВМТ. Тут как кто умеет... 

Непосредственно скетч (огромное спасибо dimax и SU-27-16)
















volatile unsigned int zaderg = 0;
volatile int m, p =0;
unsigned int Zaderg[] = {138, 140, 141, 143, 145, 146, 148, 150, 152, 153, 155, 157, 158, 160, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 179, 181, 182, 184, 186, 188, 189, 191, 193, 194, 196, 198, 200, 201, 203, 205, 206, 208, 210, 212, 213, 215, 217, 218, 220, 222, 224, 225, 227, 229, 230, 232, 234, 236, 237, 239, 241, 242, 244, 246, 248, 249, 251, 253, 255, 257, 259, 261, 264, 266, 268, 270, 272, 274, 276, 278, 281, 283, 285, 287, 289, 291, 293, 295, 297, 300, 302, 304, 306, 308, 310, 312, 314, 316, 319, 321, 323, 325, 327, 329, 331, 333, 335, 338, 340, 342, 344, 346, 348, 350, 352, 354, 357, 359, 361, 363, 365, 367, 369, 371, 373, 376, 378, 380, 382, 384, 386, 388, 390, 393, 395, 397, 399, 401, 403, 405, 407, 409, 412, 414, 416, 418, 420, 422, 424, 426, 428, 431, 433, 435, 437, 439, 441, 443, 445, 447, 450, 452, 454, 456, 458, 460, 462, 464, 466, 469, 471, 473, 475, 477, 479, 481, 483, 485, 488, 490, 492, 494, 496, 498, 500, 502, 505, 507, 509, 511, 513, 515, 517, 519, 521, 524, 526, 528, 530, 532, 534, 536, 538, 540, 543, 545, 547, 549, 551, 553, 555, 557, 559, 562, 564, 566, 568, 570, 572, 574, 576, 578, 581, 583, 585, 587, 589, 591, 593, 595, 598, 600, 602, 604, 606, 608, 610, 612, 614, 617, 619, 621, 623, 625, 627, 629, 631, 633, 636, 638, 640, 642, 644, 646, 648, 650, 652, 655, 657, 659, 661, 663, 665, 667, 669, 671, 674, 676, 678, 680, 682, 684, 686, 688, 690, 693, 695, 697, 699, 701, 703, 705, 707, 710, 712, 714, 716, 718, 720, 722, 724, 726, 729, 731, 733, 735, 737, 739, 741, 743, 745, 748, 750, 752, 754, 756, 758, 760, 762, 764, 767, 769, 771, 773, 775, 777, 779, 781, 783, 786, 788, 790, 792, 794, 796, 798, 800, 802, 805, 807, 809, 811, 813, 815, 817, 819, 822, 824, 826, 828, 830, 832, 834, 836, 838, 841, 843, 845, 847, 849, 851, 853, 855, 857, 860, 862, 864, 866, 868, 870, 872, 874, 876, 879, 881, 883, 885, 887, 889, 891, 893, 895, 898, 900, 902, 904, 906, 908, 910, 912, 915, 917, 919, 921, 923, 925, 927, 929, 931, 934, 936, 938, 940, 942, 944, 946, 948, 950, 953, 955, 957, 959, 961, 963, 965, 967, 969, 972, 974, 976, 978, 980, 982, 984, 986, 988, 991, 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1027, 1029, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1065, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1196, 1198, 1200, 1202};
int Vak = 0;
void setup() {
pinMode (3,INPUT_PULLUP); //вход
pinMode (9,OUTPUT); //выход
EICRA=(1<<ISC11)|(0<<ISC10); //настройка внешнего прерывания (falling )
EIMSK|=1<<INT1; //разрешение внешнего прерывания
TCCR1B=0; //настройка таймера1
TCCR1A=0; //настройка таймера1
TIMSK1=(1<<TOIE1); //разрешить прерываение для таймера 1

TCCR1B= _BV(WGM13)|_BV(CS10); //запуск таймера 1
TCCR1A=0; 
ICR1=256;//установка частоты прерывания - 32us	 
}

ISR(INT1_vect) {  //вектор внешнего прерывания
PORTB &= ~(1<<1);
p = m/2-85;
zaderg = Zaderg[p] - Vak; // значение задержки из массива
m = 0; //сбрасываем счёт
}

ISR (TIMER1_OVF_vect) {

if ( p > 516) {//1172 - 780 - холостой ход, УОЗ = 0, т.е. повторитель заднего фронта

  if      (m==75 || m==147) PORTB &= ~(1<<1);   //отключаем d9
  else if (m==5 || m==77 || m==150) PORTB |= 1<<1; // включаем d9
  }

else { //больше 780 об

  if (m==30) PORTB |= 1<<1; //если 30 вход включаем d9
  if (m==zaderg){ // если (№ из массива) вход 
  PORTB &= ~(1<<1);  //отключаем d9
  };};
 m++;}

void loop() {Vak = map(analogRead(0), 375, 225, 0, 6);}

Миниатюрки: 

Коммутатор 0529

слева - 2 стабилизатора 12 (L7812CP) и 5 В (L7805CP) и кондер. Коннекторы - Коммутатор, он же питание, земля и выходной сигнал, ну и датчик Холла (справа). 

Так же усилитель (на фотке под чипом) на n-p-n (STBV42) и p-n-p (2N2907A) транзисторах

Провода - подключен датчик Холла (аналоговый) на вакуум-корректор. На штанге - магнит

Упаковываем...

и проверяем работу...

...обороты двигателя от 600 до 5500 с интерватол 1 Гц.

Видео

 

nobitaemon
Offline
Зарегистрирован: 08.08.2015

Как я могу получить Zaderg [], чтобы преуспеть?

RuleZZZZ
Offline
Зарегистрирован: 16.02.2015

del

Борода Столлмана
Offline
Зарегистрирован: 23.09.2015

Где вы его применяете ? Принцип работы опишите в кратце.

nobitaemon пишет:

Как я могу получить Zaderg [], чтобы преуспеть?

То же интересно откуда данные для массива ?

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

сорри, что так долго не отвечал((

данные для массива

https://dropmefiles.com/8lXAv

по количеству тиков определяется индекс элемента массива

Применяю - установлен на 2108, езжу по сегодня)

есть трабл - при температуре минус выпадает конденсат и получаются глюки 

Борода Столлмана
Offline
Зарегистрирован: 23.09.2015

dmitriykisliy пишет:

есть трабл - при температуре минус выпадает конденсат и получаются глюки 

Попробуйте лак plastik 71.

 

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

Залить всю Ардуинку???

Борода Столлмана
Offline
Зарегистрирован: 23.09.2015

Да, погуглите про этот лак, он неплохо работает.

 

 

nobitaemon
Offline
Зарегистрирован: 08.08.2015

Привет, спасибо за файл. Я прочитал и попытался узнать, но есть трудности. Там нет подробное описание в файле, как вы можете получить результаты расчетов и формул, из которых они были получены.

dmitriykisliy
Offline
Зарегистрирован: 03.03.2015

nobitaemon пишет:

Привет, спасибо за файл. Я прочитал и попытался узнать, но есть трудности. Там нет подробное описание в файле, как вы можете получить результаты расчетов и формул, из которых они были получены.

Вопрос поконкретнее)

В файле Excel есть графический рисунок, от него ноги и растут,

ну или http://www.qrz.ru/schemes/contribute/auto/ignition-pic/

maxam-007
Offline
Зарегистрирован: 06.03.2016

есть схема сборки платы?

Buldakov
Offline
Зарегистрирован: 17.01.2016

Теорию с формулами можно почитать сдесь: В журнале радиоежегодник за 1991 г. Стр 99 - 149. Скачать по ссылке.

http://publ.lib.ru/ARCHIVES/R/''Radioejegodnik''/_''Radioejegodnik''.html

 

knopas811
Offline
Зарегистрирован: 27.01.2017

dmitriykisliy пишет:

...Нюанс - перекинуть провод на коммутаторе с пина 5 на 4, т.к. через резистор 150 Ом ардуине не хватает тока...

 

 

Это как??? На 5м питание коммутатора, а на 4м питание ДХ!!! Как их можно менять? И можно подробную схему подключения?

amator
Offline
Зарегистрирован: 27.03.2017

Подскажите пожалуйста, можно ли эту программу адаптировать под один цилиндр и шторку датчика с двумя лепестками по 120 градусов, и обороты 500-5500, очень нужно...

Bogdan_ck
Offline
Зарегистрирован: 04.04.2017

Автору респект и уважуха.

Выложил все как есть в отличии от барыжных фирм, предлагающих подобные устройства за охренение деньги.

Програмное исполнение, на мой взгляд, простое, доступное и оригинальное.

Мной был переделан код под индуктивный датчик установленый на коробке, импульс формировался штифтом на маховике (ВАЗ-2109).

Один импульс на оборот коленвала, искра два раза за оборот.

Для отладки сделал стенд, моторчик, диск, тахометр, стробоскоп, индуктивный датчик на стяжке, на диске болтик, потом

преобразователь уровня на компараторе, и вход на ардуинку, выход на стробоскоп. Сробоскоп работает по снятию импульса с катушки, тоесть повторяет искру.

На стенде все великолепно, метка на диске и бумажечка с углами показывают всю зависимость.

Перемеником регулирую обороты движка, другая ардуинка их показывает, по метке видно угол, можно прям на ходу менять табличку.

На авто пока не ставил (тайм и лень).

Датчик давления купил в радиомагазине, соответственно в програме изменения на даный датчик.

Планирую поставить еше переменик типа октан-коректора.

Для amator, думаю, можна переделать судя из алгоритма.

По поводу точности регулировки, не проверял, но думаю достаточная если стравнивать с механикой (5-7 градусов), 0,5 градуса на скорость не влияют.

puschistic
Offline
Зарегистрирован: 04.03.2018

Доброго времени суток. Собираю зажигание на ардуинке (очень нужно сделать опережение/опаздание) зажигания. Выложите или скиньте пожалуйста скетч на электронку puschistic@list.ru 

Ссылки к сожалению не работают по которым как я понял был выложен скетч.

b707
Offline
Зарегистрирован: 26.05.2017

puschistic пишет:

Ссылки к сожалению не работают по которым как я понял был выложен скетч.

скетч в первом сообщении ветки без всяких ссылок

puschistic
Offline
Зарегистрирован: 04.03.2018

Всем привет. Спасибо что отозвались на помощь. Я по ка что новичек в этой теме. Скопировал скетч с первой страницы и вставил его в программу - при компиляции скетча вылетают ошибки:

Arduino: 1.8.5 (Windows 7), Плата:"Arduino Nano, ATmega328P"
 
saghiganie:15: error: invalid digit "8" in octal constant
 
saghiganie:17: error: invalid digit "9" in octal constant
 
saghiganie:1: error: expected unqualified-id before numeric constant
 
saghiganie:3: error: expected unqualified-id before numeric constant
 
saghiganie:5: error: expected unqualified-id before numeric constant
 
saghiganie:7: error: expected unqualified-id before numeric constant
 
saghiganie:9: error: expected unqualified-id before numeric constant
 
D:\Users\Александр\Documents\Arduino\saghiganie\saghiganie\saghiganie.ino: In function 'void setup()':
 
saghiganie:12: error: expected ';' before 'pinMode'
 
saghiganie:14: error: expected ';' before 'pinMode'
 
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
 
                 from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
 
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
 
                 from sketch\saghiganie.ino.cpp:1:
 
saghiganie:20: error: expression cannot be used as a function
 
saghiganie:22: error: expression cannot be used as a function
 
saghiganie:24: error: expression cannot be used as a function
 
saghiganie:27: error: expected ';' before numeric constant
 
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
 
                 from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
 
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
 
                 from sketch\saghiganie.ino.cpp:1:
 
saghiganie:30: error: expression cannot be used as a function
 
saghiganie:32: error: expression cannot be used as a function
 
saghiganie:34: error: expected ';' before '}' token
 
D:\Users\Александр\Documents\Arduino\saghiganie\saghiganie\saghiganie.ino: At global scope:
 
saghiganie:35: error: expected unqualified-id before numeric constant
 
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
 
                 from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
 
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
 
                 from sketch\saghiganie.ino.cpp:1:
 
D:\Users\Александр\Documents\Arduino\saghiganie\saghiganie\saghiganie.ino: In function 'void __vector_2()':
 
saghiganie:40: error: expression cannot be used as a function
 
saghiganie:42: error: expected ';' before 'p'
 
saghiganie:44: error: expected ';' before 'zaderg'
 
saghiganie:46: error: expected ';' before 'm'
 
saghiganie:48: error: expected ';' before '}' token
 
D:\Users\Александр\Documents\Arduino\saghiganie\saghiganie\saghiganie.ino: At global scope:
 
saghiganie:49: error: expected unqualified-id before numeric constant
 
D:\Users\Александр\Documents\Arduino\saghiganie\saghiganie\saghiganie.ino: In function 'void __vector_13()':
 
saghiganie:55: error: expected ';' before numeric constant
 
saghiganie:67: error: expected ';' before numeric constant
 
saghiganie:84: error: expected '}' at end of input
 
exit status 1
invalid digit "8" in octal constant
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 
puschistic
Offline
Зарегистрирован: 04.03.2018

Нумерация впереди скетча не нужна? При ее удалении скетч прогружается.

puschistic
Offline
Зарегистрирован: 04.03.2018

Уже "вдоль и поперек" изучил данную схему. Как я понял данная схема работает на 2108. Но я не могу понять как происходит распределение зажигания между цилиндрами (бегунком или катушками на каждую пару цилиндров) Судя по выходам, он один похоже по бегунку.

Суть моей проблемы, мне нужно собрать полностью зажигание на 4 цилиндровый двигатель (установлен на багги). Схема подключения цилиндров 14 и 23. Установлено 2 датчика холла на коленвале, 2 коммутатора ваз и 2 катушки с парным выводом проводов. При такой схеме двигатель работает, но не развивает оборотов выше 5-6 тысяч. 

Сечас я приобрел

2 датчика холла (ардуиновские цифровые), https://ru.aliexpress.com/item/Hall-magnetic-Sensor-with-analog-digital-...

плату ардуино https://ru.aliexpress.com/item/Nano-V3-ATmega328-CH340G-Micro-USB-Pin-he...,

2 ключа https://ru.aliexpress.com/item/MOSFET-5-DC-24/32671829582.html?spm=a2g0s.9042311.0.0.fjfvob

Принцип работы на максимальных оборотах выставляем опережение и от него в низ задержку. Сдесь нашел похожую задачу http://www.cyberforum.ru/arduino/thread1947332.html . Но я ни как не могу понять как делается задержка.

Прошу помощи с освоением этого девайса. 

zilk
Offline
Зарегистрирован: 09.08.2017

puschistic пишет:

Установлено 2 датчика холла на коленвале, 2 коммутатора ваз и 2 катушки с парным выводом проводов.

 

Каков алгоритм работы двух датчиков на коленвале, если учитывать то, что за полный цикл работы двигателя коленвал совершает два оборота?

 

puschistic
Offline
Зарегистрирован: 04.03.2018

Алгоритм работы следующий. При положении ВМТ в 1 и 4 цилиндре срабатывет 1 датчик хола - соответствено искра, при повороте на 180 градусов положение ВМТ в 2 и 3 цилиндра срабатывет 2 датчик хола - соответствено искра, т.е. каждый датчик холла отвечает за свою пару цилиндров.

Andry
Offline
Зарегистрирован: 11.05.2018

Как поменять направление движения метки? Чем больше обороты тем раньше поджигаем!

Таблицу  с переменными значениями так и не получилось запустить, подключил второй датчик хола приблизил магнит снял с него значения  вписал в эту строку 

void loop(){Vak=map (analogRead(0), 160, 159, 154, 153);

Serial.println (analogRead(0);

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Господи, это еще где то применяется !

Romhik
Offline
Зарегистрирован: 11.10.2017

dmitriykisliy пишет:

void loop() {Vak = map(analogRead(0), 375, 225, 0, 6);}

Из всего текста программы не смог понять причем здесь чтение аналогово входа, который никуда не подключен, ну если смотреть на схему.
Ни у кого не возникло сомнений для чего это сделано?
Исходя из названия переменной Vak, я так понял, что аналоговый вход подключен к датчику вакуума, чтобы мерять разряжение во всасывающем коллекторе на автомобиле.
В данном случае будет вносить только помеху, если ножка аналогового входа просто будет висеть в воздухе...

Briq
Offline
Зарегистрирован: 04.10.2019

Всем доброго дня. Воспроизвожу скетч топикстартера для мотоциклетного двигателя.

Двигатель двухтактный, двухцилиндровый, поршни в противофазе, установлен вот такой оптодатчик https://www.compel.ru/item-pdf/f9aa89e4955802089b277aeaac567a6d/pf/autonics~bs5.pdf, шторка с вырезом 180 градусов. В настоящее время оптодатчик напрямую подключен к двум вазовским коммутаторам https://tov54.ru/components/com_virtuemart/shop_image/product/full/hm/vaz/b01485.jpg и все работает с холостой искрой в нижней мертвой точке. 

Есть давнее желание избавиться от холостой искры и изменять УОЗ в зависимости от оборотов. Скетч автора темы был изменен, вот, что получилось

volatile unsigned int zaderg = 0;
volatile int m=0, rpm, p=0, c = 0;
unsigned int Zaderg[] = {141, 95, 67, 49, 34, 25, 19, 15, 11, 8, 6, 4, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0};
void setup() {
pinMode (3,INPUT); //вход
pinMode (9,OUTPUT); //выход
pinMode (10,OUTPUT);
//pinMode (10,OUTPUT); //выход на отключение импульсного преобразователя
EICRA=(0<<ISC11)|(1<<ISC10); //настройка внешнего прерывания (Changing )
EIMSK|=1<<INT1; //разрешение внешнего прерывания
TCCR1B=0; //настройка таймера1
TCCR1A=0; //настройка таймера1
TIMSK1=(1<<TOIE1); //разрешить прерываение для таймера 1
TCCR1B= _BV(WGM13)|_BV(CS10); //запуск таймера 1
TCCR1A=0;
ICR1=256;//установка частоты прерывания - 32us
}
ISR(INT1_vect) { //вектор внешнего прерывания
c = digitalRead(3);
p = (4688 / m) - 5;//p - номер элемента в массиве
zaderg = Zaderg[p];// значение задержки из массива
m = 0; //сбрасываем счёт
}
ISR (TIMER1_OVF_vect) {
if (p < 0) {//холостой ход, УОЗ = max
  if (m == 280 && c ==  LOW) digitalWrite(9, HIGH); //включаем d9
  else if (m == 280 && c == HIGH) digitalWrite(10, HIGH); //включаем d10 
  else if (m == 330 && c == LOW) digitalWrite(9, LOW); // отключаем d9 (время горения искры ~ 1.5 мс)
  else if (m == 330 && c == HIGH) digitalWrite(10, LOW); // отключаем d10
}
else {
  if (m==zaderg && c == LOW) digitalWrite(9, HIGH); //включаем d9
  else if (m == zaderg && c == HIGH) digitalWrite(10, HIGH);//включаем d10
  else if (m == zaderg+50 && c == LOW) digitalWrite(9, LOW);//отключаем d9 
  else if (m == zaderg+50 && c == HIGH) digitalWrite(10, LOW);//  отключаем d10
}
m++;
}
void loop()
{
}

 В схемотехнике у меня опыта нет. На основе букваря по подключениям https://www.drive2.ru/c/1735998/сделал вот такую схему. Вход на оптопаре, а выход на транзисторе Дарлингтона.

В Протеусе все работает, даже УОЗ изменяется. После сборки выяснилось, что не работает НИЧЕГО. На выходе оптодатчика напряжение 0,5-0,7 В. При том, что если его подключить напрямую к коммутатору, уровни изменяются 0 - +12 В. Выходные трназисторы, как я понял, замыкая D3 на землю, тоже не работают.

Пожалуйста, помогите сделать вход и выход для ардуины.

walery9
Offline
Зарегистрирован: 22.07.2016

На схеме у 7805 попутаны вход и выход местами и в цепи +5 в нет напряжения.

Briq
Offline
Зарегистрирован: 04.10.2019

Верно. А я и не заметил. Этот 7805 на реальной схеме отсутствует, 3 нога подтянута через 10 кОм к 5 В от стабилизатора ардуины.

Симуляция по прежнему работает, а реальная схема нет.

Buldakov
Offline
Зарегистрирован: 17.01.2016

Классный букварь подключений. Очень понравилось. Особенно череп с костями. 

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

Buldakov пишет:

Классный букварь подключений. Очень понравилось. Особенно череп с костями. 


Особенно у энкодера:
резисторы на вход вместо привязки на питание....

Romhik
Offline
Зарегистрирован: 11.10.2017

Briq пишет:

Всем доброго дня. Воспроизвожу скетч топикстартера для мотоциклетного двигателя.

...
ISR (TIMER1_OVF_vect) {
if (p < 0) {//холостой ход, УОЗ = max
  if (m == 280 && c ==  LOW) digitalWrite(9, HIGH); //включаем d9
  else if (m == 280 && c == HIGH) digitalWrite(10, HIGH); //включаем d10 
  else if (m == 330 && c == LOW) digitalWrite(9, LOW); // отключаем d9 (время горения искры ~ 1.5 мс)
  else if (m == 330 && c == HIGH) digitalWrite(10, LOW); // отключаем d10
}
else {
  if (m==zaderg && c == LOW) digitalWrite(9, HIGH); //включаем d9
  else if (m == zaderg && c == HIGH) digitalWrite(10, HIGH);//включаем d10
  else if (m == zaderg+50 && c == LOW) digitalWrite(9, LOW);//отключаем d9 
  else if (m == zaderg+50 && c == HIGH) digitalWrite(10, LOW);//  отключаем d10
}
...

А мне кажется, что функция digitalWrite будет медленней работать по сравнению с битовой операцией "PORTB &= ~(1<<1);   //отключаем d9 и PORTB |= 1<<1; // включаем d9"
Это может сказаться на углах зажигания и на высокооборотистых двигателях

и еще мне было лень ставить всякие резисторы, то я сделал вход так:
pinMode (3,INPUT_PULLUP); //вход

Вот моя тестовая схема в протеусе:

А это мой код, который я проверил, тоже работает, ну и на мотоцикле вроде работал тоже:
 

volatile unsigned int zaderg = 0;
volatile int m, p =0;
unsigned int Zaderg[] = {138, 140, 141, 143, 145, 146, 148, 150, 152, 153, 155, 157, 158, 160, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 179, 181, 182, 184, 186, 188, 189, 191, 193, 194, 196, 198, 200, 201, 203, 205, 206, 208, 210, 212, 213, 215, 217, 218, 220, 222, 224, 225, 227, 229, 230, 232, 234, 236, 237, 239, 241, 242, 244, 246, 248, 249, 251, 253, 255, 257, 259, 261, 264, 266, 268, 270, 272, 274, 276, 278, 281, 283, 285, 287, 289, 291, 293, 295, 297, 300, 302, 304, 306, 308, 310, 312, 314, 316, 319, 321, 323, 325, 327, 329, 331, 333, 335, 338, 340, 342, 344, 346, 348, 350, 352, 354, 357, 359, 361, 363, 365, 367, 369, 371, 373, 376, 378, 380, 382, 384, 386, 388, 390, 393, 395, 397, 399, 401, 403, 405, 407, 409, 412, 414, 416, 418, 420, 422, 424, 426, 428, 431, 433, 435, 437, 439, 441, 443, 445, 447, 450, 452, 454, 456, 458, 460, 462, 464, 466, 469, 471, 473, 475, 477, 479, 481, 483, 485, 488, 490, 492, 494, 496, 498, 500, 502, 505, 507, 509, 511, 513, 515, 517, 519, 521, 524, 526, 528, 530, 532, 534, 536, 538, 540, 543, 545, 547, 549, 551, 553, 555, 557, 559, 562, 564, 566, 568, 570, 572, 574, 576, 578, 581, 583, 585, 587, 589, 591, 593, 595, 598, 600, 602, 604, 606, 608, 610, 612, 614, 617, 619, 621, 623, 625, 627, 629, 631, 633, 636, 638, 640, 642, 644, 646, 648, 650, 652, 655, 657, 659, 661, 663, 665, 667, 669, 671, 674, 676, 678, 680, 682, 684, 686, 688, 690, 693, 695, 697, 699, 701, 703, 705, 707, 710, 712, 714, 716, 718, 720, 722, 724, 726, 729, 731, 733, 735, 737, 739, 741, 743, 745, 748, 750, 752, 754, 756, 758, 760, 762, 764, 767, 769, 771, 773, 775, 777, 779, 781, 783, 786, 788, 790, 792, 794, 796, 798, 800, 802, 805, 807, 809, 811, 813, 815, 817, 819, 822, 824, 826, 828, 830, 832, 834, 836, 838, 841, 843, 845, 847, 849, 851, 853, 855, 857, 860, 862, 864, 866, 868, 870, 872, 874, 876, 879, 881, 883, 885, 887, 889, 891, 893, 895, 898, 900, 902, 904, 906, 908, 910, 912, 915, 917, 919, 921, 923, 925, 927, 929, 931, 934, 936, 938, 940, 942, 944, 946, 948, 950, 953, 955, 957, 959, 961, 963, 965, 967, 969, 972, 974, 976, 978, 980, 982, 984, 986, 988, 991, 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1027, 1029, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1065, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1196, 1198, 1200, 1202};

void setup() {
pinMode (3,INPUT_PULLUP); //вход
pinMode (9,OUTPUT); //выход
EICRA=(1<<ISC11)|(0<<ISC10); //настройка внешнего прерывания (falling )
EIMSK|=1<<INT1; //разрешение внешнего прерывания
TCCR1B=0; //настройка таймера1
TCCR1A=0; //настройка таймера1
TIMSK1=(1<<TOIE1); //разрешить прерываение для таймера 1

TCCR1B= _BV(WGM13)|_BV(CS10); //запуск таймера 1
TCCR1A=0; 
ICR1=256;//установка частоты прерывания - 32us   
}

ISR(INT1_vect) {  //вектор внешнего прерывания
PORTB |= 1<<1;
p = m/2-85;
zaderg = Zaderg[p]; // значение задержки из массива
m = 0; //сбрасываем счёт
}

ISR (TIMER1_OVF_vect) {

if ( p > 516) {//1172 - 780 - холостой ход, УОЗ = 0, т.е. повторитель заднего фронта

  if      (m==75 || m==147) PORTB |= 1<<1; // включаем d9
  else if (m==5 || m==77 || m==150) PORTB &= ~(1<<1);   //отключаем d9
  }

else { //больше 780 об

  if (m==30) PORTB &= ~(1<<1); //если 30 вход отключаем d9
  if (m==zaderg){ // если (№ из массива) вход 
  PORTB |= 1<<1;  //включаем d9
  };};
 m++;}

void loop() {
  }

С подключением к коммутатору было тоже лень возится, так как в мотоцикле очень мало места было под баком, пришлось найти короткую катушку зажигания на свечу от Шкоды Фабия:

Такие же на вид есть катушки от боша:

Там питание 12 вольт а вход пятивольтовый, я прямо с ардуино подал сигнал на вход катушки "IN" и все прекрасно работало. Тем самым сэкономил себе время чтобы разбираться со всем этим геморйным китайским комутатором, который нужно было еще покупать и дорабатывать, потом его нужно где-то разместить и подключить к катушке зажигания, мы сначала пошли как раз по этому пути, искра была плохая, коммутатор вносил свою задержку и так далее, в общем поверьте мне все очень довольны были и я в том числе, когда избавились от всего этого гемороя. В итоге в случае поломки можно грешить только на 4 вещи - это датчик, ардуино, катушка и свеча. Катушка настолько сделана надежно, что её можно вообще исключить, потому что за время экспериментов и эксплуатации, было все что угодно и свечу пробивало и отваливался датчик, ардуино сгорало 12 вольт попало на 5 вольт. Катушка зажигания всегда оставалась целой.
Если бы было больше места, то поставили катушки от ВАЗ 2110 инжектор, они дешевле стоят, но длиннее, ну и конечно качество у них по хуже и исполнение тоже хуже, но тоже работают по такому принципу.
Если выкините коммутатор, катушку зажигания штатные и поставите эти, то вам будет на много проще жить, поверьте моему опыту!)))

-NMi-
Онлайн
Зарегистрирован: 20.08.2018

Romhik пишет:

Если бы было больше места, то поставили катушки от ВАЗ 2110 инжектор, они дешевле стоят, но длиннее, ну и конечно качество у них по хуже и исполнение тоже хуже, но тоже работают по такому принципу.

Нет. В катушках 2110 (COP - Coil On Plug  -  катушка на свече) нет встроенного коммутатора и она управляется несколько иначе, чем катухи, которые ты описал выше. В блоке управления IGBT транзюк коммутирует их на землю с токоизмерительной цепью. Так-что вот именно твой вариант прокатит, а с катухами от 2110 не прокатит. Имей это ввиду!  Да и по качеству они есть тоже бошь, то-же фиг сломаешь...

Briq
Offline
Зарегистрирован: 04.10.2019

Спасибо за совет. У меня коммутаторы вот с такой схемой http://ok-t.ru/mydocxru/baza5/452666368193.files/image050.jpg (3-земля, 5 - питание датчика Холла, 6 - сигнал от датчика Холла) с моим оптодатчиком работают отлично. Желания менять коммутаторы нет. Можно ли ими управлять напрямую с ардуины? Не убъют ли скачки напряжения в бортсети выходы платы?

-NMi-
Онлайн
Зарегистрирован: 20.08.2018

ULN2003 как раз в помощь.

Romhik
Offline
Зарегистрирован: 11.10.2017

-NMi- пишет:

Нет. В катушках 2110 (COP - Coil On Plug  -  катушка на свече) нет встроенного коммутатора и она управляется несколько иначе, чем катухи, которые ты описал выше. В блоке управления IGBT транзюк коммутирует их на землю с токоизмерительной цепью. Так-что вот именно твой вариант прокатит, а с катухами от 2110 не прокатит. Имей это ввиду!  Да и по качеству они есть тоже бошь, то-же фиг сломаешь...

Я просто не помню точно, но какие-то совдеповского автопрома вроде нашли типа аналог советский какого-то нового ваза, а может продавец просто не знал, мы ему объясняли объясняли какую нам катушку нужно, что именно со встроенным коммутатором, он нам пытался впарить какую-то супер новую))) Хорошо, что не влезла под бак))) Потом нашли от мазды катушку, они короткие, но блин провода втыкаются в верху, и как раз из-за этого тоже не влезла, разъем начал упираться в бак. А вообще на разборке иномарок можно найти много чего интересного, ну и в общем то и нашли, что нужно!))
Вот еще, может кому интересная информация по разным катушками и их подключению:
http://www.vems.hu/wiki/index.php?page=IgnitionPage%2FCOP

Romhik
Offline
Зарегистрирован: 11.10.2017

Briq пишет:

Спасибо за совет. У меня коммутаторы вот с такой схемой http://ok-t.ru/mydocxru/baza5/452666368193.files/image050.jpg (3-земля, 5 - питание датчика Холла, 6 - сигнал от датчика Холла) с моим оптодатчиком работают отлично. Желания менять коммутаторы нет. Можно ли ими управлять напрямую с ардуины? Не убъют ли скачки напряжения в бортсети выходы платы?

А датчик индкутивный или полупроводниковый датчик Холла?
Можно проверить тестером.
Ну я бы сначала проверил работу ардуины, изменил бы в программе:
pinMode (9,OUTPUT); //выход на pinMode(ledPin, OUTPUT);
digitalWrite(9, HIGH); //включаем d9 на digitalWrite(ledPin, HIGH);
digitalWrite(9, HIGH); //включаем d9 на digitalWrite(ledPin, LOW);
Ну и посмотреть как светодиод моргает, когда заводишь двигатель, он будет моргать в момент формирования искры, если все ок, то возвращаешь все назад и подключаешь выход с ардуины на вход (1,2,3,4,5,6,7 это входы) ULN2003 а выход (16,15,14,13,12,10 это выходы, порядок соответсвует входам) уже на 6 - сигнал от датчика Холла.  3-земля комутатора соединяешь с землей ардуины и 8 ножкой ULN2003, 5 - питание датчика Холла соединяешь с 9 ножкой ULN2003
Так что правильно сказал тебе -NMi- используй ULN2003
Вот схема ULN2003: https://www.theengineeringprojects.com/wp-content/uploads/2017/06/ULN200...
 

Briq
Offline
Зарегистрирован: 04.10.2019

Датчик оптический BS5-T2M. Спасибо, попробую со встроенным диодом. 

У меня и так выход на двух транзисторах Дарлингтона КТ972А (их просто в протеусе нет). И это не работает.

Romhik
Offline
Зарегистрирован: 11.10.2017

Briq пишет:

Датчик оптический BS5-T2M. Спасибо, попробую со встроенным диодом. 

У меня и так выход на двух транзисторах Дарлингтона КТ972А (их просто в протеусе нет). И это не работает.


Оптический?
Так его же пылью закидает!
Дело в том что на практике ULN2003 c ардуино работает, по входу ULN2003 хорошо совместима с ардуино и я делал проекты просто на микроконтроллерах, в общем в связке с ULN2003 работало хорошо. Ну а по выходу она тоже совместима, там открытый коллектор!
Ах да, забыл еще сказать, что на выход ULN2003  нужно поцепить резистор с контакта коммутатора 5 - питание датчика Холла, иначе я не знаю как работать будет.
А еще может быть такое, что нужно инвертировать сигнал с  выхода с ардуины, но это легко сделать в программе на выходах HIGH на LOW поменять. Ну так как у меня есть осциллограф, то я ним все проследил, чтобы все шло как надо))) Программу осциллограф как для компьютера так и для смартфона можно скачать, в интернете и плеймаркете легко найти, только шнур нужно самому сделать.

Briq
Offline
Зарегистрирован: 04.10.2019

Оптодачтик нормально себя там чувствует. Гораздо лучше .чем датчик Холла рядом с сильным магнитным полем генератора.

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020

Ребят у меня машина ваз-21013 Любимая. У неё трамблёр без вакумника. заводится просто огонь. Но бензин кушает. Когда была 4х ступка кушала 10литров на 110 км. Сейчас решил поизмуватся над ней. Вообщем есть Ардуино нано, есть контактный трамблёр и есть контактная бабина. Задумка такова сделать обратную связь по резистору, который чем больше делаешь газ тем больше сопротивление это вход  в ардуино. Второй вход это контакт трамблёра подпитанный резистором. Третий вход со спидометра тахометра чтобы ардуино видела с какой скоростью едим (это для цифрового спидометра тахометра и счётчика моточасов). Теперь выхода:  на оптронный модуль 80А( с запасом) для управления бабиной. Ещё выход для управления приборной панелью на светодиодах ws2812. Алгоритм сдвига УОЗ таков: при нажатии на педаль газа изменяется сопротивление соответственно изменяется рассогласование между резистором и оборотами двигателя, соответственно на этот угол должен сдвигается УОЗ. И кроме того вы замечали когда на холостом ходу поворачиваешь трамблёр изменяются обороты двигателя вот и скетч надо сделать так, чтобы он следил за оборотами двигателя и поддерживал их на максимуме возможного изменяя УОЗ т.е. была следящая система. Если вам попадалось что то такое дайте ссылочку или подскажите на какой библиотеке лучше написать такой скеч. Вообщем скетч должен эмитировать операционный усилитель.  (сразу скажу датчик холла не хочу, коммутатор не хочу, бабину без контактную покупать не хочу, трамблёр без контактный не хочу. делать обратную связь по вакуму не хочу.)

b707
Offline
Зарегистрирован: 26.05.2017

ооо, Gen.Aleks вернулся.

Гена, какую библиотеку не взять - все одно библиотека за тебя код не напишет...

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

на дворе 21 век. если уж и лепить электронику в этот таз, дак уж полностью, чтоб без трамблера. чтобы зажигание компутером управлялось. Чтоб хоть какойто эффект ощутить, а так это ниочом. ардуина тут бессильна. 

Romhik
Offline
Зарегистрирован: 11.10.2017

MaksVV пишет:

на дворе 21 век. если уж и лепить электронику в этот таз, дак уж полностью, чтоб без трамблера. чтобы зажигание компутером управлялось. Чтоб хоть какойто эффект ощутить, а так это ниочом. ардуина тут бессильна. 

Почему? На жигули кстати можно поставить шкив на коленвал вместо обычного зубчатый с индукционным датчиком довольно точно можно измерять положение коленвала ну а дальше уже на сколько фантазия позволяет, либо сдвоенные катушки зажигания с коммутатором внутри от дэву там или рено или тех же жигулей инжекторных или катушки на каждую свечу. Можно конечно оставить и трамблер и одну катушку и один коммутатор а трамблер чисто для раздачи искры на свечи, удалить из него опережение. Так что ардуина это всего лишь контроллер, который может всем этим рулить дешево и сердито. Ну говорят что блок управления (компьютер "Январь") от инжекторных жигулей вроде не дорого стоит в нем все уже есть и прошивать его и настраивать там разные режимы работы под себя это уже не секрет, все в свободном доступе, можно вообще свою прошивку сделать...

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020

Привет b707 смеёшься всё на до мной, а мне не до шуток. У вас в теме про часы смеялись якобы сложные для меня а они работают и радуют спасибо тому кто код написал. Правда за это время купил датчик купил BMP280 правда хотел BME280 но ошибся при заказе.

Вообщем по теме хотел бы. Заболел темой не  на на шутку. Есть скетч для PIC:   

:020000040000FA
:020000000628D0
:080008000528080083128501A0
:1000100086018316FF30860000308500831281013F
:1000200083166400EA3081008312FB2882070234C1
:100030000234023402340234023402340234023410
:1000400002340234023402340234023402340434FE
:100050000A3414341E342834323447344C34503487
:10006000543458345C3460346334663469346C34EA
:100070006F347234753478347B347D348034823418
:100080008534873489348C348E349034923495346A
:10009000973499349B349D349F34A134A334A534D0
:1000A000A734A934AB34AD34AF34B134B334B53440
:1000B000B634B834B934B834B734B634B534B434EB
:1000C000B334B234B134B034B034AF34AE34AE340F
:1000D000AD34AC34AC34AB34AB34AA34AA34A93428
:1000E000A934A834A834A834A734A734A734A63434
:1000F000A634A534A534A534A434A434A434A4343B
:10010000A334A334A334A334A334A334A234A23439
:10011000A234A234A234A234A234A234A234A2342F
:10012000A234A234A234A234A234A234A234A2341F
:10013000A234A234A234A234A234A234A234A2340F
:10014000A334A334A334A334A334A334A334A434F6
:10015000A434A434A434A434A434A534A534A534DC
:10016000A534A634A634A634A634A634A734A734BE
:10017000A734A834A834A834A834A934A934A9349D
:10018000A934AA34AA34AA34AB34AB34AB34AC347B
:10019000AC34AC34AD34AD34AD34AE34AE34AE3456
:1001A000AF34AF34AF34B034B034B034B134B13430
:1001B000B134B234B234B334B334B334B434B43409
:1001C000B534B534B534B634B634B734B734B734DF
:1001D000B834B834B934B934B934BA34BA34BB34B5
:1001E000BB34BB34BC34BC34BD34BD34BE34BE348B
:1001F000BE34BF34BF3405106400FF30A000FF30B0
:10020000A1001430B000B00B0329A00B0B29A10BE7
:100210000B290514FC286400061C0129061C0E2964
:100220000514A001A10100000000A00F1929A10AD6
:10023000640006181329640006181C2905106400C0
:1002400000000000A00F2629A10A0000061C20299A
:100250000514163021020318FC286400A401A5012E
:10026000AC01AD01AE01AF01A801AB012008A200B5
:10027000A20EA2132213A21222122108A3000F30F1
:10028000A305230EA20722081620A6000030A7000F
:100290002008A9002108AA008D212908A4002A0805
:1002A000A500831222088C3C0318582905155929EA
:1002B00005116400A001A101061C5C290514A40B12
:1002C00068290311A508031D672900006829A503F3
:1002D000A00F7029A10A21080E3C03187029FB28E1
:1002E00006185F2964000510061874290510A40B70
:1002F00080290311A508031D7F2905148029A50362
:10030000A00F8829A10A21080E3C03188829FB2880
:10031000061C7729640005142E2999212608A907AF
:100320000318AA0A2708AA070318AB0A2808AB076C
:100330000034A609A60A0319A703A7090319A803ED
:04034000A8090034D4
:02400E00F53F7C
:00000001FF

но как бы его для раскодировать и адаптировать к ардуино нано.

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020


RUOZ+84.HEX

:020000040000FA
:020000000628D0
:080008000528080083128501A0
:1000100086018316FF30860000308500831281013F
:1000200083166400EA3081008312FB2882070234C1
:100030000234023402340234023402340234023410
:1000400002340234023402340234023402340434FE
:100050000A3414341E342834323447344C34503487
:10006000543458345C3460346334663469346C34EA
:100070006F347234753478347B347D348034823418
:100080008534873489348C348E349034923495346A
:10009000973499349B349D349F34A134A334A534D0
:1000A000A734A934AB34AD34AF34B134B334B53440
:1000B000B634B834B934B834B734B634B534B434EB
:1000C000B334B234B134B034B034AF34AE34AE340F
:1000D000AD34AC34AC34AB34AB34AA34AA34A93428
:1000E000A934A834A834A834A734A734A734A63434
:1000F000A634A534A534A534A434A434A434A4343B
:10010000A334A334A334A334A334A334A234A23439
:10011000A234A234A234A234A234A234A234A2342F
:10012000A234A234A234A234A234A234A234A2341F
:10013000A234A234A234A234A234A234A234A2340F
:10014000A334A334A334A334A334A334A334A434F6
:10015000A434A434A434A434A434A534A534A534DC
:10016000A534A634A634A634A634A634A734A734BE
:10017000A734A834A834A834A834A934A934A9349D
:10018000A934AA34AA34AA34AB34AB34AB34AC347B
:10019000AC34AC34AD34AD34AD34AE34AE34AE3456
:1001A000AF34AF34AF34B034B034B034B134B13430
:1001B000B134B234B234B334B334B334B434B43409
:1001C000B534B534B534B634B634B734B734B734DF
:1001D000B834B834B934B934B934BA34BA34BB34B5
:1001E000BB34BB34BC34BC34BD34BD34BE34BE348B
:1001F000BE34BF34BF3405106400FF30A000FF30B0
:10020000A1001430B000B00B0329A00B0B29A10BE7
:100210000B290514FC286400061C0129061C0E2964
:100220000514A001A10100000000A00F1929A10AD6
:10023000640006181329640006181C2905106400C0
:1002400000000000A00F2629A10A0000061C20299A
:100250000514163021020318FC286400A401A5012E
:10026000AC01AD01AE01AF01A801AB012008A200B5
:10027000A20EA2132213A21222122108A3000F30F1
:10028000A305230EA20722081620A6000030A7000F
:100290002008A9002108AA008D212908A4002A0805
:1002A000A500831222088C3C0318582905155929EA
:1002B00005116400A001A101061C5C290514A40B12
:1002C00068290311A508031D672900006829A503F3
:1002D000A00F7029A10A21080E3C03187029FB28E1
:1002E00006185F2964000510061874290510A40B70
:1002F00080290311A508031D7F2905148029A50362
:10030000A00F8829A10A21080E3C03188829FB2880
:10031000061C7729640005142E2999212608A907AF
:100320000318AA0A2708AA070318AB0A2808AB076C
:100330000034A609A60A0319A703A7090319A803ED
:04034000A8090034D4
:02400E00F53F7C

Это почти то что мне надо. Это ставится на ВАЗ-2105 Но на мою копейку тоже подойдёт. Только бы скейтч в ардуино воткнуть ))

nik182
Offline
Зарегистрирован: 04.05.2015

Раскодиновать ещё как то можно, но в ардуину уже не воткнуть. Железо разное. Проще купить PIC и залить в него прошивку. Это будет быстрее и дешевле существенно. Услуги по программированию PIC можно найти.

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020

Мне услуги не нужны, я если пытаюсь разобратся то во всём сам. Сейчас меня интересует вопрос, скетч который был в начале подойдёт для контактного трамблёра. Я так понел он ставится в ардуино в разрыв между датчиком холла и коммутатором, в схеме которую я вставил выше вход на 6 ножку можно сделать и с датчика холла с минимальными изменениями. У меня сейчас есть мысль вставить на D3 ардуинки (хотя я наверно сделаю маломощным оптроном АОТ101 для развязки) контакт трамблёра тем более что он подтянут внутренним программным резистором (INPUT_PULLUP) контакт трамблёра будет пульсировать на корпус мотора. А pin ардуинки D9 обозначенный выходом подключу на выход оптронного модуля МТОТО80-122И это мощный сдвоеный оптрон ток 120А.(если найду меньше поставлю) на нём два светодиода наверно по 2.5 вольта. С выхода ардуинки скорее всего будет 5в, я думаю подсоединить их последовательно, а высоковольтные переходы соединяющие 12в с бабиной соединю паралельно, а значит полупроводниковые  переходы будут в 2 раза сопротивление меньше. Осталось два бока питания найти или на стабилитрнах как в схеме или на кренках как сделал хозяин скетча.   

Romhik
Offline
Зарегистрирован: 11.10.2017

nik182 пишет:
Раскодиновать ещё как то можно, но в ардуину уже не воткнуть. Железо разное. Проще купить PIC и залить в него прошивку. Это будет быстрее и дешевле существенно. Услуги по программированию PIC можно найти.

Я думаю можно в STM32 это воткнуть без всякой расшифровки. Когда-то поднимали тему эмулятора других процессоров на базе STM32 и даже простеньких пиков на Меге328. Ну зная архитектуру например PIC16F84 думаю что можно сэмулировать его на ATMEGA328 и прошивать его уже через среду ардуины вставив хекс от другого пика не расшифровывая его, ну и порты ввода вывода будут конечно другие, переназначены. Но это мне кажется извращение, техно-порно своего рода)))

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020

nik182 пишет:
Раскодиновать ещё как то можно, но в ардуину уже не воткнуть. Железо разное. Проще купить PIC и залить в него прошивку. Это будет быстрее и дешевле существенно. Услуги по программированию PIC можно найти.

Мне нужно только раскодировать и адаптировать для Ардуино нано и если останется место в памяти прописать спидометр и счётчик моточасов.

 

Gen.Aleks
Offline
Зарегистрирован: 03.04.2020

Запрограмировать PIC вообще не проблема тем более я сделал свой универсальный PIC програматор но это всё в прошлом Атмега у меня есть и она перспективней ну в смысле Ардуино нано.