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

hanymi

Members
  • Постов

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

  • Посещение

Весь контент hanymi

  1. Тоже собрался для паяльной станции блочек собрать, как то заказывал irf740 в китае, прислали откровенное Г, как то не хочется их ставить, накопал в закромах оригинальных б/у irf540 (100в) irf630 (200в) вот думаю можно как то их пристроить в качестве ключей, увеличив их количество? если там на плечо по 155 вольт идет, 630 должны по сути и так встать, а 540 у меня как грязи, если их последовательно несколько штук прикрутить, как вариант?
  2. В данном случае прерывание вызывается только примерно 10раз в секунду и выполняется пару инкрементов переменных, что занимает всего несколько тиков и по сути вобще не сказывается на скорости работы, любой цикл с задержкой или delay на обработку дребезга, даже самого незначительного, будет дольше задерживать МК.
  3. Не согласен, это хороший способ не создавать вообще никаких задержек на обработку дребезга кнопок. Вроде как вкурил, переписал, работает, только пришлось 3 переменных создать, что не айс конечно. Теперь нажатая кнопка больше не переключается, даже если ее отпустить на 0.2-0.3 сек, и заново нажать. volatile unsigned char BTN_ON = 0; volatile unsigned char BTN_OFF = 0; volatile unsigned char BUTTON_OLD = 0; // Timer 0 interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0 = 0x8B; if ((BUTTON_OLD == 0) && BitIsClear(PINB, BUTTON)) BTN_ON++; else BTN_ON = 0; if ((BUTTON_OLD == 1) && BitIsSet(PINB, BUTTON)) BTN_OFF++; else BTN_OFF = 0; } //..................... while (1) { if ((BUTTON_OLD == 0) && BTN_ON > 9) { BUTTON_OLD = 1; PORTB ^= 1 << 0; BTN_ON = 0; } else if ((BUTTON_OLD == 1) && BTN_OFF > 2) BUTTON_OLD = 0; }
  4. Это не одно и тоже, в прерывании по таймеру делается отчет удержания кнопки, чтобы не вызывать функции delay, типичные if (PIND & (1<<<2)) {BUTTON=1} else {BUTTON=0} ; мне ничего не дают, надо чтобы чтобы кнопка срабатывала только через 1 секунду её удержания и при этом не вешала на эту секунду контроллер.
  5. hanymi

    Кнопка по таймеру

    Помогите с кодом обработки кнопки в прерывании по таймеру. Нужно как то запомнить текущее состояние кнопки, в текущем варианте если удерживать нажатой кнопку, то происходит переключение, что совсем не айс. Хотелось чтобы пока кнопка нажата, то переключение больше не происходило, пока не будет отжата и нажата повторно. #include <io.h> #include <stdint.h> //Chip type : ATtiny13A #define PIN_INT0 1 volatile uint8_t flagBTN = 0; // Timer 0 interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0 = 0x8B; if (!TSTBIT(PINB, PIN_INT0)) { if (flagBTN < 16) flagBTN++; else flagBTN = 0; } else { flagBTN = 0; } void main(void) { uint8_t flag_out = 0; uint8_t flag_set = 0; #pragma optsize- CLKPR = (1 << CLKPCE); CLKPR = (0 << CLKPCE) | (0 << CLKPS3) | (0 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0); #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif TCCR0A = (0 << COM0A1) | (0 << COM0A0) | (0 << COM0B1) | (0 << COM0B0) | (0 << WGM01) | (0 << WGM00); TCCR0B = (0 << WGM02) | (1 << CS02) | (0 << CS01) | (1 << CS00); TCNT0 = 0x8B; // (256-117=139(x8b) | 0.1c) (0x00 = 218ms|0.218c) OCR0A = 0x00; OCR0B = 0x00; TIMSK0 = (0 << OCIE0B) | (0 << OCIE0A) | (1 << TOIE0); sei(); ........ while (1) { if (flagBTN>9) { if (PORTB.0) PORTB.0 = 0; else PORTB.0 = 1; flagBTN = 0; } } }
  6. Для регулятора мощности пылесоса пойдет схема?
  7. спасибо, проблему решил. Перепаял керамику на 0.1мкф между 14 и 7 ногой, + по входам питания и земли повесил еще керамику на 5мкф. а триггер вместо с22 вход S поставил 1uf керамика, вход R - 10nf и резисторы подтяжки входов поменял на 10ком. теперь все четко работает и устанавливается сброс при включении.
  8. Уже думал про осцил, ткнуть в ноги и смотреть что там происходит, но тут как бы не ясно, на тот же корпус одной микросхемы в которой 4 элемента, придется мониторить все входы сразу, т.к подозреваю что любой вход, даже который не имеет отношения к конкретному триггеру, может внутри корпуса переключить триггер. По сути понятно, надо наверное сначала с питания начать, поставить фильтры нормальные, потом уже все остальное. Кстати заменив все кондеры с 14 на 7 ногу на 100пф, вся плата перестала работать, дает невероятные шумы и хаотичность переключений =) Просто кондеры при пайке перепутали, вместо 104, поставили 101. Будем пробывать советы.
  9. Это часть схемы, проблемной части, входы с условными нулями в схеме подключены и подтянуты соответственно, там неопределенных состояний не бывает. Вобще как бы плата на столе работала без нареканий, после установки в шкаф, где были подключены исполнительные устройства, 3 пускателя, симисторные ключи (которые управляют пускателями) и входящие датчики на реле появилась проблема, что при выключении, если произвольно щелкать релюшками, которые включают 2 других триггера в схема или вобще просто оставить на какое то время, то происходит включение в состояние ON. Провода от кнопок есть, но не оч длиные примерно 30-40см. резисторы там по входам поставил на всякий случай, чтобы уберечь вход микры если вдруг коротнет кнопку куда нить не туда. Вобще я изначально грешил на питание, там стоит 380в трансформатор, на 36в во вторичке, для запуска пускателей, поверх вторички намотана доп.обмотка на 12в, именоо для питания этой схемы, потом мост, входной электролит на 2200м, кренка 1в и выходной на 100 или 1000 не помню уже. Но ситуация не поменялась от запита от отдельного БП. Попробую перепаять кондеры как сказали, надеюсь что поможет. Конденсатор кстати между землей и 14 ногой(+) ставил неполярный смд, выпаянный от куда то с мат. плат, там номинал или 2.2 или 10мкф, вот сейчас порылся в старых платах на советской логике и имп. аналогах, там как бы тоже не густо с кондерами, так же стоят либо электролит на 10мкф, либо смдшники, чаще у (ттл 74серии). Думал проблема с микрой, ставил тл1, ла7, имп аналоги, как то разницы особо не заметил, разве что ла7 вроде как более стабильна.
  10. Столкнулся с проблемой непроизвольного переключения триггера, вот кусок той схемы, конденсатор с22 устанавливает триггер в начальное состояние при подаче питания, в ходе работы, если триггер выключен, он может сам по себе включиться, видимо какие то помехи проскакивают. На микрухе U5 между 14 и 7 ногой висит конденсатор на 10мкф. Подскажите что может быть и как можно вылечить проблему. питание 12в, от трансформатора, через 12в кренку, по входу и выходу которой так же сглаживающие конденсаторы есть. на out1 и out2 висят оптосимисторы.
  11. У меня балласт на ir2167 для 2х ламп по 40 ватт, самих ламп нет, как эмулировать их подключение? что вместо ламп можно подключить, чтобы балласт поверил что это лампы?
  12. опечатка сори, мне не нужен плавный старт. приехали bta16-600 буду тестировать.
  13. пускай так,только эти MOC все однотипные и аналогов как бы особо не имеют в своем ценовом диапазоне, а различаются только максимальным напряжением, током открытия и присутствием детектора перехода через 0, в моем случае выбирать было всего из 3-4 штук, выбрал по максимальному напряжению, управлять плавно нагрузкой мне нужно, поэтому с детектором нуля. остальное что касается непонятных мне параметров, вроде как напряжение открытия и токи удержания симисторов dt и прочее я в расчет не брал, т.к не знаю об этом ничего, по этому и спрашиваю совета.
  14. Чтобы не создавать отдельную тему, тоже пытаюсь разобраться с выбором симистора и оптосимистора. Мне нужно сделать 2 ключа, 1 для питания водяного электромагнитного клапана 220в - 16W, второй для запуска электромагнитного 3х фазного пускателя, обмотка катушки в нем 36вольт переменки, ток удержания 150мА Нагрузки все индуктивные, взял оптосимистор с запасом moc3082m .т.е на 800 вольт, вот теперь пытаюсь подобрать для него оптимальные симисторы, и что-то совсем не понимаю какие именно брать по параметрам. вот например BTA12-800BRG, Симистор 12А 800В, 50мА Standard [TO-220AB] или BTA208-800B.127, Симистор 8А 800В [TO-220AB] параметры разные, какой ближе подходит для moc3082? Еще про снабберную цепь, думалось там надо ставить пленочный конденсатор и резистор помощнее, нашел в том же дипе готовый модуль с неизвестным симистором STK0046-6A, Оптосимисторный ключ 6 А там вобще все на 1206 smd сделано, что смущает. Надо ли варистор ставить по входу переменки? Что будет если пробьет симистор?
  15. кальку прогоняю через принтор сначала чистым листом, она мнется сразу, потом печатаю на том месте где ровная поверхность, так что проблем нет. а двухсторонние не могу делать по причине что запаришься подгонять стороны, калька не плотная и прозрачность не та, в общем гемор, по этому на пленку хочу перейти.
  16. про растворители читал, но как то это все не то, запах и результат неоднозначный. из опыта работы с калькой, нагревом рисунка при температуре фена порядка 260градусов, получается результат вполне монолитной структуры тонера, не просвечивается совсем. И рисунок не плывет, вот и интересует пленку можно так будет греть или она поползет.
  17. Делал платы пленочным фоторезистом, шаблон печатал на кальке и потом запекал тонер феном, тонер становится непрозрачным, а калька хорошо температуру держит. решил попробовать делать шаблоны на пленке, заказ на пробу вот эту: Lomond 0705411 пока еще не подвезли, от сюда вопрос, запекать на пленке рисунок получится? вроде как пленка для лазерников, значит должна температуру держать, хотя бы 240-260градусов. т.к химии у меня нет для затемнения, пробовал кто запекать?
  18. по крайней мере proteus не меняет начального состояния от наличия тех или иных конденсаторов, в железе не проверял. ноги в воздухе висеть не должны, поэтому резисторы.
  19. и с ними и без и с параллельным кондером так же работает. я подозревал изначально что начальное состояние должно быть что-то около рендом, а тут получается всегда одно состояние, я конечно могу перекинуть выход на инверсный выход и иставить как есть, какова вероятность того что при включении питания всегда будет это состояние? цепь сброса проблематично сооружать для данного вида логики, были бы не инверсные входы.
  20. Подскажите как в данной схеме определить начальное состояние триггера. В симуляции proteus начальное состояние на OUT всегда HIGH В реальной схеме на макетной плате, все наоборот, т.е. LOW
  21. спс, ну номиналы 1мкф и те же 0.1 почти не отличаются по габаритам, как бы есть и 805 и даже 603 smd . в общем ставить лучше меньше пределах до 100к? не знаю какие могут быть помехи по общей шине, у меня там релейные выходы, которые землю подтягивают ко входам, ну провода от датчиков и тех же релюшек да, довольно длинные. Даже не подозреваю какие могут быть помехи в шкафу.
  22. что-то сообразить не могу, подскажите какие номиналы лучше поставить по входам логики, т.к сопротивление входное высокое, работают корректно там любые номиналы, интересует в плане защиты и помехозащищенности. входы подтянуты к vcc rc-цепочка для подавления дребезга. в данном примере 2 варианта R0(47к)-C1(1mf)-R1, R2(470k)-C0(0.1mf)-R3 работают одинаково.
  23. Существуют ли гнезда под реле, кроме автомобильных? гнезда на плату, подскажите где посмотреть можно, чип-дип изрыл не нашел ничего.
  24. спс понял. засада получается =(
×
×
  • Создать...