Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.12.2016, 20:12   #1
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию настенный выключатель (дубль два)

После первой неудачи долго не мог придумать альтернативу...
Но, мой творческий кризис прервал Легранд серия Etika (некоторые размеры внизу сообщения).
Воткнув 4 кнопки в макетку, я полгода смотрел на них, не зная чем их накрыть. (кнопки из комплекта к китайской ардуине УНО)
Взяв в руки клавишу от выключателя, я внезапно понял, что она идеально накрывает кнопки (кнопки говно!), а ее выступы изумительно клацкают кнопками!
Итак выключатель раскурочен, и это нам будет нужно:

красным обведены места подрезки, чтобы плата вошла глубже.
На клавише видны выступы, которой она клацает по выключателям.

Т.к. клавиша держится за механизм, который я удалил, пришлось вклеить 4 стальных штырька. Рамка прижмет клавишу за штырьки и не даст ей выпадать.Для разметки мест внедрения штырьков я зафиксировал клавишу малярным скотчем с лицевой стороны. отверстия под штырки сверлил 1мм. Штырьки очень прочные, палку 5 см пальцами не согнуть, из нее и нарезал.


А вот это мусор, оставшийся от выключателя:



задолбался подгонять макетку под центральное углубление, обратите внимание, у моих кнопок нажимается не только центральный квадрат, но и весь черный круг. На выступающие квадраты садится клавиша, а нажатие происходит на круги.


Т.к. внутри тесно и глубоко, выступающие части подрезал обломком канцелярского ножа, зажатого в пассатижи поперёк (дико неудобно, но альтернативу не придумал)


Плата внедрена, и вроде даже щелкает. надеюсь будет работать, а я пойду паять (где-то тут я видел подключение кнопок через резисторный делитель к одному порту дуины)...



Добавлю характеристик. Вдруг кому понадобится:
размер "маленькой" платы (как у меня): 41х27мм
Глубина (относительно "бортиков") до углублений: 9мм
высота бортика (вокруг платы): 3мм
Глубина в углублениях относительно "дна": 8мм

Последний раз редактировалось Tohin; 29.01.2017 в 11:01.
Tohin вне форума   Ответить с цитированием
Старый 27.12.2016, 22:00   #2
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: настенный выключатель (дубль два)

Напаял на плату 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);
                }
       }
    }
Если кто-нибудь может мне объяснить на уровне "для альтернативно одаренных" назначения битов ADCW, ADSC, ADPS2, ADPS0 (предполагаю есть еще и ADPS1?), буду благодарен.
Пока пойду попробую маны почитать....
Tohin вне форума   Ответить с цитированием
Старый 28.12.2016, 16:27   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: настенный выключатель (дубль два)

Цитата:
ADPS2, ADPS0 (предполагаю есть еще и ADPS1?)
предделитель частоты семплирования

Цитата:
ADSC
Одиночное преобразование запускается путем записи лог. 1 в бит запуска преобразования ADC ADSC (регистр ADCSRA). Данный бит остается в высоком состоянии в процессе преобразования и сбрасывается по завершении преобразования.

Цитата:
ADCW
- содержит результат преобразования и делится на два 8 битных регистра ADCH и ADCL
Admin вне форума   Ответить с цитированием
Старый 28.12.2016, 19:49   #4
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: настенный выключатель (дубль два)

Читал я даташит, читал... но ничего не понял...
Вот это предделитель частоты семплирования что такое? Мне показалось, что это как то влияет на длительность замера...
Какое значение предделителя лучше для моей задачи?

А это Одиночное преобразование запускается путем записи лог. 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
}
будет ли мега продолжать гонять основной цикл, до окончания измерения? Или в этом нет нужды и проще пропустить такты? Или это вообще приведет к непонятным результатам?
Tohin вне форума   Ответить с цитированием
Старый 28.12.2016, 22:21   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: настенный выключатель (дубль два)

Цитата:
то есть есть еще и непрерывное преобразование?
есть

Цитата:
Какое значение предделителя лучше для моей задачи?
Задача какая? резистивные кнопки опрашивать? Тогда с минимальной частотой

Цитата:
Как долго хранится значение в ADCW? до следующего измерения?
До последующего преобразования

Цитата:
будет ли мега продолжать гонять основной цикл, до окончания измерения?
Проще тогда получать данные с ADC по прерыванию
Admin вне форума   Ответить с цитированием
Старый 02.01.2017, 12:01   #6
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: настенный выключатель (дубль два)

Цитата:
Сообщение от Tohin Посмотреть сообщение
Напаял на плату 5 шт резисторов 1 кОм.
Это плохая идея. Очень близкие значения для кнопок. в дополнении к некачественным тактовым кнопкам бывают ложные срабатывания (то есть жму кнопку 2, а отрабатывает кнопка 3 или даже 4.)
Вообще, насколько резистивные кнопки надежны? Нужно просчитать номиналы точнее или этот головняк не стоит того?
Tohin вне форума   Ответить с цитированием
Старый 02.01.2017, 17:46   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: настенный выключатель (дубль два)

по 200 Ом напаяй
По входк поставь керамический конденсатор 0,1мкФ
есть хороший рабочий пример для чтения резистивных кнопок
http://compcar.ru/forum/showthread.p...7533#post87533
Admin вне форума   Ответить с цитированием
Старый 14.01.2017, 15:15   #8
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: настенный выключатель (дубль два)

Нашел схему дисплея для ардуины с 4 резистивными кнопками.
Взял номиналы оттуда.
В качестве донора резисторов была только плата с мелкими smd. Обжог кучу пальцев и отломал контакы у 4 резисторов... Благо резисторов на плате-доноре было много
Собрал, и вот облом. Пайка с нижней стороны платы упирается во внутренности выключателя и крышка не закрывается...

Опять надоело терять на это время...

UPD: И дрябезг у этих кнопок просто дикий... Хотя может это и у всех так...
Изображения
 

Последний раз редактировалось Tohin; 15.01.2017 в 14:08.
Tohin вне форума   Ответить с цитированием
Старый 29.01.2017, 10:59   #9
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: настенный выключатель (дубль два)

Такой жести я не ожидал... я месяц бился с программным подавлением дрябезга. И матерился на свои прямые извилины.
И вот решил прозвонить кнопки обычным тестером:
После щелчка замыкания контакта НЕ ПРОИСХОДИТ!!! нужно продавливать кнопку с усилием, тогда контакты замыкаются...
Естественно, что пока плата в руках - почти все норм: одно ложное срабатывание на десяток нажатий.
А вот как только ставишь в корпус, и-за неточностей усилия недостаточно, и начинает мигать новогодняя гирлянда, под треск реле...
Tohin вне форума   Ответить с цитированием
Старый 31.01.2017, 19:33   #10
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: настенный выключатель (дубль два)

Tohin
Цитата:
(кнопки говно!)
Обычное дело, там по-моему идет классификация по кол-ву нажатий.

Кнопки новые, брак или б/у ?

Надежнее брать в России..
Дороже, но качество нормальное можно подобрать например у них
https://www.chipdip.ru/search?search...BA%D0%B0&auc=1

===

На али можно мешок перебрать, пока подберешь
Например покупая вот это:
https://ru.aliexpress.com/item/Free-...9-30f0775a23f3
Переменный резистор - лучше менять сразу.
Иначе очень быстро, неадекватность его работы начинает сильно раздражать
sunny вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:00. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика