![]() |
![]() |
#1 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
После первой неудачи долго не мог придумать альтернативу...
Но, мой творческий кризис прервал Легранд серия Etika (некоторые размеры внизу сообщения). Воткнув 4 кнопки в макетку, я полгода смотрел на них, не зная чем их накрыть. (кнопки из комплекта к китайской ардуине УНО) Взяв в руки клавишу от выключателя, я внезапно понял, что она идеально накрывает кнопки (кнопки говно!), а ее выступы изумительно клацкают кнопками! Итак выключатель раскурочен, и это нам будет нужно: красным обведены места подрезки, чтобы плата вошла глубже. На клавише видны выступы, которой она клацает по выключателям. Т.к. клавиша держится за механизм, который я удалил, пришлось вклеить 4 стальных штырька. Рамка прижмет клавишу за штырьки и не даст ей выпадать.Для разметки мест внедрения штырьков я зафиксировал клавишу малярным скотчем с лицевой стороны. отверстия под штырки сверлил 1мм. Штырьки очень прочные, палку 5 см пальцами не согнуть, из нее и нарезал. А вот это мусор, оставшийся от выключателя: задолбался подгонять макетку под центральное углубление, обратите внимание, у моих кнопок нажимается не только центральный квадрат, но и весь черный круг. На выступающие квадраты садится клавиша, а нажатие происходит на круги. Т.к. внутри тесно и глубоко, выступающие части подрезал обломком канцелярского ножа, зажатого в пассатижи поперёк (дико неудобно, но альтернативу не придумал) Плата внедрена, и вроде даже щелкает. надеюсь будет работать, а я пойду паять (где-то тут я видел подключение кнопок через резисторный делитель к одному порту дуины)... Добавлю характеристик. Вдруг кому понадобится: размер "маленькой" платы (как у меня): 41х27мм Глубина (относительно "бортиков") до углублений: 9мм высота бортика (вокруг платы): 3мм Глубина в углублениях относительно "дна": 8мм Последний раз редактировалось Tohin; 29.01.2017 в 11:01. |
![]() |
![]() |
![]() |
#2 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Напаял на плату 5 шт резисторов 1 кОм, по схеме
и встал вопрос: А как выглядит analog.read на чистом С? Как обычно и полагается в таких случаях - я погуглил... Так как вопрос мной сформулирован криво, гуглил я долго, но таки нашел: Код:
#include <avr/io.h> #define PORT_ON(port,pin) port |= (1<<pin) //классные кстати дефайны, надо бы запомнить. #define PORT_OFF(port,pin) port &= ~(1<<pin) int main(void) { unsigned int adc_value; // Variable to hold ADC result DDRD=0xff; // Set Port D as Output PORTD = 0x00; ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0); // ADEN: Set to turn on ADC , by default it is turned off - тут понятно //ADPS2: ADPS2 and ADPS0 set to make division factor 32 - А вот тут непонятно! Что это и зачем? ADMUX=0x05; // ADC input channel set to PC5 Опять не очень понятно, а если у меня 2 независимых входа? while (1) { ADCSRA |= (1<<ADSC); // Start conversion while (ADCSRA & (1<<ADSC)); // wait for conversion to complete adc_value = ADCW; //Store ADC value if (adc_value < 512) { PORT_OFF(PORTD,7); // Toggle LEDs PORT_ON (PORTD,6); } else { PORT_ON(PORTD,7); // Toggle LEDs PORT_OFF (PORTD,6); } } } Пока пойду попробую маны почитать.... |
![]() |
![]() |
![]() |
#3 | |||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#4 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Читал я даташит, читал... но ничего не понял...
Вот это предделитель частоты семплирования что такое? Мне показалось, что это как то влияет на длительность замера... Какое значение предделителя лучше для моей задачи? А это Одиночное преобразование запускается путем записи лог. 1 в бит запуска преобразования ADC ADSC, то есть есть еще и непрерывное преобразование? Ну и на сладкое, ADCW- содержит результат преобразования, а если в ADMUX=0xFF, то что я увижу в ADCW? Усредненное для всех портов? Как долго хранится значение в ADCW? до следующего измерения? Если янапишу так: Код:
if (!(ADCSRA & (1<<ADSC))){ // if conversion complete adc_value = ADCW; //Store ADC value ADCSRA |= (1<<ADSC); // Start new conversion } |
![]() |
![]() |
![]() |
#5 | ||||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
![]() |
![]() |
#6 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Это плохая идея. Очень близкие значения для кнопок. в дополнении к некачественным тактовым кнопкам бывают ложные срабатывания (то есть жму кнопку 2, а отрабатывает кнопка 3 или даже 4.)
Вообще, насколько резистивные кнопки надежны? Нужно просчитать номиналы точнее или этот головняк не стоит того? |
![]() |
![]() |
![]() |
#7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
по 200 Ом напаяй
По входк поставь керамический конденсатор 0,1мкФ есть хороший рабочий пример для чтения резистивных кнопок http://compcar.ru/forum/showthread.p...7533#post87533 |
![]() |
![]() |
![]() |
#8 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Нашел схему дисплея для ардуины с 4 резистивными кнопками.
Взял номиналы оттуда. В качестве донора резисторов была только плата с мелкими smd. Обжог кучу пальцев и отломал контакы у 4 резисторов... Благо резисторов на плате-доноре было много Собрал, и вот облом. Пайка с нижней стороны платы упирается во внутренности выключателя и крышка не закрывается... Опять надоело терять на это время... UPD: И дрябезг у этих кнопок просто дикий... Хотя может это и у всех так... Последний раз редактировалось Tohin; 15.01.2017 в 14:08. |
![]() |
![]() |
![]() |
#9 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Такой жести я не ожидал... я месяц бился с программным подавлением дрябезга. И матерился на свои прямые извилины.
И вот решил прозвонить кнопки обычным тестером: После щелчка замыкания контакта НЕ ПРОИСХОДИТ!!! нужно продавливать кнопку с усилием, тогда контакты замыкаются... Естественно, что пока плата в руках - почти все норм: одно ложное срабатывание на десяток нажатий. А вот как только ставишь в корпус, и-за неточностей усилия недостаточно, и начинает мигать новогодняя гирлянда, под треск реле... |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Tohin
Цитата:
Кнопки новые, брак или б/у ? Надежнее брать в России.. Дороже, но качество нормальное можно подобрать например у них https://www.chipdip.ru/search?search...BA%D0%B0&auc=1 === На али можно мешок перебрать, пока подберешь ![]() Например покупая вот это: https://ru.aliexpress.com/item/Free-...9-30f0775a23f3 Переменный резистор - лучше менять сразу. Иначе очень быстро, неадекватность его работы начинает сильно раздражать ![]() |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|