Форум РадиоКот • Просмотр темы - Опрос кнопок микроконтроллером
Сообщения без ответов | Активные темы
Страница 26 из 26
[ Сообщений: 509 ]
... , , , ,
Автор
Сообщение
Уош
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Пт май 02, 2025 17:45:48
Зарегистрирован: Вс мар 23, 2025 14:56:55Сообщений: 700
Рейтинг сообщения: 0
ну дык!. оптика, магниты... но цена. жалею, что не собирал раньше старые мышки шариковые. Ща бы в поделки была бы кучка оптических энкодеров, а не китайское механическое унылое г...
Вернуться наверх
Реклама
Gudd-Head
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Пт май 02, 2025 18:08:47
Друг Кота
Карма: 67
Рейтинг сообщений: 1066
Зарегистрирован: Чт сен 18, 2008 12:27:21Сообщений: 20025Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Магниторезитор заменить цифровым датчиком Холла, они вроде есть в обычных кулерах (переключают обмотки).
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Вернуться наверх
Реклама
Just_Fluffy
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 09:19:41
Вымогатель припоя
Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45Сообщений: 525
Рейтинг сообщения: 0
Уош , там слесарить еще надо, что б нормально энкодер сделать
_________________Белая и Пушистая
Вернуться наверх
OKF
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 10:22:45
Это не хвост, это антенна
Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18Сообщений: 1323
Рейтинг сообщения: 0
Опять кнопки.) Давеча китайские часы модифицировал. А там аж 5 аналоговых. Пришлось выборочно с некоторыми работать.
Спойлер Код:
// analogue key #include "adc.h" #define KEY C,7,H //A7 //key: ALARM MODE LIGHT UP DOWN //adc min level #define KEY_ALARM_LEVEL 80 //4 #define KEY_MODE_LEVEL 230 //98 #define KEY_UP_LEVEL 330 //241 #define KEY_DOWN_LEVEL 410 //347 #define KEY_LIGHT_LEVEL 500 //427 #define KEY_ALARM (1<<0) //code #define KEY_MODE (1<<1) #define KEY_UP (1<<2) #define KEY_DOWN (1<<3) #define KEY_LIGHT (1<<4) #define LONG_BIT (1<<5) #define REPEAT_BIT (1<<6) #define KEY_ALARM_LONG (KEY_ALARM | LONG_BIT) #define KEY_MODE_LONG (KEY_MODE | LONG_BIT) #define KEY_LIGHT_LONG (KEY_LIGHT | LONG_BIT) #define KEY_UP_LONG (KEY_UP | LONG_BIT) #define KEY_DOWN_LONG (KEY_DOWN | LONG_BIT) #define KEY_UP_REPEAT (KEY_UP | LONG_BIT | REPEAT_BIT) #define KEY_DOWN_REPEAT (KEY_DOWN | LONG_BIT | REPEAT_BIT) #define DEBOUNCE_TIME 50 //short #define REPEAT_DELAY 800 //long - задержка перед LONG #define REPEAT_TIME 100 //repeat long - автоповтор при LONG #define key_init() //adcInit(); // однократный опрос, на выходе: код кнопки inline uint8_t get_key() { uint16_t adc = getAdc(_bn(KEY)); // if (adc < 1000) { con_int(adc); con_write(' '); } //DEBUG if (adc < KEY_ALARM_LEVEL) return KEY_ALARM; if (adc < KEY_MODE_LEVEL) return KEY_MODE; if (adc < KEY_UP_LEVEL) return KEY_UP; if (adc < KEY_DOWN_LEVEL) return KEY_DOWN; if (adc < KEY_LIGHT_LEVEL) return KEY_LIGHT; return 0; } uint8_t key();
Не аккуратненько. Но для сельской местности сойдёт.)
Спойлер Код:
#include "main.h" #include "akey.h" // SHORT - при отжатии, LONG - при нажатии, LONG REPEAT (UP/DOWN) - при удержании uint8_t key() { typedef enum {SHORT, LONG, LONG_LONG} state_t; static state_t state; static uint8_t short_key; static uint16_t timer; uint8_t k = get_key(); for_change(k) //change timer = ms2sys(DEBOUNCE_TIME); if (timer) --timer; else if (k) { if (state == SHORT) { //начало нажатия state = LONG; short_key = k; //запомним для отжатия timer = ms2sys(REPEAT_DELAY - DEBOUNCE_TIME) - 1; } else if (state == LONG) { //длинное нажатие state = LONG_LONG; timer = ms2sys(REPEAT_TIME) - 1; short_key = 0; //wo press return k | LONG_BIT; } else if (k & (KEY_UP | KEY_DOWN)) { //повтор только для UP/DOWN! timer = ms2sys(REPEAT_TIME) - 1; return k; } } else if (state != SHORT) { //released state = SHORT; return short_key; //0 after a long } return 0; }
Вернуться наверх
Реклама
Уош
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 14:04:16
Зарегистрирован: Вс мар 23, 2025 14:56:55Сообщений: 700
Рейтинг сообщения: 0
Уош , там слесарить еще надо, что б нормально энкодер сделать
у нас всё продумано: чпу-станочек
Вернуться наверх
Реклама
BorMot
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 14:57:04
Нашел транзистор. Понюхал.
Зарегистрирован: Пн сен 23, 2024 07:37:53Сообщений: 169
Рейтинг сообщения: 0
Вернуться наверх
Реклама
Just_Fluffy
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 15:43:55
Вымогатель припоя
Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45Сообщений: 525
Рейтинг сообщения: 0
BorMot , так в основном механика - самое геморойное в таких штуках.
_________________Белая и Пушистая
Вернуться наверх
Уош
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 16:00:04
Зарегистрирован: Вс мар 23, 2025 14:56:55Сообщений: 700
Рейтинг сообщения: 0
BorMot , мыши были бесплатно ) а так-то всё можно купить. Есть и неубиваемые оптические энкодеры в продаже, промышленные, неардуинные и нечипдипные
Вернуться наверх
BorMot
Заголовок сообщения: Re: Опрос кнопок микроконтроллером
Добавлено: Сб май 03, 2025 16:12:16
Нашел транзистор. Понюхал.
Зарегистрирован: Пн сен 23, 2024 07:37:53Сообщений: 169
Рейтинг сообщения: 0
Что до механики в тех мышах, так это просто слёзы. Диск дырчатый пластиковый, одно целое с валом, и это всё вставлялось в пластиковые же "подшипники" путём вдавливания за счёт упругости материала. Диск в любом случае пришлось бы переделывать по числу дырок или собачить редуктор, а это уже действительно механика. При наличии же станка ЧПУ не стоит об этом и говорить.
А что до бесплатности, я свои мыши покупал а не расхищал на рабочем месте. Расхищал я шаговые двигатели
, вернее спасал от вторчермета. Итого, имеем 2 оптодатчика на одну мышь, эквивалент 160 рублей. Стоит ли оно сожаления?
Вернуться наверх
Реклама
Страница 26 из 26
[ Сообщений: 509 ]
... , , , ,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения