Электроника средств транспорта Ремонт и разработка дополнительного автооборудования. Бортовые компьютеры и многое другое. |
09.07.2012, 15:16
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от hardlock
|
Аналоговые кнопки...
|
А как Вам такой код:
Код:
|
#include ‹tiny13.h›
#include ‹delay.h›
unsigned char joystick;
bit flag;
#define OutAuto DDRB.0 //Выход кнопки Auto
#define OutRest DDRB.1 //Выход кнопки Rest
#define OutUp DDRB.2 //Выход кнопки Up
#define OutDn DDRB.3 //Выход кнопки Down
#define ADC_VREF_TYPE 0x20
// Read the 8 most significant bits of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
void main(void)
{
ACSR=0x80;
#pragma optsize-
WDTCR=0x1D;
WDTCR=0x0D;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Global enable interrupts
#asm("sei")
//Initialization DAC
write_dac(read_adc(1));
while (1)
{
joystick=0.0158*read_adc(1)+1.41;
switch (joystick)// Выбор кнопки
{
case 1: //кнопка Auto
if (flag==0) //проверка что не нажаты другие кнопки
{
OutAuto = 1;
delay_us(10);
OutAuto = 0;
}
flag=1; //сброс флага кнопки
break;
case 2: //кнопка Reset
if (flag==0)
{
OutRest = 1;
delay_us(10);
OutRest = 1;
}
flag=1;
break;
case 3: //кнопка Up
if (flag==0) //однократное нажатие кнопки
{
OutUp = 1;
delay_us(10);
OutUp = 0;
flag=1;
}
if (flag==0) //длительное нажание кнопки (флаг не ставим)
{
OutUp = 1;
delay_us(10);
OutUp = 0;
}
break;
case 4: //кнопка Doun
if (flag==0)
{
OutDown = 1;
delay_us(10);
OutDown = 0;
flag=1;
}
if (flag==0)
{
OutDown = 1;
delay_us(10);
OutDown = 0;
}
break;
case 5: //не нежимаем кнопки
flag=0;
}
};
} |
Последний раз редактировалось Andry_MA; 09.07.2012 в 15:18.
|
|
|
|
09.07.2012, 15:20
|
|
Вид на жительство
Регистрация: 06.07.2006
Адрес: zp.ua
Сообщений: 393
Сказал спасибо: 2
Сказали Спасибо 21 раз(а) в 18 сообщении(ях)
|
Re: Самодельный круиз-контроль
Andry_MA, сложно и нет нужды. Да и кнопку надо держать не менее антидребезга в самом КК, т.к. 32мс. Да и такое ( joystick=0.0158*read_adc(3)+1.41; ) тиньке не под силу, и как задавать коридор значений? Вобщем там много вопросов. Код работает, зачем его трогать.
30 секунд назад поставил тиньку в основную плату. Всё работает прекрасно. Чуть уменьшил сремя таймера (до 10мс).
Код:
|
TCNT0=0xA2; // 20ms = 0xA2, 10ms = 0xD1 |
Теперь работа антидребезга в тиньке не заметна глазу. Нажатую кнопку при включении питания КК отрабатывает полностью нормально.
__________________
Сборный вариант Круизконтроля (by hardlock & Alex_Sss) - hardlock.org.ua/kk
Последний раз редактировалось hardlock; 09.07.2012 в 17:50.
|
|
|
|
09.07.2012, 15:37
|
|
Временная регистрация
Регистрация: 18.11.2011
Сообщений: 98
Сказал спасибо: 1
Сказали Спасибо 11 раз(а) в 6 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от hardlock
|
сложно и нет нужды. Да и кнопку надо держать не менее антидребезга в самом КК, т.к. 32мс. Да и такое ( joystick=0.0158*read_adc(3)+1.41; ) тиньке не под силу, и как задавать коридор значений? Вобщем там много вопросов. Код работает, зачем его трогать.
|
Ну насчёт сложно я бы не сказал.
Можно switch из main переместить.
joystick=0.0158*read_adc(3)+1.41 - простейшая формула которую тинька разжуёт на раз. В которой уже и задаётся короидор значений. Данная формула для четырёх-кнопочной клавиатуры. Я её использовал ( с другими коэффициентами) для шестикнопочной.
Работает идеально.
Ваш код работает, я ничего не имею против. Но вот мне он показался намного сложнее предложенного.
|
|
|
|
09.07.2012, 15:51
|
|
Прописка
Регистрация: 03.06.2012
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Самодельный круиз-контроль
Думаю - чем больше вариантов - тем лучше. Каждый сможет себе подобрать на свой вкус
|
|
|
|
09.07.2012, 15:54
|
|
Прописка
Регистрация: 31.05.2012
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Самодельный круиз-контроль
уважаемые форумчане объясните пожалуйста вот схема под атмега 88-168 можно ли в ней вместо 354nt поставить аот127 и вместо драйвера мотора L6203 поставить L298N а то 354nt и L6203 нету и даже на заказ нету . собрал схему с первой страницы теперь думаю какую атмегу купить 8 или 168 переделать под 168 недолго вот и спрашиваю.
|
|
|
|
09.07.2012, 16:33
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от vadim71
|
уважаемые форумчане объясните пожалуйста вот схема под атмега 88-168 можно ли в ней вместо 354nt поставить аот127 и вместо драйвера мотора L6203 поставить L298N а то 354nt и L6203 нету и даже на заказ нету . собрал схему с первой страницы теперь думаю какую атмегу купить 8 или 168 переделать под 168 недолго вот и спрашиваю.
|
Попробуй, может и получится ![Улыбка](images/smilies/icon_smile.gif) если что расскажешь
|
|
|
|
09.07.2012, 17:02
|
|
Вид на жительство
Регистрация: 06.07.2006
Адрес: zp.ua
Сообщений: 393
Сказал спасибо: 2
Сказали Спасибо 21 раз(а) в 18 сообщении(ях)
|
Re: Самодельный круиз-контроль
Итак, покатался с аналоговыми кнопками. Никакой разницы в управлении не заметил, только поменял время таймера на 10мс (теперь антидребезг 30мс). Одновременное нажатие нескольких кнопок в худшем случае воспринимается как нажатие "Авто" (т.к. у неё меньшее сопротивление). В худшем - никак, т.е. ни одна кнопка не эмулируется. Новая прошивка в предыдущем сообщении (со схемой).
Единственное замечание по подключению. Пробовал землю взять как и в случае с обычными кнопками - с рулевой колонки. Оказалось, что между рулевой колонкой и массой авто сопротивление около 300 Ом и скачет при прокручивании руля. Поэтому задействовал 2 провода и взял землю прямо на плате КК.
Сообщение от vadim71
|
вместо драйвера мотора L6203 поставить L298N
|
на него и вернулись, т.к. он дешевлее и дубовее. А в результате экспериментов спалили 2 штуки 6203 - очень обидно и дорого.
__________________
Сборный вариант Круизконтроля (by hardlock & Alex_Sss) - hardlock.org.ua/kk
Последний раз редактировалось hardlock; 09.07.2012 в 18:03.
|
|
|
|
09.07.2012, 18:46
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Обновлены пошивки для обоих версий КК, ссылка в подписи!
Сообщение от hardlock
|
на него и вернулись, т.к. он дешевлее и дубовее
|
Это Вы вернулись на них, я же остался, за все время экспериментов и эксплуатации, не одно мертвого, даже в других конструкциях!
Дорого, хм.. L298N - 103р, L6203 - 145р..
L298N - 46В/4 А (суммарный)
L6203 - 52В/5А
Последний раз редактировалось OKLiK; 09.07.2012 в 19:38.
|
|
|
|
09.07.2012, 20:05
|
|
Вид на жительство
Регистрация: 06.07.2006
Адрес: zp.ua
Сообщений: 393
Сказал спасибо: 2
Сказали Спасибо 21 раз(а) в 18 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от OKLiK
|
Дорого, хм.. L298N - 103р, L6203 - 145р..
|
у нас 26грн и 72грн соответственно.
Сообщение от OKLiK
|
L298N - 46В/4 А (суммарный)
L6203 - 52В/5А
|
а нам более 1А не надо, т.к. больше привода чем с моторедуктора точно не будет, а он хавает 1А при наших нагрузках. Я тоже хотел взять 6203 (типа он продвинутей и разводка проще), но оказалось, что они нежные. и диоды надо обязательно быстрые. Вот и вернулся на 298. Но то всё демогогия. Кому что доступно и нравится - на том и делает, т.к. свои функции они выполняют одинаково.
Сообщение от OKLiK
|
Обновлены пошивки
|
что нового, кроме изменений алгоритма измерения скорости? Можно где-то вести лог изменений, чтобы было всем видно?
__________________
Сборный вариант Круизконтроля (by hardlock & Alex_Sss) - hardlock.org.ua/kk
Последний раз редактировалось hardlock; 09.07.2012 в 20:07.
|
|
|
|
09.07.2012, 20:21
|
|
Гражданин KAZUS.RU
Регистрация: 08.05.2004
Адрес: Екатеринбург
Сообщений: 760
Сказал спасибо: 2
Сказали Спасибо 85 раз(а) в 82 сообщении(ях)
|
Re: Самодельный круиз-контроль
Сообщение от hardlock
|
что нового, кроме изменений алгоритма измерения скорости? Можно где-то вести лог изменений, чтобы было всем видно?
|
Так то ничего, по мелочи... фишка самоликвидации ну.. секрет ![Улыбка](images/smilies/icon_smile.gif) ))))
Ну а если серьезно то отключение ДХО кнопкой REST на стоящем автомобиле при скорости 0.
Лень вести лог событий изменений
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:24.
|
|