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

Вернуться   Форум обсуждения оборудования "Умный дом" > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.12.2016, 20:12   #1
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 485
Вес репутации: 0
Tohin is an unknown quantity at this point
По умолчанию настенный выключатель (дубль два)

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

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

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


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



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


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


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



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

Последний раз редактировалось Tohin; 15.01.2017 в 18:57.
Tohin вне форума   Ответить с цитированием
Старый 27.12.2016, 22:00   #2
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 485
Вес репутации: 0
Tohin is an unknown quantity at this point
По умолчанию 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
Адрес: Москва
Сообщений: 8,797
Вес репутации: 8994
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
Адрес: МСК
Сообщений: 485
Вес репутации: 0
Tohin is an unknown quantity at this point
По умолчанию 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
Адрес: Москва
Сообщений: 8,797
Вес репутации: 8994
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
Адрес: МСК
Сообщений: 485
Вес репутации: 0
Tohin is an unknown quantity at this point
По умолчанию Re: настенный выключатель (дубль два)

Цитата:
Сообщение от Tohin Посмотреть сообщение
Напаял на плату 5 шт резисторов 1 кОм.
Это плохая идея. Очень близкие значения для кнопок. в дополнении к некачественным тактовым кнопкам бывают ложные срабатывания (то есть жму кнопку 2, а отрабатывает кнопка 3 или даже 4.)
Вообще, насколько резистивные кнопки надежны? Нужно просчитать номиналы точнее или этот головняк не стоит того?
Tohin вне форума   Ответить с цитированием
Старый 02.01.2017, 17:46   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,797
Вес репутации: 8994
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
Адрес: МСК
Сообщений: 485
Вес репутации: 0
Tohin is an unknown quantity at this point
По умолчанию Re: настенный выключатель (дубль два)

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

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

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

Последний раз редактировалось Tohin; 15.01.2017 в 14:08.
Tohin вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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