2 630 сообщений в этой теме

ANAIT    0

Всем,кому интересен данный прибор.Может кому надо разводка платы в PCADе 2006.http://forum.cxem.net/style_images/1/folder_attach_images/attach_add.png

bk_lcd.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
magical    0

Ребята, подскажите пожалуйста, а какие конкретно можно применять индикаторы, ато на Украине нигде в продаже не найду.

Или конкретно, какой из этих подойдет?

WH1601A-YGH-CTK

WH1601L-NGG-CT

WH1601L-TMI-CT WH1601 BIG BLUE

WH1602A-YGH-CTK

WH1602B-TMI-CT

WH1602B-YYH-CTK

WH1602C-NGG-CT

WH1602C-YGH-CTK

И еще вопросик, кварц на ATMEGA8 какой цеплять?

Изменено пользователем magical

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    7
Или конкретно, какой из этих подойдет?

И еще вопросик, кварц на ATMEGA8 какой цеплять?

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

WH1602A-YGH-CTK

WH1602B-TMI-CT

WH1602B-YYH-CTK

WH1602C-NGG-CT

WH1602C-YGH-CTK

т.к. устройство не критично к временным интервалам, кварц на ATMEGA8 не нужен. микроконтроллер тактируется импульсами от внутреннего генератора на частоте 8 МГц.

ANAIT: С трудом нашел Винстаровский

у меня в городе МЭЛТОВ тоже нет. я заказывал MT-16S2H-2YLG в chipdip по почте. прислали через 8 дней.

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

to ANAIT: самый простой способ проверить прошитый контроллер:

запрограммировать ATMEGу 8. установить её в устройство. подать питание .подождать 5-7 сек или более для инициализации. нажмите и удерживайте кнопку МЕНЮ. пъезоизлучатель (висит на 13-м выводе) должет пикнуть. если "пикает" то контроллер обрабатывает программу корректно, и далее причину нужно искать в индикаторе. но судя по симптомам вашего Микроконтроллера "программатор не видит МК" ошибка в прошивании.

Изменено пользователем Юрец

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ANAIT    0

Автору.Еще раз спасибо.Меня так заинтерисовл Ваш прибор,что еще не запустив схему,сделал печатную плату(надеюсь Вы не в обиде за маленькие дополнения.)Завтра иду на рынок за очердной Мегой,попробую еще раз прошить.Что-то мне с ними фатально не везет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
magical    0

Спасибо большое за поддержку, давно мечтал о точном наличии бензина в баке, буду пробовать.

Хана всем АЗС за не долив!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ANAIT    0

Всем! Всем!Всем! Запустил схему! Работает великолепно,яркость дисплея нормальная.Правда пока на макетной плате,но на днях перепаяю на основную.Теперь встал вопрос о корпусе,но это детали,а главное что схема работает.Спасибо Автору за очень нужный прибор. :rolleyes:

to magical: Идикатор WH1602C-YGH-CTK с подсветкой и поддержкой кирилиицы покупал но радиобазаре в Киеве стоит 52 Гривни.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    7

>Запустил схему!

рад за Вас!

в чем были грабли (почему сразу не получилось)? неправильно зашили микроконтроллер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
magical    0
Всем! Всем!Всем! Запустил схему! Работает великолепно,яркость дисплея нормальная.Правда пока на макетной плате,но на днях перепаяю на основную.Теперь встал вопрос о корпусе,но это детали,а главное что схема работает.Спасибо Автору за очень нужный прибор. :rolleyes:

to magical: Идикатор WH1602C-YGH-CTK с подсветкой и поддержкой кирилиицы покупал но радиобазаре в Киеве стоит 52 Гривни.

Спасибо большое, нашел такой, в космодроме (они по всей Украине).

Щас еду покупать и за паялник.

Вопрос к Юрию.

Скажите пожалуйста, вот чтоб индицировало доли градуса температуры - это круто конечно,

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cadric    0

Добрый день. Спасибо за схемку, работает отлично. Но только не понятно почему ножка №3 индикатора LCD подключена к общему проводу (минус питания), а не через резистивный делитель напряжения для регулировки контрастности дисплея, ведь в таком включении контрастность максимальная и на дислее одни черные прямоугольники знакомест?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0

на разных дисплеях по-разному. у меня тоже на землю нужно контраст кидать для максимапльной контрастности.

возникла проблема несовместимости дисплеев некоторых.

на картинке: не показывается мягкий знак. питание от программатора. схема собрана на макетке

решение проблмы: предлагаю использовать синонимы без мягкого знака))

"дневн.", "ночн." и прочее.

http://slil.ru/27484984

Изменено пользователем Блуд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    7
а нельзя ли сделать чтоб состояние топлива индицировалось, пусть не до десятых - но хоть до поллитра

можно. подождите немного - катастрофически не хватает времени (работа, семья, экзамены...)

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

в индикаторах МЭЛТ визуально сильной засветки знакомест нет. для других можно самостоятельно подобрать сопротивление.

на картинке: не показывается мягкий знак.

интересная особенность...

а что за индикатор? (похож на winstar'овский).

чуть позже исправлю.

p.s. хочу кардинально изменить программу: выкинуть тяжелую функцию sprintf; изменить функцию отображения русских букв, и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    7
решение проблмы: предлагаю использовать синонимы без мягкого знака))

"дневн.", "ночн." и прочее.

вот обновленная прошивкаlcd.rar . минус: мягкий знак показывается в нижнем регистре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0

благодарю. теперь действительно всё кажет корректно.

дисплейчик один из лучших по даташиту из винстаровских. WH162 вроде бы.

при включении габаритов должно 12 вольт подаваться на резисторный делитель?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    7
при включении габаритов должно 12 вольт подаваться на резисторный делитель?

совершенно верно. я взял 12в с клавиши включения габаритов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ANAIT    0

Автору.Да скорее всего это была моя ошибка при прошивке.

to Cadrik. В Винстаровском индикаторе вывод 3 подключи к общему проводу через резистор 5,6 кОм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0

ну, раз так серьёзно всё зашло, то можно ли сделать несколько замечаний (или пожеланий?), так как приведённая схема изначально слишком непомехонеустойчива.

1) разве можно выводы коротить напрямую на землю???ни в коем случае. конечно, работать это будет, но всё же сильно не рекомендуется так делать. обязательно через резисторы на пару килоом (если не жалко резисторов- то на каждую кпоночку, если дефицит- то один общий на землю)

2) почему нога ресет висит в воздухе? О_О

настоятельно рекомендую подключить его через резистор 10к на питание. если такого под рукой нету, подойдёт любой от 4,7к до 10к. в ЗАКОНЧЕННОМ устройстве можно подключить непосредственно на питание или вовсе отключить его, запрограммировав фьюз RSTDISBL=0, но в этом случае можно забыть про 5-проводные программаторы, а я думаю, что автор всё же выпустит рано или поздно более интересную версию, до которой захочется перепрошиться(?), или же вы сами напишите нечто подобное по той же распайке.

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

3) где фильтр на AVCC и AGND (выводы 20 и 22)? не вижу. вообще, в идеале, цифровое питание должно подаваться отдельно от аналогового. не сложно ведь допаять дроссель/резистор и пару конденсаторов на ~0,1 мкф. а в результате будем иметь АЦП более устойчивое к шумам и наводкам. то есть более точное.

4) декомпилировал и посмотрел исходники. бе. компиллятор, видимо, действительно был cvavr. притом не второй версии. попробуйте перекомпилировать другим. размер прошивки будет меньше и сама прошивка будет более оптимизированная. просто так, для сравнения. можете даже не выкладывать прошивку. я к тому, что разницы-то в работе не заметите, а вот если будете добавлять новые функции в свой проект, то памяти может рано или поздно не хватить.

это не критика, это просто попытка поддержать и помочь проекту, так как он довольно интересный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    92
1) разве можно выводы коротить напрямую на землю???ни в коем случае...

Расскажите, пожалуйста, почему нельзя - очень интересно...

2) почему нога ресет висит в воздухе? О_О

Для тех кто не в курсе - в AVR-ках есть внутренняя, прекрасно работающая схема сброса. Внешняя цепь может оказаться нужна при особых условиях питания....

4) декомпилировал и посмотрел исходники. бе. компиллятор, видимо, действительно был cvavr. притом не второй версии...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0
Расскажите, пожалуйста, почему нельзя - очень интересно...

не рекомендуется. в любых серьёзных проектах, где есть клавиатура, ВСЕГДА стоят резисторы.

Для тех кто не в курсе - в AVR-ках есть внутренняя, прекрасно работающая схема сброса. Внешняя цепь может оказаться нужна при особых условиях питания....

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

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

ради интереса, попробуйте скомпилировать какой-нить проект сначала GCC, потом CVAVR, а потом IAR. и декомпилируйте. наблюдайте разницу. делая так со многими проектами и неоднократно, сами в конце концов будете с ходу определять, ибо это будет непосредственно видно. не знаю, как ещё объяснить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    92
..не рекомендуется. в любых серьёзных проектах, где есть клавиатура, ВСЕГДА стоят резисторы.

Вот я и спрашиваю про ПРИЧИНЫ такого решения. А догматичные утверждения, увы, не интересуют...

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

И как это обязывает ставить внешнюю схему сброса на RC-цепочке? Когда схема нуждается в такой цепочке, лучше уже специализированный супервизор питания ставить...

...ибо это будет непосредственно видно. не знаю, как ещё объяснить.

По чем это видно? Каша в исходниках никак не коррелирует с полученным результатом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0
Вот я и спрашиваю про ПРИЧИНЫ такого решения. А догматичные утверждения, увы, не интересуют...

резистор нужен, чтобы по нему прошёл ток.

И как это обязывает ставить внешнюю схему сброса на RC-цепочке? Когда схема нуждается в такой цепочке, лучше уже специализированный супервизор питания ставить...

почему бы и нет? хуже-то не будет.всего один резистор припаять. долго что ли? зато точно будете знать, что потенциал на ноге есть.

По чем это видно? Каша в исходниках никак не коррелирует с полученным результатом?

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

Изменено пользователем Блуд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    92
резистор нужен, чтобы по нему прошёл ток.

Шутку оценил :) . Но все же... Можно понять, когда резисторы подключают к МАТРИЧНОЙ клавиатуре - там входы с выходами периодически меняются и легко накосячить. Здесь же, имхо, вполне безобидная ситуация, нужно постараться чтобы сжечь пины...

почему бы и нет? хуже-то не будет.всего один резистор припаять. долго что ли? зато точно будете знать, что потенциал на ноге есть.

Можно, но отсутствие не есть ошибка. Хотя внешнюю RC-цепочку я везде ставлю...

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

Я серьезно спрашиваю. Пару характерных моментов можете описать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0
Шутку оценил :) . Но все же... Можно понять, когда резисторы подключают к МАТРИЧНОЙ клавиатуре - там входы с выходами периодически меняются и легко накосячить. Здесь же, имхо, вполне безобидная ситуация, нужно постараться чтобы сжечь пины...

ну, значит, я не прав. просто я всё привык делать так, чтобы было максимально эффективно и продуктивно. и если делать, то делать, и экономить на одном резисторе не вижу смысла.

Можно, но отсутствие не есть ошибка. Хотя внешнюю RC-цепочку я везде ставлю...

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

Я серьезно спрашиваю. Пару характерных моментов можете описать?

в своё время осилил тему, начав свои эксперименты.

http://kazus.ru/forum/topics/f_119460.html

здесь конкретно и с рабочими примерчиками народ сравнивал компиляторы))

Изменено пользователем Блуд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BudikV    0

Эх, если бы он еще расход моментальный показывал. Ведь можно с контроллера, который управляет инжекторами, взять эту инфу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Блуд    0

это несложно, и в инете есть уже готовые проекты (если чисто по поводу расхода).

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

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

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

Изменено пользователем Блуд

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BudikV    0

это несложно, и в инете есть уже готовые проекты (если чисто по поводу расхода).

Никогда не встречал. А ссылку можно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Atreides
      Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.
    • Автор: olezka18
      Здравствуйте!
      Быстрым поиском не нашел по крайней мере тут.
      В общем нужна звуковая оповещалка , вернее примерная простая схема для оповещения о невыключеном свете в авто, т.к сейчас по правилам нужно ездить с включеным ближним светом и часто бывает забываю отключить, нужно если собрался выходить из машины, а свет не выключил она срабатывала, но только если зажигание выключено.
      для работы логики сего девайса планируется взять:
      1. напряжение от кнопки включения света в салоне.
      2. напряжение питания с включеного зажигания.
      3. напряжение на габаритных огнях.
      если первый и третий будет 12 вольт, а на 2 будет ноль, то включается сигнал,  других случаях сигнал не подается.
      Простота приветсвуется  т.е 315 и 361 транзисторы и желательно всё  баззер могу с материнки сковырнуть
    • Автор: Роман22211
      у меня усилитель для авто PROLOGY Club CA-200, двухканальный, и не работает левый канал, звук появляется в определённом положении регулятора громкости, но сам переменный резистор я поменял на новый, на правом канале звук нормальный, при мостовом включении (на 200W) звук намного меньше чем должен быть. Был сгоревший конденсатор C10, 2200мкф 25в- заменил на 16 вольт.. визуально всё в порядке, в чём может быть причина поломки? 
       

    • Автор: EugenArt
      Всем доброго времени суток!
      в поиске не смог найти инфо, поэтому создал тему, не ругайте, если ошибся с веткой.
      Идея следующая, есть автомагнитола deh-3600MP c выходом Ip-bus.Хочу подружить магнитофон с мп3 плеером (есть от фм-трансмиттера, завтра куплю платку отдельного мп3). Сразу подчеркну, что хочу управление плеером (треки, теги, пауза и т.д) с головного устройства.
      предполагаю схему так:  ip-bus - avr - mp3 player.
      алгоритм avr-mp3 несложен и открыт, а вот описание протокола ip-bus нигде нет, форум витат.спб уже изучил, есть кусок кода работы авр и ip-bus, но не очень понятно, может подскажете набор команд ip-bus или что происходит по событию нажатию кнопки вперед/назад.
      Заранее благодарен.
    • Автор: balistik
      Всем доброго времени суток. Я реальный нуб в ATMEGA. Могу более-менее понять чужой код и из кусков сделать целое. Вопрос такой: реально ли на ATMEGA8 сделать 2 ШИМ (таймер 1 и2) и внутреннее прерывание (по таймеру 0) для чтения данных с DS18B20 на 8Мгц чтобы еще осталось на опрос кнопок и небольшую логику? Я выложу пример кода. По отдельность: ШИМ, прерывания, логика, запись в ЕПРОМ работает. Собираю все вместе - не работает. Пробовал в Протеусе, тоже глючит, да и протеус тормозит. Может кто чего подскажет.
      //#define F_CPU 8000000UL // устанавливаем рабочую частоту контроллера #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> #include "ds18x20.h" #include "onewire.h" #define MAXSENSORS 1 unsigned int tempint = 0; // переменная для целого значения температуры unsigned int subzero = 0; // переменная отрицательных значений температуры unsigned int clock = 0; //задержка для опроса датчика температуры unsigned int termo_error = 0; //флаг ошибки термодатчика unsigned char regim, R1_SHIBER, R1_VENT, R2_SHIBER, R2_VENT, R3_SHIBER, R3_VENT; //переменные режимов работы volatile char press = 0, pr = 0, pr1 = 0, set = 0; //дополнительные переменные для кнопок #define SHIBER_PB 1 //шибер подачи топлива #define SHIBER_PWM OCR1A #define VENT_PB 2 //вентилятор подачи воздуха #define VENT_PWM OCR1B #define LED1_ON PORTD |= _BV(PD3) // светодиод режим 1 #define LED1_OFF PORTD &= ~_BV(PD3) #define LED2_ON PORTD |= _BV(PD4) // светодиод режим 2 #define LED2_OFF PORTD &= ~_BV(PD4) #define LED3_ON PORTD |= _BV(PD6) // светодиод режим 3 #define LED3_OFF PORTD &= ~_BV(PD6) #define LED4_ON PORTD |= _BV(PD7) // светодиод 4 программирование #define LED4_OFF PORTD &= ~_BV(PD7) #define BUT_M PIND & (1 << PD1) // кнопка MENU #define BUT_U PIND & (1 << PD2) // кнопка UP #define BUT_D PIND & (1 << PD0) // кнопка DOWN unsigned char eep1 EEMEM; // режим работы unsigned char eep2 EEMEM; // режим 1 ШИМ вентилятор unsigned char eep3 EEMEM; //режим 1 ШИМ шибер unsigned char eep4 EEMEM; // режим 2 ШИМ вентилятор unsigned char eep5 EEMEM; // режим 2 ШИМ шибер unsigned char eep6 EEMEM; // режим 3 ШИМ вентилятор unsigned char eep7 EEMEM; // режим 3 ШИМ шибер unsigned char eep8 EEMEM; // флаг первого запуска uint8_t Temperature, szero; //-255 uint8_t nSensors, j; uint8_t cel_frac_bits; uint8_t gSensorIDs[MAXSENSORS][OW_ROMCODE_SIZE]; uint8_t search_sensors(void) // поиск DS18B20 { uint8_t i; uint8_t id[OW_ROMCODE_SIZE]; uint8_t diff, nSensors; nSensors = 0; for( diff = OW_SEARCH_FIRST; diff != OW_LAST_DEVICE && nSensors < MAXSENSORS ; ) { DS18X20_find_sensor( &diff, &id[0] ); if( diff == OW_PRESENCE_ERR ) { Temperature = 255; szero = 1; break; } if( diff == OW_DATA_ERR ) { Temperature = 255; szero = 1; break; } for (i=0; i<OW_ROMCODE_SIZE; i++) gSensorIDs[nSensors][i]=id[i]; nSensors++; } return nSensors; } void get_temp(int sensor){ // получаем температуру с датчиков DS18X20_start_meas(DS18X20_POWER_EXTERN, NULL); DS18X20_start_meas(DS18X20_POWER_EXTERN, NULL); j = gSensorIDs[0][sensor]; // family-code for conversion-routine if (DS18X20_read_meas_single(j, &szero, &Temperature, &cel_frac_bits) != DS18X20_OK) { //если не прочиталось то -255 Temperature = 255; szero = 1; } if (DS18X20_read_meas_single(j, &szero, &Temperature, &cel_frac_bits) != DS18X20_OK) { //если не прочиталось то -255 Temperature = 255; szero = 1; } tempint=(int)Temperature; subzero=(int)szero; } void pin_init(void) { //инициализация портов ШИМ DDRB |= (1<<SHIBER_PB) | (1<<VENT_PB); PORTB &= ~((1<<SHIBER_PB) | (1<<VENT_PB)); } void timer0_init(void) { //инициализация таймера для термодатчика TCCR0 |= (1<<CS00); TIMSK |= ( 1 << TOIE0); TCNT0 = 0xFF; } void timer1_init(void) { //инициализация таймера ШИМ шибера TCCR1A |= (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11); TCCR1B |= (1 << WGM13) | (1 << WGM12) | (1 << CS10); TCNT1 = 0x00; ICR1 = 0xFF; OCR1A = 0x00; OCR1B = 0x00; } void timer2_init(void) { //инициализация таймера ШИМ вентилятора TCCR2 |= (1 << COM21) | (1 << WGM21) | (1 << WGM20) | (1 << CS20); TCNT2 = 0x00; OCR2 = 0x00; } ISR(TIMER0_OVF_vect){ //прерывание таймера 0 для термодатчика if (clock != 4294967295){_delay_us(50);clock++;}else{get_temp(0);clock=0;} } //***************** обработка нажатия кнопок ********************** void buttons(){ if(~BUT_U){if(set == 0)pr++; // кнопка UP if(pr == 10){ // долгое нажатие } _delay_ms(100); }else{ if(pr >= 1 && pr < 10){ // короткое нажатие regim++; if (regim>3){regim=0;} eeprom_write_byte(&eep1, regim); // сохранение настройки в eeprom set = 0; pr = 0; } pr = 0; } if(~BUT_D){if(set == 0)pr1++; // кнопка DOWN if(pr1 == 10){ // длинное нажатие } _delay_ms(100); }else{ if(pr1 >= 1 && pr1 < 10){ // короткое нажатие. //set = 20; regim--; if (regim<0){regim=3;} eeprom_write_byte(&eep1, regim); // сохранение настройки в eeprom _delay_ms(100); set = 0; pr1 = 0; } pr1 = 0; } if(~BUT_M){ // кнопка MENU press++; if(press == 1 && set != 0){set++;} // переход по настройкам if(press >= 100 && set == 0){set = 1; _delay_ms(200);} // ход в настройки if(set == 1) eeprom_write_byte(&eep2, R1_VENT); if(set == 2) eeprom_write_byte(&eep3, R1_SHIBER); if(set == 3) eeprom_write_byte(&eep4, R2_VENT); if(set == 4) eeprom_write_byte(&eep5, R2_SHIBER); if(set == 5) eeprom_write_byte(&eep6, R3_VENT); if(set == 6) eeprom_write_byte(&eep7, R3_SHIBER); if(set > 6){ _delay_ms(100); set = 0; press = 0;} // если включена настройка даты, }else{ if(set == 0 && press >= 1){ // если не вошли в настройки regim++; if (regim>3){regim=0;} eeprom_write_byte(&eep1, regim); // сохранение настройки в eeprom } press = 0; } } //*****************режим настроек******************** void settings(){ //визуальное подтверждение настроек if(press >= 1 && set == 1) { LED1_ON; LED2_OFF; LED3_OFF; LED4_ON; SHIBER_PWM = R1_VENT;} //ШИМ шибер 0-255 if(press >= 1 && set == 2) { LED1_ON; LED2_OFF; LED3_OFF; LED4_ON; VENT_PWM = R1_SHIBER;} //ШИМ вентилятор 0-255 if(press >= 1 && set == 3) { LED1_OFF; LED2_ON; LED3_OFF; LED4_ON; SHIBER_PWM = R2_VENT;} //ШИМ шибер 0-255 if(press >= 1 && set == 4) { LED1_OFF; LED2_ON; LED3_OFF; LED4_ON; VENT_PWM = R2_SHIBER;} //ШИМ вентилятор 0-255 if(press >= 1 && set == 5) { LED1_OFF; LED2_OFF; LED3_ON; LED4_ON; SHIBER_PWM = R3_VENT;} //ШИМ шибер 0-255 if(press >= 1 && set == 6) { LED1_OFF; LED2_OFF; LED3_ON; LED4_ON; VENT_PWM = R3_SHIBER;} //ШИМ вентилятор 0-255 switch(set) // включена настройка { case 1: // настройка R1_VENT if(~BUT_U){R1_VENT++; if(R1_VENT > 254) R1_VENT = 0; _delay_ms(100);} if(~BUT_D){R1_VENT--; if((~BUT_D) && R1_VENT == 0) R1_VENT = 254; _delay_ms(100);} break; case 2: // настройка R1_SHIBER if(~BUT_U){R1_SHIBER++; if(R1_SHIBER > 254) R1_SHIBER = 0; _delay_ms(100);} if(~BUT_D){R1_SHIBER--; if((~BUT_D) && R1_SHIBER == 0) R1_SHIBER = 254; _delay_ms(100);} break; case 3: // настройка R2_VENT if(~BUT_U){R2_VENT++; if(R2_VENT > 254) R2_VENT = 0; _delay_ms(100);} if(~BUT_D){R2_VENT--; if((~BUT_D) && R2_VENT == 0) R2_VENT = 254; _delay_ms(100);} break; case 4: // настройка R2_SHIBER if(~BUT_U){R2_SHIBER++; if(R2_SHIBER > 254) R2_SHIBER = 0; _delay_ms(100);} if(~BUT_D){R2_SHIBER--; if((~BUT_D) && R2_SHIBER == 0) R2_SHIBER = 254; _delay_ms(100);} break; case 5: // настройка R3_VENT if(~BUT_U){R3_VENT++; if(R3_VENT > 254) R3_VENT = 0; _delay_ms(100);} if(~BUT_D){R3_VENT--; if((~BUT_D) && R3_VENT == 0) R3_VENT = 254; _delay_ms(100);} break; case 6: // настройка R3_SHIBER if(~BUT_U){R3_SHIBER++; if(R3_SHIBER > 254) R3_SHIBER = 0; _delay_ms(100);} if(~BUT_D){R3_SHIBER--; if((~BUT_D) && R3_SHIBER == 0) R3_SHIBER = 254; _delay_ms(100);} break; } } int main(){ /*******************************настройка переферии******************************/ cli(); ow_set_bus(&PIND, &PORTD, &DDRD, PD5); // иництализация протокола 1-wire nSensors = search_sensors(); // поиск датчиков DS18B20 DS18X20_start_meas(DS18X20_POWER_EXTERN, NULL); //включаем преобразование температуры pin_init(); //timer0_init(); timer1_init(); timer2_init(); _delay_ms(5); if(eeprom_read_byte(&eep8) != 1){ // читаем eeprom, если там мусор (первый запуск), пишем свои данные eeprom_write_byte(&eep1, 0); // режим работы eeprom_write_byte(&eep2, 150); // режим 1 ШИМ вентилятор eeprom_write_byte(&eep3, 100); //режим 1 ШИМ шибер eeprom_write_byte(&eep4, 200); //режим 2 ШИМ вентилятор eeprom_write_byte(&eep5, 150); //режим 2 ШИМ шибер eeprom_write_byte(&eep6, 230); //режим 3 ШИМ вентилятор eeprom_write_byte(&eep7, 200); //режим 3 ШИМ шибер eeprom_write_byte(&eep8, 1); // флаг первого запуска } //читаем настройки из памяти regim = eeprom_read_byte(&eep1); // читаем режим работы из eeprom R1_VENT = eeprom_read_byte(&eep2); // читаем режим 1 ШИМ вентилятор из eeprom R1_SHIBER = eeprom_read_byte(&eep3); //читаем режим 1 ШИМ шибер R2_VENT = eeprom_read_byte(&eep4); //читаем режим 2 ШИМ вентилятор R1_SHIBER = eeprom_read_byte(&eep5); //читаем режим 2 ШИМ шибер R3_VENT = eeprom_read_byte(&eep6); //читаем режим 3 ШИМ вентилятор R1_SHIBER = eeprom_read_byte(&eep7); //читаем режим 3 ШИМ шибер sei(); _delay_ms(5); /**********************************инициализация ШИМ*************************************/ while(1){ //if (tempint=255) {LED1_ON;LED2_OFF;LED3_ON;termo_error=1;} else {termo_error=0;}//выводим код ошибки датчика темппературы buttons();//обработик нажатия кнопок if (termo_error == 0){//блокировка по термодатчику if(set == 0) { //нормальный режим работы if (regim == 0){ //режим работы 0 LED1_OFF; LED2_OFF; LED3_OFF; LED4_OFF; SHIBER_PWM = 0; //ШИМ шибер 0-255 VENT_PWM = 0; //ШИМ вентилятор 0-255 } if (regim == 1){ //режим работы 1 LED1_ON; LED2_OFF; LED3_OFF; LED4_OFF; VENT_PWM = R1_VENT; //ШИМ вентилятор 0-255 if (tempint >=40) { //блокировка по температуре SHIBER_PWM = 0; //ШИМ шибер 0-255 }else{ SHIBER_PWM = R1_SHIBER; //ШИМ шибер 0-255 } } if (regim == 2){ //режим работы 2 LED1_OFF; LED2_ON; LED3_OFF; LED4_OFF; VENT_PWM = R2_VENT; //ШИМ вентилятор 0-255 if (tempint >=60) { //блокировка по температуре SHIBER_PWM = 0; //ШИМ шибер 0-255 }else{ SHIBER_PWM = R2_SHIBER; //ШИМ шибер 0-255 } } if (regim == 3){ //режим работы 3 LED1_OFF; LED2_OFF; LED3_ON; LED4_OFF; VENT_PWM = R3_VENT; //ШИМ вентилятор 0-255 if (tempint >=80) { //блокировка по температуре SHIBER_PWM = 0; //ШИМ шибер 0-255 }else{ SHIBER_PWM = R3_SHIBER; //ШИМ шибер 0-255 } } } }else{ SHIBER_PWM=0; VENT_PWM=0; } if(set != 0) settings();//вход в настройки } //return 0; }  
  • Сообщения

    • Фото реле РЭС9. (фото кучей и вид контактов).
    • Микросхема шим.viper 22 вроде.плохо цифры видно
    • Здравствуйте. Помогите пожалуйста с опознанием детали помеченной красной стрелкой. Заранее всем благодарен.
    • 1) Я бы так сказал: Каждая линза в паре с двумя чувствительными сенсорами формирует две зоны чувствительности. Помним в пир датчике два сенсора как правило. Достаточно попасть в один из них и засветить один сенсор как датчик тут же сработает.
      На переходах зон действительно есть места (на самых дальних рубежах) где можно се позволить чуть расслабиться и шевельнуться лишний раз, но как правило сектора делают так что человек в них полностью не спрячется. Специально пробовал.  2) Принципиально не обязаны. Можно допустить приличные смещения. Сектора конечно тоже туда сюда немного уплывут. Но не критично. 3) Ну это факт как бы. Главное чтобы направляло излучение на сенсор. 4) Это можно сделать и сближением оптических осей линз. Сузится общая диаграмма направленности. Но можно больше линз поставить. Обычно ограничивается  все необходимым минимумов. Деньги ведь в конечном счете.  
    • Q02 греется? Можно с лбп, но я бы сначала советовал ВЦЦ шимки востановить 
    • Доброго времени суток.   Задача: Хочу собрать экспериментальный источник питания для светодиодов. Нужно чтобы была возможность оперативно включать отключать от схемы диоды.
      Максимум требуеться включить 30 диодов по 10W каждый.  20 Диодов под ток 0.9А напряжение 11V 10 Диодов под ток 0.9А напряжение 7V
      Идея: 
      Берем диодный мост вешаем на него конденсатор, ставим стабилизатор тока, подключаем соответствующую балластную нагрузку, чтобы получить 0.9А. Далее заменяем балласт нужным нам количеством диодов. Для того чтобы можно было легко заменять балласт на диоды сопротивление элементов балласта должно быть. 0.9 * 11 = 9.9 ом -> используем 10 Ом резистор  0.9 * 7 =  6.3 ом  -> используем 6.8 Ом резистор, далее везде в расчетах буду писать что 7 ом.   Схема:    Из расчета, что с диодного моста мы получим 310в используем 330ом суммарного баластного сопротивления должны получить 0.94А тока.   Стабилизатор LM317 при управляющем сопротивлении 1.3Ом должен ограничивать ток на уровне 0.962А  (на случай скачка напряжения) Расчет http://cxem.net/calc/lm317_calc.php   Заменяя резисторы из нижнего ряда соответствующими светодиодами получим что требовалось.   Практика:   Включаем. Измерения производятся самым дешевым китайским мультиметром.   Без нагрузки V1 показывает 330в. При подключении нагрузки V1 показывает 320в. Т.е величина "остаточной пилы" 10в что выльется в колебания тока 10/330 =  0.03A Что будем считать удовлетворительным.   A1 показывает 0.93 - 0.98 (Напряжение в сети колеблется). V3 (падение напряжения на LM ке) показывает 3-4В. V2 показывает 9.4 - 9.9в (Показания мультиметра по крайней мере сами с собой сходяться, считаем мультиметр условно исправным)   Вопрос: Не наблюдается стабилизации напряжения микросхемой LM317. При скачках напряжения в сети, ток в цепочке резисторов колеблется вслед за ним, что наблюдается как по показателям A1 (растет ток) так и по V2 (растет падение напряжения на резисторе) Как я понимаю, чтобы выполнялся закон ома, при увеличении напряжения на V1 все это напряжение (при достижении тока отсечки в  0.94А) должно падать на LM317. Т.е при росте напряжения на V1 320В -> 330В мы должны наблюдать на V3 рост 3В -> 13В. фактические наблюдаемые падения напряжения следующие: V1 320В -> 330В  : V3 рост 3В -> 6В. V1 320В -> 340В  : V3 рост 3В -> 6В. Скачек напряжения получаю закорачиваем резисторов R1 R2.  При закорачивании большого количества резисторов в цепи наблюдал  токи 1.3-1.4А. Что явно указывает на отсутствие стабилизации.   Дополнительно: 1) LMки не перегревал. На фото не видно, но соответствующее охлаждение применялось.  2) Пробовал использовать вместо LM317 более мощный LM338 результат такой же. 3) LM ок использовалось несколько LM317  - 3шт LM338 -  2шт. Для некоторых роста падения напряжения вообще не увидел. 4) Вариант "Купить готовый в магазине" можно не предлагать.    
    • В общем начал разбираться с бп и возникли сложности.. А в частности И +12в и -12в берутся с одной обмотки транса. По схеме пуш -пул и вместе образуют полумост . Хотел спросить могу ли я всё таки сделать 24в?