-
Re: Управление рулевыми кнопками при помощи Carduino.
Chip дома он мне нормально показывал из за этого кода
PHP код:
Serial.print(dt1,DEC);
Serial.print(" ");
Serial.println(dt2,DEC);
А в машине почему то нет, так я прошлый раз считывал значение кнопок, так сказать шлет коды нажатых кнопок в порт.
Разве я не прав?
-
Re: Управление рулевыми кнопками при помощи Carduino.
В предыдущем сообщении ничего о коде небыло сказано
-
Re: Управление рулевыми кнопками при помощи Carduino.
В скече он есть, только отключён.
Сначала включаешь его считываешь кнопки а потом можно опять отключить или удалить.
-
Re: Управление рулевыми кнопками при помощи Carduino.
После танцов с бубеном вернул прежнее сопротивление на 4.65 кило ом и пару кнопок заработало но не по назначению это в том случии если я не нахожусь в центре фуге а на главном экране (дестопе), в самой центре фуге не реагирует на кнопки.
Но не как не могу считать значения кнопок руля все ровно какие то каракули, может я в скрипте ошибся или что то не правильно делаю?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Решил сделать свой вклад с полным пособием Chip надеюсь ты одобришь.
Это для тех кто хочет сделать не вникая (сделал и забыл)
Для тех кто хочет что бы у него работали кнопки и к тому же можно было настроить часы как это у меня (Хонда Цивик + переходник для магнитолы что бы работал климат контроль).
Шах 1
Берем те 2 провода которые идут от кнопок руля не отсоединяем их от переходника, подключаем к ним параллельно 2 провода которые идут на ардуино по схеме.
А для тех у кого этого нет и не нужно просто 2 провода с кнопок руля по схеме с первой страницы.
http://img15.imageshack.us/img15/5126/nanobutton.jpg
место сопротивления 3.3 Ком как было на схеме первой страницы ставим переменный резистор (я свой выпаял с какого то блока сопротивление на тестере было от 0.12 до 84 Ком) нам не нужно большое сопротивление это будет зависеть от длины проводов к ардуино (у меня комп в багажнике).
Шах 2
Скачиваем программатор с офф сайта http://www.arduino.cc/en/Main/Software
распаковываем не важно куда.
Шаг 3
Подключаем Ардуино к компу и устанавливаем драйверы найти их можно тут http://www.google.ru/search?q=CDM+2....{moz:official}
Так же можно проверить если все драйвера установились успешно зайдя в диспетчер устройств.
Шаг 4
Желательно освободить все порты, отключить все не нужные вещи на время.
Открываем скачавшийся программатор ардуино и подключим его к нашему ардуино.
1. Нажимаем на Tools-->Board и выберем вашу модель ардуино.
2. Нажимаем на Tools-->Serial Port и выберем порт к которому подключён ардуино.
Можно узнать в диспетчере устройств-->Порты (Com LPT) нажать на плюс и там уведите ваше устройство а возле него написан на каком порте он подключён.
Шаг 5
Заливаем скетч тут у каждого разный работает может из за того что не все шаги были описаны понятно.
Я воспользуюсь скетчем от HAMSTERa
PHP код:
/// Для рулевых кнопок
// Задержки между нажатиями конкретных кнопок, миллисекунды
#define KEY_CH_MINUS_DELAY (200)
#define KEY_CH_PLUS_DELAY (200)
#define KEY_VOL_MINUS_DELAY (150)
#define KEY_VOL_PLUS_DELAY (150)
#define KEY_MODE_DELAY (300)
// Значения кнопок
#define KEY_CH_MINUS (175)
#define KEY_CH_PLUS (330)
#define KEY_VOL_MINUS (0)
#define KEY_VOL_PLUS (73)
#define KEY_MODE (530)
// Погрешность при чтении кнопок
#define KEY_DELTA (30)
// Коды кнопок, что отсылаем в порт внешней проге
#define CH_MINUS (1)
#define CH_PLUS (2)
#define VOL_MINUS (3)
#define VOL_PLUS (4)
#define MODE (5)
#define NONE (0)
unsigned long LastTimeKeyPressed = millis();
int LastKeyPressed = NONE;
void setup()
{
Serial.begin(9600);
}
void loop()
{
ReadSteering();
delay(50);
}
// Читает рулевые кнопки и пишет в порт код нажатой кнопки
void ReadSteering()
{
unsigned long TimeKeyPressed;
int KeyPressed = NONE;
int dt1 = analogRead(5);
delay(50);
int dt2 = analogRead(5);
if (abs(dt1-dt2)<=5 and dt1<900 ) //если нет дребезга и что-то есть
{
// Регистрируем время нажатия кнопки
TimeKeyPressed = millis();
//CH_MINUS
if ( (dt1-KEY_DELTA <= KEY_CH_MINUS) and (dt1+KEY_DELTA >= KEY_CH_MINUS) )
{
if ( (LastKeyPressed != CH_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_MINUS_DELAY) )
{
LastKeyPressed = CH_MINUS;
KeyPressed = CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
KeyPressed = CH_PLUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//VOL_MINUS
else if ( (dt1-KEY_DELTA <= KEY_VOL_MINUS) and (dt1+KEY_DELTA >=KEY_VOL_MINUS) )
{
if ( (LastKeyPressed != VOL_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_MINUS_DELAY) )
{
LastKeyPressed = VOL_MINUS;
KeyPressed = VOL_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//VOL_PLUS
else if ( (dt1-KEY_DELTA <= KEY_VOL_PLUS) and (dt1+KEY_DELTA >=KEY_VOL_PLUS) )
{
if ( (LastKeyPressed != VOL_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_PLUS_DELAY) )
{
LastKeyPressed = VOL_PLUS;
KeyPressed = VOL_PLUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//MODE
else if ( (dt1-KEY_DELTA <= KEY_MODE) and (dt1+KEY_DELTA >=KEY_MODE) )
{
if ( (LastKeyPressed != MODE) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_MODE_DELAY) )
{
LastKeyPressed = MODE;
KeyPressed = MODE;
LastTimeKeyPressed = TimeKeyPressed;
}
}
if (KeyPressed != NONE)
{
Serial.print(char(255));
Serial.print(KeyPressed,DEC);
}
Serial.print(dt1,DEC);
Serial.print(" ");
Serial.println(dt2,DEC);
}
}
Только нужно его изменить под вас а конкретно( на каком порте подключён ардуино, какая скорость) часто не обращают на это внимание а потом возникают ошибки (я лично из за того что не заметил что не тот порт написан бился об стенку пол часа)
PHP код:
Serial.begin(9600)
вместо 9600 впишите свою скорость порта узнать можно все там же в диспетчере устройств нажимает правой мишкой по вашему устройству-->Свойства-->Параметры порта-->Скорость, так же ее можно изменить на ту которая вам нужна.
PHP код:
int dt1 = analogRead(5);
int dt2 = analogRead(5);
Изменить вместо 5 поставить свой порт к которому подключён ардуино.
можно проверить на ошибки нажав на иконку ВИ (Компиляция)
Внизу напишет что все успешно прошло, если будут ошибки то он их напишет там же.
Шаг 6
Закачиваем скеч который мы отредактировали под себя нажатием кнопок на клавиатуре CTRL+U или же нажимаем на рисунок стрелочку в право.
Все должно пройти без проблем но если выдает ошибку типап не может сделать синхронизацию то прорвете выбрали вы правильный порт и правильное название вашего устройства.
Шаг 7
Нажимаем CTRL+SHIFT+M или Tools-->Serial Monitor, откроется новое окошко в котором мы будем смотреть какие значения выдают кнопки руля.
Для тех кто воспользовался схемой с первой страницы то это по проще просто нажимаем на любую кнопку руля и видим какое он дает значение будут маленькая погрешность это нормально записываем каждой кнопки значения где нибудь и переходим к следующему шагу.
Для тех кто воспользовался моей схемой.
Начинаем искать с какого сопротивления нажатия кнопок руля не дадут настраивать часы, поясню часы начинают настраиваться если долго зажать кнопку MODE оно дает определенное сопротивление (или диапазон), и если такое же сопротивление появиться то к примеру при нажатии кнопки добавить звук будет давать такое же сопротивление то каждый раз будет редактировать часы при этом нажатии, по этому будем искать при каком сопротивлении не будет вызывать настройку часов и будут работать все кнопки итак начнем.
Ставим самое маленькое сопротивление и начинаем нажимать
кнопки короткими затем долинными нажатиями видим что часы не затрагивает хорошо идем дальше.
Смотрим при каждом нажатии кнопки в Serial Monitor должно выдавать какое то значение если выдает значение каждой кнопке то значит записываем значение каждой кнопки и переходим к следующему шагу если не на всем кнопкам выдает значение то не расстраиваемся и подымаем сопротивление немножко и так до тех пор покамест не будет выдавать значение всех кнопок и они не будут реагировать на настройки часов.
Терпение и все получиться у меня это взяло около 2 минут.
Шаг 8
Все значения кнопок которые мы записали вставляем в тот же скетч которым мы прошивали ардуино.
PHP код:
// Значения кнопок
#define KEY_CH_MINUS (175)
#define KEY_CH_PLUS (330)
#define KEY_VOL_MINUS (0)
#define KEY_VOL_PLUS (73)
#define KEY_MODE (530)
меняем на те которые получили
в конце скрипта находим
PHP код:
Serial.print(dt1,DEC);
Serial.print(" ");
Serial.println(dt2,DEC);
и стираем эти строчки, или можно их отключить поставить в начале каждой строчкой // и видно будет сразу как они станут серими.
Вот так
PHP код:
// Serial.print(dt1,DEC);
// Serial.print(" ");
// Serial.println(dt2,DEC);
Теперь проверяем на ошибки и прошиваем.
Шаг 9
Я допишу завтра когда разберусь с Autohotkeys
-
Re: Управление рулевыми кнопками при помощи Carduino.
Добрый день. Подскажите, для arduino nano v3 как будет схема подключения кнопок выглядеть? Подключил все как в первом посте, джойстик sony rm-x2s, ардуино (hkey config) никак не реагирует на нажатия кнопок и подключение резистора напрямую вообще, тестером джойстик мерится как надо, сопротивление меняется.
Правда у меня резистор не 3.3 а 3.9кОм, конденсатор 0.01мкф. Это критично?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Программа работает только с Carduino
Нужно перепрошить дескриптор
-
Re: Управление рулевыми кнопками при помощи Carduino.
Chip, то есть сделать это?
Цитата:
Сообщение от
Jusper
Шаг 4
Желательно освободить все порты, отключить все не нужные вещи на время.
Открываем скачавшийся программатор ардуино и подключим его к нашему ардуино.
1. Нажимаем на Tools-->Board и выберем вашу модель ардуино.
2. Нажимаем на Tools-->Serial Port и выберем порт к которому подключён ардуино.
Можно узнать в диспетчере устройств-->Порты (Com LPT) нажать на плюс и там уведите ваше устройство а возле него написан на каком порте он подключён.
Шаг 5
Заливаем скетч тут у каждого разный работает может из за того что не все шаги были описаны понятно.
Или как?
-
Re: Управление рулевыми кнопками при помощи Carduino.
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
Спасибо, похоже, то что нужно
-
Re: Управление рулевыми кнопками при помощи Carduino.
Остановился на этом шаге:
Шаг 7
Нажимаем CTRL+SHIFT+M или Tools-->Serial Monitor, откроется новое окошко в котором мы будем смотреть какие значения выдают кнопки руля.
Для тех кто воспользовался схемой с первой страницы то это по проще просто нажимаем на любую кнопку руля и видим какое он дает значение будут маленькая погрешность это нормально записываем каждой кнопки значения где нибудь и переходим к следующему шагу.
нажимаю на кнопки, не реагирует, а сами появляются значения:
754 752
608 613
617 618
783 779
783 787
737 739
779 779
787 785
и т.д.
Что не так?
-
Re: Управление рулевыми кнопками при помощи Carduino.
У Вас кнопки резистивные ? Есть схема разъемов штатной магнитолы?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Схему найти не могу, kia rio
-
Вложений: 1
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
У Вас кнопки резистивные ? Есть схема разъемов штатной магнитолы?
http://kiarioclub.ru/forums/index.php?showtopic=7266
и вот еще нашел что-то:
Вложение 15939
использую вот эту ардуинку: http://carmonitor.ru/ru/carduinonanoduo-p-120.html
Делаю на домашнем пк...
-
Re: Управление рулевыми кнопками при помощи Carduino.
Скажите, а у всех так весьма задумчиво работает опрос кнопок?
Имею в виду, что жать приходится подолгу, видимо частота опроса очень низкая.
что-то уже хочется снять эту штуку и попробовать сделать адаптер тупо из какой-нибудь компьютерной клавы...
-
Re: Управление рулевыми кнопками при помощи Carduino.
Реакция должна быть такой же как и при нажатии на клавиатуре.
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Dyachuk.aa
На Вашей схеме нет информации о кнопках
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
На Вашей схеме нет информации о кнопках
Как мне решить эту проблему?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Проверить можно тестером. Нажимать кнопки и записать какие при этом будут на тестере показания
-
Re: Управление рулевыми кнопками при помощи Carduino.
Chip
а есть исходники HotKey? если можно, хотел бы их получить, хочу прикрутить ещё rotary encoder.
-
Re: Управление рулевыми кнопками при помощи Carduino.
Les1at, +1
Тоже энкодер прикручиваю.
Chip,
расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш. здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Les1at
Chip
а есть исходники HotKey? если можно, хотел бы их получить, хочу прикрутить ещё rotary encoder.
Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
manu_245
Chip,
расскажи, пожалуйста, как в Hotkey реализована функция нажатия клавиш.
здесь я что-то написал, но кривовато получилось. кнопки работают, но не отображаются при настройке клавиш в центрифуге например.
В key1 код клавиши
key1 : LongWord;
keybd_event((key1), 0,0,0); // нажать на клавишу
keybd_event((key1), 0,KEYEVENTF_KEYUP,0); //отпустить клавишу
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
Для подключения энкодера не нужно править программу, достаточно прописать функцию работы с энкодером в коде Arduino
так и сделал, на примере
http://www.compcar.ru/forum/showthre...?t=4640&page=8
Цитата:
// Для рулевых кнопок
// Задержки между нажатиями конкретных кнопок, миллисекунды
#define KEY_CH_MINUS_DELAY (200)
#define KEY_CH_PLUS_DELAY (200)
#define KEY_VOL_MINUS_DELAY (150)
#define KEY_VOL_PLUS_DELAY (150)
#define KEY_MODE_DELAY (300)
// Значения кнопок
#define KEY_CH_MINUS (445)
#define KEY_CH_PLUS (640)
#define KEY_VOL_MINUS (90)
#define KEY_VOL_PLUS (270)
#define KEY_MODE (805)
// Погрешность при чтении кнопок
#define KEY_DELTA (30)
// Коды кнопок, что отсылаем в порт внешней проге
#define CH_MINUS (1)
#define CH_PLUS (2)
#define VOL_MINUS (3)
#define VOL_PLUS (4)
#define MODE (5)
#define NONE (0)
unsigned long LastTimeKeyPressed = millis();
int LastKeyPressed = NONE;
void setup()
{
Serial.begin(57600);
}
void loop()
{
ReadSteering();
delay(50);
}
// Читает рулевые кнопки и пишет в порт код нажатой кнопки
void ReadSteering()
{
unsigned long TimeKeyPressed;
int KeyPressed = NONE;
int dt1 = analogRead(0);
delay(50);
int dt2 = analogRead(0);
if (abs(dt1-dt2)<=5 and dt1<900 ) //если нет дребезга и что-то есть
{
// Регистрируем время нажатия кнопки
TimeKeyPressed = millis();
//CH_MINUS
if ( (dt1-KEY_DELTA <= KEY_CH_MINUS) and (dt1+KEY_DELTA >= KEY_CH_MINUS) )
{
if ( (LastKeyPressed != CH_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_MINUS_DELAY) )
{
LastKeyPressed = CH_MINUS;
KeyPressed = CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
KeyPressed = CH_PLUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//VOL_MINUS
else if ( (dt1-KEY_DELTA <= KEY_VOL_MINUS) and (dt1+KEY_DELTA >=KEY_VOL_MINUS) )
{
if ( (LastKeyPressed != VOL_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_MINUS_DELAY) )
{
LastKeyPressed = VOL_MINUS;
KeyPressed = VOL_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//VOL_PLUS
else if ( (dt1-KEY_DELTA <= KEY_VOL_PLUS) and (dt1+KEY_DELTA >=KEY_VOL_PLUS) )
{
if ( (LastKeyPressed != VOL_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_VOL_PLUS_DELAY) )
{
LastKeyPressed = VOL_PLUS;
KeyPressed = VOL_PLUS;
LastTimeKeyPressed = TimeKeyPressed;
}
}
//MODE
else if ( (dt1-KEY_DELTA <= KEY_MODE) and (dt1+KEY_DELTA >=KEY_MODE) )
{
if ( (LastKeyPressed != MODE) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_MODE_DELAY) )
{
LastKeyPressed = MODE;
KeyPressed = MODE;
LastTimeKeyPressed = TimeKeyPressed;
}
}
if (KeyPressed != NONE)
{
Serial.print(char(255));
Serial.print(KeyPressed,DEC);
}
//Serial.print(dt1,DEC);
//Serial.print(" ");
//Serial.println(dt2,DEC);
}
}
-
Re: Управление рулевыми кнопками при помощи Carduino.
Chip, спасибо. Все получилось
-
Re: Управление рулевыми кнопками при помощи Carduino.
Еще забыл написать, нужно паузу между нажатием и отпусканием выдержать 10-30 мс
-
Re: Управление рулевыми кнопками при помощи Carduino.
Добрый день. Подскажите возможно ли параллельная работа рулевых кнопок со штатной магнитолой и carduino?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Возможна поле небольшой модернизации, но команды запрограммированные на кнопки будут выполнятся на обоих устройствах
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
Возможна поле небольшой модернизации, но команды запрограммированные на кнопки будут выполнятся на обоих устройствах
Сейчас на одном выводе с кнопок висит 0В, на втором 4,5В. при нажатии одной кнопки 1,75В, другой 2,65. их и надо завести в ПК. когда на штатной магнитоле включен вход aux, то кнопки вперед-назад ни на на что не влияют, их и надо завести на ПК.
То есть мне надо просто убрать подтягивающий резистор на +пит, а вот что делать с общим проводом? если его подключить то получиться земляная петля, а если не подключать то в принципе ведь должно работать?
Задам вопрос еще здесь. если я преобрету JoyStick здесь, то мне тоже как бы надо будет его модернизировать получается?
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
То есть мне надо просто убрать подтягивающий резистор на +пит
Да
Цитата:
а вот что делать с общим проводом? если его подключить то получиться земляная петля, а если не подключать то в принципе ведь должно работать?
Должно работать если питание компа подключено аккумулятору и без гальванической развязки
Цитата:
если я преобрету JoyStick здесь, то мне тоже как бы надо будет его модернизировать получается?
Да
-
Re: Управление рулевыми кнопками при помощи Carduino.
Я дико извиняюсь. Собрал - все работает. Спасибо чипу за труды!
У меня вопрос : Я не использую оболочек типа центрифуги итд - просто win7. Нужно организовать переключение между окнами, комбинация alt-TAB или win-TAB. Только как бы сделать так, чтоб при удержании кнопки на руле alt зажимался, а TAB перебирался допустим раз в секунду - как дойдет до нужного окна - кнопку отпускаем. Возможно такое добавить в скетч?
-
Re: Управление рулевыми кнопками при помощи Carduino.
А можно еще добавить такую функцию. Когда жмем на руле кнопку, ардуино узнает эту кнопку ( из двух возможных) и замыкает два контакта, либо два раза подряд либо три? Чтоб было понятней, это я хочу сделать переключение трэков в машине на айпэде, когда айпэд подключен по аукс, два нажатия-вперед, три нажатия-назад
-
Re: Управление рулевыми кнопками при помощи Carduino.
Всем доброго времени суток!
А кто нибудь подключал сие на мазде 3 2007гв? У меня при подключении Arduino Nano V.7 к carPC она как будто зависает и не реагирует на нажатие кнопок. Попробовал на ноуте все норм. Подскажите что может быть? Может у кого есть опыт?
-
Re: Управление рулевыми кнопками при помощи Carduino.
может кто помочь? имеется на руле четыре группы резистивных кнопок по 4 кнопки.
можно ли с помощью carduino сделать что бы кнопки управляли реле(ну или просто транзисторный ключ).получается нужно 4 входа,и 16 выходов...
-
Re: Управление рулевыми кнопками при помощи Carduino.
Управлять можно
Кнопки можно объединить
-
Re: Управление рулевыми кнопками при помощи Carduino.
еще бы помог кто программку написать... на 16 кнопок...
-
Re: Управление рулевыми кнопками при помощи Carduino.
поможите кто нить с написанием программы(не безвозмездно). сопротивление кнопок измерить не проблема,а вот в программировании не силен вообще.
кнопок в итоге 14
-
Re: Управление рулевыми кнопками при помощи Carduino.
#define PIN 0 //номер аналогового порта
#define LIMIT 6 //предел погрешности сопротивления
#define A1 12
#define A2 13
#define A3 13
#define A4 14
#define A5 15
#define A6 16
byte bytes[2];
int res_dt1;
unsigned long math_time,old_time,real_time;
void setup()
{
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A6, OUTPUT);
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
old_time = real_time;
math_time = 0;
res_dt1 = analogRead(PIN); // прочитать данные АЦП
while(math_time < 300 && (analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT ))
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность паузы
}
if( math_time > 80 ) //если нет дребезга
{
if (res_dt1>369 && res_dt1<380) digitalWrite(A2,HIGH );
delay(30);
digitalWrite(A2, LOW);
if (res_dt1>165 && res_dt1<175) digitalWrite(A3,HIGH );
delay(30);
digitalWrite(A3, LOW);
if (res_dt1>70 && res_dt1<85) digitalWrite(A4,HIGH );
delay(30);
digitalWrite(A4, LOW);
if (res_dt1>30 && res_dt1<40) digitalWrite(A5,HIGH );
if (res_dt1>0 && res_dt1<3) digitalWrite(A5,LOW);
if (res_dt1>1 && res_dt1<3) digitalWrite(A6,HIGH );
delay(30);
digitalWrite(A6, LOW);
bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
bytes[1] = (res_dt1 & 768) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
}
}
кто разбирается,проверьте пожалуйста.
будет работать? мне нужно рулевыми кнопками управлять реле.
сопротивление-
не нажато-10кОм
1кн-3.73кОм
2кн-1.70кОм
3кн-0.78кОм
4кн-0.36кОм
5кн-0.10кОм
ну и попутно компом управлять...
-
Re: Управление рулевыми кнопками при помощи Carduino.
PIN 9 не может быть аналоговым, это цифровой вывод
пины А0-А7 это аналоговые пины
-
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
PIN 9 не может быть аналоговым, это цифровой вывод
пины А0-А7 это аналоговые пины
исправил,что еще неправильно?скетч не заливается,выдает ошибку. не силен я в написании вообще...