Перейти к содержанию
    

=AK=

Свой
  • Постов

    3 279
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Весь контент =AK=


  1. Как вариант - на RS-триггере из двух элементов 2ИЛИ-НЕ, которые питаются от Vin Все гениальное - просто
  2. 1) Кондер С3 увеличить раз в 100-1000 и добавить резюк 1к последовательно с ним. 2) D2 выбросить нафиг, а R3 оставить 3) Последовательно с D1 врезать резюк 1к, а R1 увеличить до 10к 4) С базы Q1 на землю добавить резюк 3.3к Тогда, может, заработает. Но сама идея у схемы довольно гнилая. Такие вещи правильнее на КМОП логике делать.
  3. Спасибо. Но, наверное, эта ошибка не в одном месте, а в нескольких. В сообщениях продолжает отображаться, что автор принадлежит группе "новичёк". Например Сообщение #1 Сегодня, 04:22 LNShadow Группа: Новичёк Сообщений: 1 Регистрация: ... Из: ... Пользователь №: ...
  4. Слово "новичок" пишется с буквой "о". Нельзя ли исправить движок форума, чтобы он новичков заносил не в группу "новичёк", а в группу "новичок"? Глаз режет.
  5. "Оптрон после фотоприемника" выглядит просто как издевательство над здравым смыслом. В сущности это точно соответствует присказке "водку продали, деньги пропили". Как бороться с помехами - читайте здесь
  6. Я не очень хорошо понял, что вы хотите. Попробую ответить в боее-менее общем виде. Самое простое и бронебойно-правильное решение состоит в том, чтобы передать неизвестно-какие сигналы (от кнопок и т.п.) во временное пространство вашего основного клока CLK, а дальше работать в нем. Передача сигнала производится при помощи 2-х или 3-х каскадного "синхронизатора", ктороый представляет собой по сути просто сдвиговый регистр. В примере внизу я обрабатываю 2 входных сигнала Button1_i и Button2_i совершенно одинаково по сути, но по-разному в написании, получая сигналы button1 и button2 Два замечания к представленному коду: - Я сознательно предпочитаю где можно пользоваться переменными (variable), а не сигналами (signal), посколку переменные более локальны и за пределами процесса не видны - Отступы надо "беречь" и пользоваться ими экономно. Основная цель состоит в том, чтобы повысить читаемость текста, а не в том, чтобы долбить по клавишам resync_pro : process(CLK) variable b0,b1: std_logic; variable bb : std_logic_vector(1 downto 0); begin if rising_edge(CLK) then button1<=b1; b1:=b0; b0:= Button1_i; -- сдвиговый регистр "собран из кусочков", так удобно писАть, когда он короткий button2<=bb(1); bb:=bb(0) & Button2_i; -- сдвиговый регистр в основном сделан вторым выражением, его можно было сделать любой длины end if; -- CLK end process resync_pro; Предположим, что входы Button1_i и Button2_i приходят от одной кнопки с контактом "на переключение", которая замыкает Button1_i на землю при нажатиии кнопки, или замыкает Button2_i на землю при отпускании кнопки (конечно, на входы навешены подтягивающие резисторы). Тогда подавление дребезга элементарно обеспечивается простым RS-триггером. Результирующий сигнал назовем button debounce_pro : process(CLK) begin if rising_edge(CLK) then if ( button1='0') then button<='1'; -- кнопка нажата elsif ( button2='0') then button<='0'; -- кнопка отжата end if; end if; -- CLK end process debounce_pro; Теперь создадим короткие импульсы длительностью 1 клок по нажатию кнопки (назовем его button_re, где re означает "rising edge") и по отпусканию кнопки (назовем его button_fe, где fe означает "falling edge") edges_pro : process(CLK) variable b :std_logic; begin if rising_edge(CLK) then ------------------------ -- rising edge ------------------------ if (button='1') and (b='0') then button_re<='1'; else button_re<='0'; end if; ------------------------ -- falling edge ------------------------ if (button='0') and (b='1') then button_fe<='1'; else button_fe<='0'; end if; ------------------------ -- 1-битный сдвиговый регистр ------------------------ b:=button; -- это должно быть в конце процесса, а не в начале end if; -- CLK end process edges_pro; Напоследок сделаем простенький одновибратор, запускаемый по одному из фронтов. Второй такой же, запускается по другому фронту. Выходной сигнал назовем Pulse1_o pulse1_pro : process(CLK) variable cnt : unsigned(7 downto 0); begin if rising_edge(CLK) then ------------------------- -- по фронту ------------------------- if (button_re='1') then cnt := (others => '0'); -- обнулили счетчик Pulse1_o <= '1'; -- запустили вых. импульс ------------------------- -- считаем до тех пор, пока старший разряд счетчика равен 0 ------------------------- elsif (cnt(7)='0') then if (to_integer(cnt)=55) then -- когда счетчик отсчитал нужное нам число клоков Pulse1_o <= '0'; -- закончили вых. импульс end if; cnt := cnt+1; -- считаем клоки end if; end if; -- CLK end process pulse1_pro;
  7. Соответствует нашему опыту. Они и по фронту работают не всегда. Что угодно, только не NVE.
  8. Абсорбируется кондерами на линии Vcc и затем постепенно потребляется всеми нагрузками в цепи питания. При указанных 6.8 к и максимальном постоянном напряжении, скажем, 25 В (что намного превосходит любые разумные пределы), через резистор течет менее 3 мА, что благополучно съедается микроконтроллером. А кратковременные выбросы сначала абсорбируются, а потом съедаются. Это смещение нужно, только если стабилитрон имеет значительный ток утечки, который повлияет на точность измерений. Зенер с малыми утечками разумнее ставить напрямую в точку соединения R1,R2, а диоды и R4 викинуть, т.е. сделать так, как было у топикстартера изначально.
  9. Маска и лак не защищают от коронного разряда - корона постепенно "съест" их и со временем создаст проводящие каналы на их поверхности. Лак оставляет оголенными острые заусенцы и углы, поэтому корона образуется и на покрытой лаком плате. Чтобы не образовывалась корона, нужна объемная заливка (эпоксидкой, силиконом) или погружение в трансформаторное масло. "Твердая" объемная заливка не должна иметь больших воздушных пузырей, иначе в них тоже может образоваться корона. Поэтому объемную заливку, пока она не застыла, надо сначала поместить в ваккум, а потом обратно в нормальное атмосферное давление. С маслом поначалу проще, но оно постепенно загрязняется.
  10. Я вам уже давал ссылку на Симетрикс, вы ее проигнорировали.
  11. Ранее обсуждалось, cообщение #27 Кстати, последовательно с затвором VT1 тоже полезно было бы резюк 1к поставить из тех же соображений. Заодно эти резюки помогут помехи фильтровать. А кто его знает, как пейджер будет реагировать на помехи на входах (если они будут). Может, они ему и не мешают вовсе. Может, от только на долгие сигналы реагирyет. Но в принципе не помешало бы поставить по одному кондерчику 0.1 мкФ параллельно R7 и R14
  12. С ним все в порядке. Если хотите убрать из схемы еще один номинал, а именно 10к, а также снизить потребление по питанию, то можете поставить R5=R6=22к
  13. Беглый взгляд говорит, что все ОК. :) А тогда по барабану, как они себя поведут - кондер-то все равно уже разряжен
  14. Написано так: Понять из этих слов что-либо трудно, можно по-разномy истолковать, что имелось ввиду. Но, похоже, что один контакт переключается между землей и питанием, а другой замыкает клаксон на землю. Если бы аффтар удосужился нарисовать схему своих источников сигналов, то было бы намного понятнее.
  15. У того контакта реле нагрузка - клаксон, а не 150к.
  16. Почему вы хотите эмиттер Q6 на +12 зафигачить? :( Как я понял, в сообщении #22 вы нарисовали ваши нагрузки, куда поступают сигналы с выходов схемы. Я полагал, что сток VT1 подключен ко входу пейджера, который вы обозначили "вход 2 - тревога", а эмиттер Q6 - ко входу, обозначенному как "вход 1". У вас там нарисован резистор 6.8к от входа 1 на +12, что по моему разумению должно означать, что этот резистор уже встроен в вашу нагрузку. Вот вы же закрасили розовеньким то, что находится за пределами данного устройcтва. Вот и этот резистор R12 надо тоже розовеньким закрасить.
  17. Залить всю схему силиконом Насколько я понял из объяснений, никакой из вх. сигналов не являeтся сигналом "сухой контакт", поэтому его спротивление в разомкнутом состоянии рояли не играет и к сопротивлению 150к ровно никакого отношения не имеет. Что это значит - "пробиться током через 150 килоом"? Я такой жаргон не понимаю.
  18. Все правильно. Только насчет R12 хочу уточнить. У вас в нагрузке 6.8к, поэтому дополнительный резистор ставить необязательно. Но если уж вы решили поставить (т.е. если у вас на схеме R12 - это резистор, а сопротивление нагрузки), то выберите его побольше, например, хоть того же номинала 150к. И резистор R14, для которого я указал диапазон от 10к до 1М можно, конечно, выбрать ровно посередине диапазона (т.е. 100к, как я посоветовал). Но зачем вам плодить лишние сущности, т.е. номиналы?. Все те же 150к ничуть не хуже... :rolleyes:
  19. Про ту, о которой вы все время говорили до сих пор.
  20. Подойдет. Только вы зря 5-вольтовую релюху взяли, 12-вольтовая еще лучше подойдет: у нее ток обмотки меньше, транзистор будет меньше греться , и общий ток потребления уменьшится. Не забудьте диод поставить параллельно катушке реле: катод - на питание, анод - на сток транзистора. Поставьте 100к
  21. Практически любой маломощный N-канальный полевик. Только возьмите тот, у кого пробивное сток-исток побольше, хотя бы 50 В. Насколько он будет греться, зависит от сопротивления его канала. При 12В ток через нагрузку 1к будет всего 12 мА. Если сопротивление канала будет даже 10 Ом (а это много), то рассеиваемая полевиком мощность составит всего 10*0.012*0.012 = 1.44 мВт
  22. Транзистору Q5 скорей всего не хватит тока коллектора, чтобы вытянуть реле. Если схема правильно работает, Q5 должен включаться-выключаться когда напряжение на С3 достигает примерно половины питания. При этом через R9 течет ток всего лишь (полпитания)/R9 = ~40мкА, и не весь этот ток попадает в базу Q5 - бОльшую часть забирает на себя R10. До базы доходит всего десяток-полтора мкА. Если коэфф. передачи по току у Q2 равен 200, то его ток коллектора будет не более всего лишь 2-3 мА. Этого достаточно, чтобы выдать полный размах (т.е. почти 12В) на резистор R7 величиной даже 10к, не говоря уж о 150к. Но на нагрузке 1к ток в 2мА даст всего 2В. Чтобы получить больше, надо поставить Q5 с бОльшим коэфф. передачи по току. Или, если неохота искать экзотические транзисторы, поставить вместо Q5 составной транзистор (Дарлингтон) из двух одинаковых pnp транзисторов. Тогда уж усиления точно хватит, но придется раза в полтора-два увеличить R10, чтобы составной транзистор все так же срабатывал, когда напряжение на С3 достигает примерно половины питания. Ваша схемка с полевиком тоже будет работать, но при условии, что с затвора на землю включен резистор 10к...1 МОм. Без этого резистора полевик скорей всего вообще никогда не закроется.
  23. Они и без диодов сами защищают друг друга.
×
×
  • Создать...