Перейти к содержимому


Добро пожаловать на Форум Авторадиоклуба города Челябинска!

Добро пожаловать на Форум Авторадиоклуба города Челябинска. Чтобы общаться в чате, на форуме, скачивать файлы и многое другое, Вам необходимо зарегистрироваться. Или войти под своим логином (если Вы уже зарегистрированы).

Регистрация на нашем форуме крайне проста и абсолютно бесплатна. Мы узнаем немного информации о вас, и вы через мгновение сможете пользоваться всеми возможностями форума. Вот некоторые из них:
  • Создавать новые темы и возможность отвечать в других
  • Подписываться на темы и форумы для получения обновлений
  • Найти старых и завести новых друзей
  • Пользоваться системой личных сообщений и многим другим...
Авторадиоклуб города Челябинска - независимое некоммерческое объединение автомобилистов-радиолюбителей, созданное с целью оперативного обмена информацией о дорожной обстановке, взаимопомощи и просто общения.

Мы работаем на частоте 26.715 MHz в 17 канале сетки B (на некоторых радиостанциях - C) гражданского диапазона с FM-модуляцией.

Устанавливайте рации в машины, регистрируйтесь на сайте и присоединяйтесь к нашему сообществу!

Питание на микроконтроллере


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 31

#1 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 12:27

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

Логика такая: При коротком нажатии на кнопку включаются рации и усилитель (два канала), а при удержании кнопки 3 секунды усилитель должен отключаться. Соответственно обратно такой же логикой. Ну вот беда, задумка есть, а знаний нет, код абсолютно от балды, но если будут идеи то конечно я попробую реализовать. 

Включение и отключение нажатием сделать легко, проблема встала с удержанием кнопки. На эмуляторе(Proteus) всё работает, но в реале всё плохо. 

Если я могу погасить дребезжание кнопки при коротком нажатии, но при удержании не выходит. Я уже притянул резистор 1КОм к +, но лучше не стало.

Вот код цикла удержания кнопки (в кратце)

 
         while(PIND.2!=1)  // ждём пока кнопку отпустят, считаем сколько зажата
            { 
              delay++; 
              delay_ms(100); 
              if (delay >= 31) break; // если держим долго то выйти из цикла.
            }; 
 
           if (delay < 30) SetRac(); // меняем нагрузку на порты Д4 и Д5 на противоположное
           if (delay >= 30) SetUsil(); // если держали кнопку долго то меняем нагрузку на Д5 на противоположную.
 

Пока крутится цикл из-за дребезжания кнопки он прерывается и в итоге получается чёрчи чё абсолютно глючное.

Какие идеи?

 

 

Прикрепленные файлы

  • Прикрепленный файл  proteus.jpg   91,22К   Количество загрузок: 1


#2 _Гарант_

_Гарант_
  • Гость

Отправлено 11 Июнь 2015 - 13:12

Девятый, готовый проект. Логика работы как у тебя. 2 выхода на которые можно повесить реле с нормально замкнутыми и нормально разомкнутыми контактами.

 

В программировании не силен, увы(



#3 ДжейСи

ДжейСи
  • Пользователь
  • сообщений: 57

Отправлено 11 Июнь 2015 - 13:15

Девятый, а ты уверен что дело именно в дребезжании кнопки?



#4 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 11 Июнь 2015 - 13:19

Попробуй так:

1. Ждем когда  на порту кнопки появится "1";

2. Ждем когда появится "0";

3. Появился "0", обнуляем таймер. Считаем время, проверяем на "1";

4. Проверяем, если появилась "1", то переходим к п.5. Если еще "0", то к п.4;

5. Проверяем время, если соответствует короткому нажатию (меньше 3 сек и больше 150 мсек), то меняем выхода в соответствии с коротким нажатием. Если время больше 3 сек, то......долгое нажатие.

6. Делаем паузу 0,5...1 сек и к п. 1.

 

Еще надо продумать режим понижения потребления контроллером...не помню как делал, но привязано было к ватчдоку...

 

P.s. Есть подобная прога, при коротком нажатии включается/выключается один выход, а при долгом второй.... делал на тини13 для фонарей на велик.


Сообщение отредактировал Шпион: 11 Июнь 2015 - 13:31


#5 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 14:00

@Гарант, Да почти один в один, но блин, там в архиве нету кода, подсмотреть никак, а копировать готовое уже поздно и контроллер другой и много уже сделано

Девятый, а ты уверен что дело именно в дребезжании кнопки?
 

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

подумал на дребезг.

 

@Шпион,Спасибо, щас подумаю. 



#6 _Гарант_

_Гарант_
  • Гость

Отправлено 11 Июнь 2015 - 14:11

там в архиве нету кода
 

Да, листинга программы нет, но есть прошивка. 

 

 

копировать готовое уже поздно и контроллер другой и много уже сделано

Цена тиньки 13-й  - рублей 20.

А что сделано? Плата? Или просто программу в эмуляторе гонял и на макетке диодами мигал? 

 

Я конечно не отговариваю, делай свое - это интересней :)



#7 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 11 Июнь 2015 - 14:17

Цена тиньки 13-й  - рублей 20.

Влад, у нас в микроэлектронике были под 100... :D Сейчас рублей 70 будет...


Сообщение отредактировал Шпион: 11 Июнь 2015 - 14:18


#8 _Гарант_

_Гарант_
  • Гость

Отправлено 11 Июнь 2015 - 14:32

Шпион, да, цены подросли...

Ссылка правильно не вставляется. rbt74.ru от 50 руб.



#9 ДжейСи

ДжейСи
  • Пользователь
  • сообщений: 57

Отправлено 11 Июнь 2015 - 15:37

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

  У меня при «обычных» контактов просто подобного не было, странно… Я бы осциллографом проверил что там на контакте происходит на самом деле… Судя по листингу программы вполне похоже и на дребегз… А пробовал увеличить задержку в итерации? типа так
         while(PIND.2!=1)  // ждём пока кнопку отпустят, считаем сколько зажата            {               delay++;               delay_ms(1000);               if (delay > 3) break; // если держим долго то выйти из цикла.            };             if (delay < 3) SetRac(); // меняем нагрузку на порты Д4 и Д5 на противоположное           if (delay >= 3) SetUsil(); // если держали кнопку долго то меняем нагрузку на Д5 на противоположную.


#10 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 15:40

А что сделано? Плата? Или просто программу в эмуляторе гонял и на макетке диодами мигал?    Я конечно не отговариваю, делай свое - это интересней
 

Ну во первых, да, самому интересней.

Уже спаял всё. 13-тые у меня есть, кстати рублей по 120 покупал.



#11 _Гарант_

_Гарант_
  • Гость

Отправлено 11 Июнь 2015 - 15:47

Ну во первых, да, самому интересней.

 

:реасе:  :палец вверх:  :пиво: 

 

Уже спаял всё.
 

 

Удачи и терпения в отладке!



#12 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 16:02

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

Щас сделаю фотки покажу чё вышло.

 

И ещё у меня сомнения что моё реле выдержит нагрузку усилителя.



#13 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 20:21

Короче похвастаюсь - доделал! Надеюсь что кому то понравится или себе захочет что то подобное, с удовольствием помогу в реализации.

Преамбула.

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

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

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

Ну а теперь амбула и сам процесс. Владельцам Mazda 6 посвящается :)

 

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

Изображение

 

Я знаю что заглушки у японцев большие и глубокие с держателями для разъёмов проводки. Проводка одинаковая на всех комплектациях и чтоб не используемые разъёмы не болтались заглушки делают такие же как кнопки только без электрической части на обратной стороне.

 

Раз кнопка одна, а канала для управления было решено делать два, для раций и усилка отдельно, то явно назревал микроконтроллер.

Сказано сделано, набросал схемку, написал кривыми ручёнками код, сделал эмуляцию - вроди всё работает.

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

Изображение Изображение

 

Собрал всё это на текстолит:

Изображение

 

Изначально стабилизатор был один, но он грелся так что "плюнешь и шипит"

Добавил ещё один на МК отдельный, добавил радиатор, все равно горячо, 83 градуса.

Добавил ещё, по одному на реле и один на МК, 60 градусов на вот таком радиаторе, при 14.5 вольтах и потреблении 300 мА. Странно, не ожидал.

 

Вот такой краб вышел:

Изображение

 

Делаем кнопку из заглушки.

Вот так выглядит заглушка, разделяем по частям на защёлках, переднюю часть распиливаем с трёх сторон:

Изображение

 

Делаем дырки для светодиодов:

Изображение

 

Сооружаем внешний декор из подручных материалов и припаиваем туда светодиоды, один двухцветный зелёный и красный, второй оранжевый.

Изображение

 

Колхозим каркас и встраиваем вот такую кнопку:

Изображение

 

Добавляем ещё декора и кнопка готова.

Изображение

 

Подключаем всё на тест:

Изображение

 

Индикация:

Зелёный мигает в режиме "жидания" с частотой в пол секунды. Красный и оранжевый питание "на всё". Красный только рации без усилка.

Изображение Изображение Изображение

 

Осталось всё это перенести в машину. Корпус бы ещё найти для схемы.

И по нагрузке на реле я сильно волнуюсь как бы не пришлось делать каскад для более мощного реле для усилителя.


Сообщение отредактировал Девятый: 11 Июнь 2015 - 20:22


#14 ДжейСи

ДжейСи
  • Пользователь
  • сообщений: 57

Отправлено 11 Июнь 2015 - 20:33

офигенно  =-O  :палец вверх:



#15 БогЕС

БогЕС
  • Неактивный пользователь
  • сообщений: 1 481

Отправлено 11 Июнь 2015 - 20:41

Эстетично! Красава, Серёг  :палец вверх:



#16 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 20:48

офигенно 

 

 

Эстетично! Красава, Серёг

 

Спасибо я старался :)

Жень переименуй тему в "питание для раций на микроконтроллере" ну или что то в этом роде ибо получился отчёт, а не вопрос :)


Сообщение отредактировал Девятый: 11 Июнь 2015 - 20:48


#17 ДжейСи

ДжейСи
  • Пользователь
  • сообщений: 57

Отправлено 11 Июнь 2015 - 20:53

Девятый, а можно фото «сверху» и «снизу» более-менее крупным планом?



#18 _Девятый_

_Девятый_
  • Гость

Отправлено 11 Июнь 2015 - 21:11

 а можно фото «сверху» и «снизу» более-менее крупным планом?
 

А чё там сматреть то? ты лучше спрашивай.

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



#19 ДжейСи

ДжейСи
  • Пользователь
  • сообщений: 57

Отправлено 11 Июнь 2015 - 21:22

 

А чё там сматреть то? ты лучше спрашивай.

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

 

 

я вижу что макетка, поэтому и хочу посмотреть что и как ты там разместил!

у меня руки не откуда надо, поэтому макетки и прочие «конструкторы» – это для меня… поэтому хочу посмотреть как ты так красиво все разместил на макетке ;)



#20 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 13 Июнь 2015 - 09:20

По потреблению, не должна схема столько кушать чтоб стабы так грелись. Реле, если они на 12вольт, не надо через стабы включать, сразу от бортсети. Контроллер без светодиодов жрет максимум 15....20мА. На каждый светодиод достаточно 5...10 мА. На всю схему хватит стаба 78L05. Реле на станцию надо ампер на 5. Можно и на 2А, но лучше с запасом. Для усилителя реле лучше автомобильное на 30 ампер. Жрет такое реле ок 150-180 мА, транзисторы соответственно ставим на больший ток.....

#21 _Девятый_

_Девятый_
  • Гость

Отправлено 13 Июнь 2015 - 10:59

Если б даже запитать реле 12 вольтовые реле через 7812 они бы тоже не грелись, Я не нашел таких маленьких реле на 12 вольт, по этому поставил на 5 экономя место на плате.

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

Наифк мне 30 ампер реле? оно огромное, у меня пред на ВСЁ стоит на 15 и даже не думает перегорать.



#22 _Гарант_

_Гарант_
  • Гость

Отправлено 15 Июнь 2015 - 09:11

Девятый, схемку бы накидать. Хотя бы от руки. И прошивку (исходники не обязательно). Тогда можно статью оформить и на сайте разместить  :мечтаю:

 

Если ты не против :)



#23 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 15 Июнь 2015 - 10:23

Если б даже запитать реле 12 вольтовые реле через 7812 они бы тоже не грелись, Я не нашел таких маленьких реле на 12 вольт, по этому поставил на 5 экономя место на плате. Но я чувствую где то просчет в расчётах ибо потребление для таких реле шибко много, греются стабы и реле даже без нагрузки греются тоже. Наифк мне 30 ампер реле? оно огромное, у меня пред на ВСЁ стоит на 15 и даже не думает перегорать.

 

Реле на 12 Вольт есть в микроэлектронике, рублей 35 стоят. Не надо их питать через стабилизаторы!!! И жрут они совсем немного, ну может 50-100 мА. Возьми нормальные реле, выкинь стабы 7805 (поставь 78L05 для микроконтроллера) и места на плате все это еще меньше займет.

Усилитель на 100 Ватт потребляет больше 15 Ампер, контакты реле могут пригорать, соответственно ставим мощней и не паримся.

Не видно диодов параллельно обмоткам реле...они стоят? Без них могут вылететь транзисторы...

Вывод RESET контроллера нужно подтянуть к +5 Вольт резистором 4,7...6,2 кОм, по питанию контроллера конденсатор на 0,1 мкФ. Без этого будет глючить.

На вход и выход 7805 кстати тоже обязательны конденсаторы, электролиты мкФ на 100...470.

Разошелся я короче. :D  :D  :D

И да, хотелось бы увидеть схемку....


Сообщение отредактировал Шпион: 15 Июнь 2015 - 10:25


#24 _Девятый_

_Девятый_
  • Гость

Отправлено 15 Июнь 2015 - 10:51

@Шпион, Расходись, советы мне нужны очень, я ж не профи в таких делах.

Реле на 12 Вольт есть в микроэлектронике, рублей 35 стоят.
 

Да, придётся переделывать на 12 вольтовые реле, только я пока ума не приложу какие реле брать чтоб выдержали 15 ампер и поместились на плате, наверно это не вариант и уж точно не 35 рублей. соответственно транзисторы менять нужно на помощнее.

Нет диодов нет, что то я про них совсем забыл. 

Вывод RESET контроллера нужно подтянуть к +5 Вольт резистором 4,7...6,2 кОм

Этого никогда не делал и не понимаю нафига?

по питанию контроллера конденсатор на 0,1 мкФ. Без этого будет глючить.

Тож не когда не ставил, не глючит.

На вход и выход 7805 кстати тоже обязательны конденсаторы, электролиты мкФ на 100...470.

Это да, нужно сделать. 

Назревает переделка всей схемы, что конечно не радует ибо результат был так близок :)

 

И да, хотелось бы увидеть схемку....
Ага. мне б тоже хотелось :) 

#25 _Гарант_

_Гарант_
  • Гость

Отправлено 15 Июнь 2015 - 11:22

Этого никогда не делал и не понимаю нафига?
 

Может не запуститься контроллер, или сглючить. От даташита лучше не отступать в таких случаях.

Ага. мне б тоже хотелось  

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



#26 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 15 Июнь 2015 - 11:30

Да, придётся переделывать на 12 вольтовые реле, только я пока ума не приложу какие реле брать чтоб выдержали 15 ампер и поместились на плате, наверно это не вариант и уж точно не 35 рублей. соответственно транзисторы менять нужно на помощнее.

Для рации на 5 ампер, есть такие на плату мелкие. На 30 ампер есть в любом автомагазине... рублей может 50.

Этого никогда не делал и не понимаю нафига?

Вот когда конденсат появится на плате тогда и будет или глючить или вообще перестанет работать.

Тож не когда не ставил, не глючит.

Надо!!! Будет глючить, не на столе так в машине. 



#27 _Девятый_

_Девятый_
  • Гость

Отправлено 16 Июнь 2015 - 16:00

Не видно диодов параллельно обмоткам реле...они стоят?
 

какие диоды поставить подскажи?



#28 Шпион

Шпион
  • Неактивный пользователь
  • сообщений: 70

Отправлено 16 Июнь 2015 - 16:24

какие диоды поставить подскажи?

можно любые, 1N4148,1N4001....4007. 



#29 _Девятый_

_Девятый_
  • Гость

Отправлено 19 Июнь 2015 - 14:03

Давайте уже закрою свою тему завершением проекта :)

В итоге из-за кучи недостатков и просчётов устройство было разобрано и собрано уже новое, логика и программа остались те же.

Отказался от 5-и вольтовых слабеньких реле в пользу 12-ти вольтовых и на много мощнее, тем самым избавился от нагревающихся стабилизаторов и доработал с учётом рекомендаций Шпиона. Реле одно встало на плату с устройством на 10 Ампер для включения раций и отдельно вынес, уж шибко оно большое, 25 Амперное реле для включение KL-203.

Собрал всё это в корпус, сделал провода как надо, короче подготовил к установки в агрессивную автомобильную среду :)

 

Так выглядит комплект готовый к установки в машину, на устройстве крышка верхняя снята для наглядности

Изображение

 

Расположение устройства в машине и монтаж уж фоткать не стал, скучно там всё, Само устройство расположилось под центральной консолью, всё закрепил чтоб не болталось, там у меня вся коммутация на рации и там же спрятан усилок.

 

Внешние изменения только в кнопки, вот собственно результат:

Изображение

 

Устройство работает как и планировалось, кому шибко интересно - покажу на ежемесячной встрече.

Спасибо всем кто помогал и сочувствовал. :) 



#30 _Гарант_

_Гарант_
  • Гость

Отправлено 19 Июнь 2015 - 15:26

Девятый, поздравляю!

 

Если после месяца - двух все будет работать штатно, то можно уже и жирную точку поставить.

 

:браво: