![]() |
|
|
#351 | |
|
Старший Пользователь
![]() Регистрация: 08.11.2005
Возраст: 53
Город: Пыть-Ях
Регион: 86
Машина: Toyota RAV4 2008
Сообщений: 342
![]() ![]() ![]() |
Цитата:
|
|
|
|
|
|
|
#352 |
|
Administrator
![]() Регистрация: 15.06.2005
Город: Москва
Регион: 77, 97, 99, 177
Машина: Lexus RX400h
Сообщений: 838
![]() ![]() ![]() ![]() ![]() ![]() |
580, 320, 510 тоже самое что и было
__________________
Все для arduino. |
|
|
|
|
|
#353 | |
|
Бывалый писикарщик
![]() Регистрация: 23.04.2009
Возраст: 54
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Теперь вроде видно порядок смены значений, вечерком повнимательнее проанализирую и и скажу какие значения и где изменить
Цитата:
__________________
Opel Zafira B --- ГАЗ 21 ВОЛГА в 21 веке --- Скин OpelZafira для RideRunner --- Скин CFStyle для RideRunner Плагин RRCheckEngine --- CFStyle для iCar DS --- iCarVOBD --- iCarDuino --- iCarCoreTemp --- iCarNotes --- iCarVoiceCommander |
|
|
|
|
|
|
#354 |
|
Бывалый писикарщик
![]() Регистрация: 23.04.2009
Возраст: 54
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
2 folv
Попробуй такую процедуру для энкодера Код:
void encoder_1()
{
if( encoder1_key_millis + encoder1_key_wait_millis*2 < millis() ) { encoder1_key_old = 0; }
if( encoder1_millis + encoder1_wait_millis < millis() )
{
encoder1_millis = millis();
encoder1_dt = analogRead(ENCODER1_PIN); // прочитать данные АЦП
if( encoder1_dt >= 0x224 && encoder1_dt <= 0x264 )
{ // Здесь обрабатываем удержание кнопки
encoder1_key = ENCODER1_PIN;
encoder1_key = (encoder1_key << 16) | 0x030000EE;
if ( encoder1_key == encoder1_key_old )
{ // Здесь обрабатываем удержание кнопки
if( encoder1_key_millis + encoder1_key_wait_millis < millis() )
{
bytes[0] = encoder1_key & 0xFF; // преобразовать в 4-байта
bytes[1] = (encoder1_key & 0xFF00) >> 8;
bytes[2] = (encoder1_key & 0xFF0000) >> 16;
bytes[3] = (encoder1_key & 0xFF000000) >> 24;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру
encoder1_key_millis = millis(); encoder1_key_wait_millis = encoder1_key_wait; //ir_wait_next;
}
}
else
{ // Здесь обрабатываем первое нажатие кнопки
encoder1_key_millis = millis(); encoder1_key_wait_millis = 50; //ir_wait_first;
}
encoder1_key_old = encoder1_key;
}
else
{
if( encoder1_dt >= 0x3C0 && encoder1_dt <= 0x3FF && encoder1_key3 != 1 )
{
if( (encoder1_key2 == 2) && (encoder1_key3 == 3))
{
bytes[0] = 0xEE; // преобразовать в 2-байта
bytes[1] = 0;
bytes[2] = ENCODER1_PIN;
bytes[3] = 1;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру
}
else
{
if( (encoder1_key2 == 3) && (encoder1_key3 == 2) )
{
bytes[0] = 0xEE; // преобразовать в 2-байта
bytes[1] = 0;
bytes[2] = ENCODER1_PIN;
bytes[3] = 2;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру
}
}
encoder1_key1=encoder1_key2; encoder1_key2=encoder1_key3; encoder1_key3=1;
}
else
{
if( encoder1_dt >= 0xC3 && encoder1_dt <= 0x113 && encoder1_key3 != 2 )
{
encoder1_key1=encoder1_key2; encoder1_key2=encoder1_key3; encoder1_key3=2;
}
else
{
if( encoder1_dt >= 0x120 && encoder1_dt <= 0x160 && encoder1_key3 != 3 )
{
encoder1_key1=encoder1_key2; encoder1_key2=encoder1_key3; encoder1_key3=3;
}
}
}
}
}
}
И ещё в адуино V.7 лучше вешать на аналоговый пин №7 резестивные кнопки. А энкодеры на 5 и 6-й пин.
__________________
Opel Zafira B --- ГАЗ 21 ВОЛГА в 21 веке --- Скин OpelZafira для RideRunner --- Скин CFStyle для RideRunner Плагин RRCheckEngine --- CFStyle для iCar DS --- iCarVOBD --- iCarDuino --- iCarCoreTemp --- iCarNotes --- iCarVoiceCommander |
|
|
|
|
|
#355 | |
|
Старший Пользователь
![]() Регистрация: 08.11.2005
Возраст: 53
Город: Пыть-Ях
Регион: 86
Машина: Toyota RAV4 2008
Сообщений: 342
![]() ![]() ![]() |
Цитата:
![]() в адуино V.7 сразу переписал PHP код:
Последний раз редактировалось Bersenev; 28.12.2012 в 10:51. |
|
|
|
|
|
|
#356 |
|
Старший Пользователь
![]() Регистрация: 08.11.2005
Возраст: 53
Город: Пыть-Ях
Регион: 86
Машина: Toyota RAV4 2008
Сообщений: 342
![]() ![]() ![]() |
1. Можно вопросик ели это не секрет
![]() if( encoder1_dt >= 0x224 && encoder1_dt <= 0x264 ) - это для кнопки я понял как вычислить А для вращения в влево и право - не допонял эти значения if( encoder1_dt >= 0x3C0 && encoder1_dt <= 0x3FF && encoder1_key3 != 1 ) if( encoder1_dt >= 0xC3 && encoder1_dt <= 0x113 && encoder1_key3 != 2 ) if( encoder1_dt >= 0x120 && encoder1_dt <= 0x160 && encoder1_key3 != 3 ) 2. Длина проводов до енкодора кретична или нет? |
|
|
|
|
|
#357 |
|
Бывалый писикарщик
![]() Регистрация: 23.04.2009
Возраст: 54
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
if( encoder1_dt >= 0x3C0 && encoder1_dt <= 0x3FF && encoder1_key3 != 1 ) - 3FF выдаётся когда в энкодер находится в нулевом положении, когда не нажата ни одна кнопка. Но в связи с тем что и в этом положении бывает дребезг (видно из скриншотов), то задаём некоторый диапозон задав минимальное значение 3C0 if( encoder1_dt >= 0xC3 && encoder1_dt <= 0x113 && encoder1_key3 != 2 ) if( encoder1_dt >= 0x120 && encoder1_dt <= 0x160 && encoder1_key3 != 3 ) При повороте в одну сторону у тебя происходит выдача таких значений 3FF -- F3 -- 140 -- 3FF, а в другую 3FF -- 140 --F3 -- 3FF. Отсюда и диапазон для F3 (C3 - 113), а для 140 (120 - 160). Разумеется всё в шестнадцатеричной системе При тестах были метровые провода, всё работало без сбоев
__________________
Opel Zafira B --- ГАЗ 21 ВОЛГА в 21 веке --- Скин OpelZafira для RideRunner --- Скин CFStyle для RideRunner Плагин RRCheckEngine --- CFStyle для iCar DS --- iCarVOBD --- iCarDuino --- iCarCoreTemp --- iCarNotes --- iCarVoiceCommander |
|
|
|
|
|
#358 |
|
Старший Пользователь
![]() Регистрация: 08.11.2005
Возраст: 53
Город: Пыть-Ях
Регион: 86
Машина: Toyota RAV4 2008
Сообщений: 342
![]() ![]() ![]() |
Данный скетч из шапки на ардуино Nano V.4 не помещается - большой размер
|
|
|
|
|
|
#359 |
|
Старший Пользователь
![]() Регистрация: 08.11.2005
Возраст: 53
Город: Пыть-Ях
Регион: 86
Машина: Toyota RAV4 2008
Сообщений: 342
![]() ![]() ![]() |
А в этом плагине реализовано - двойное нажатие и поворот с нажатием?
|
|
|
|
|
|
#360 |
|
Бывалый писикарщик
![]() Регистрация: 23.04.2009
Возраст: 54
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Можно выкинуть из скетча код не используемых функций
__________________
Opel Zafira B --- ГАЗ 21 ВОЛГА в 21 веке --- Скин OpelZafira для RideRunner --- Скин CFStyle для RideRunner Плагин RRCheckEngine --- CFStyle для iCar DS --- iCarVOBD --- iCarDuino --- iCarCoreTemp --- iCarNotes --- iCarVoiceCommander |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|