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

SidAndNancy

Members
  • Постов

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

  • Посещение

Электроника

  • Стаж в электронике
    Менее года

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения SidAndNancy

Новичок

Новичок (1/14)

0

Репутация

  1. Насколько я понимаю - это коридор открытия транзистора при разных температурах, а за пробитие мосфета (допустимое напряжение с затвора на исток) отвечает Gate−Source Voltage (который вроде бы практически у всех мосфетов около 20в). Поправьте, пожалуйста, если я не прав. Питается схема от 5в. Утащил мультиметр, вечером проверю, но: 1. В цоколевке уверен, долго ее крутил и читал. 2. Пробиты сток с истоком (опять же мультик вечером верну, говорю, потому что если подвесить затвор в воздухе на "мертвом" транзисторе и подать питание - тот же светодиод будет гореть, причем независимо от положения сток - исток, то есть если перевернуть транзистор). 3. Питается от импульсного блока питания на 9 вольт через модуль питания для макетки, на котором стоят 2 AMS1117 на 3.3в и 5в соответственно. Перемычками выставил питание от 5 вольт. 4. А не могли бы вы еще позанудничать по имеющейся макетке? Мне сейчас чем больше занудства - тем лучше=). Индуктивность туда вкатил именно по инструкции, вроде как внутренний ИОН не шибко стабилен, и это помогает ему жить лучше. АЦП именно в данном случае не используется, но с этой же разводки я буду собирать вольтметр и амперметр (пока готов только в протеусе). В данном случае тоже лучше убрать индуктивность до лучших времен (пониманий), и запитать через резистор? Быстрое гугление по bc27-40 выдает все что угодно кроме транзисторов.. Сейчас я вместо мертвых мосфетов воткнул 817Б, полет пока нормальный, но я не совсем понимаю, можно ли биполярные транзисторы дергать шимом (пока не до конца разобрался, вроде как с мосфетами все просто - определенной скважностью шима быстро подаем/снимаем напряжение, транзистор быстро открывается закрывается, ток через него соответственно идет порцайками. В случае с биполярниками - как дергать ток на базе? Какой ток вообще выдает нога мк, ведь если я правильно понял - биполярники работают по принципу усиления, то есть если коэфф. например 100 - даем 10, получаем 1000...?). А объясните, зачем менять на 1К? Если я правильно понимаю резистор там висит для подтяжки затвора к земле, чтобы не дрыгался от всего подряд? Мосфеты так просто прибить статикой? В дополнение - сейчас осталось пара живых BS170, но один из них видно что закрыт не до конца (еле уловимое свечение диода, который за ним. То есть пробитием я в данном случае называю то, что транзистор закрывается не до конца. Эксперименты с этим транзистором показывают, что мк тут ни при чем, при снятом мк, и подтянутым затвором к земле (через 10К), светодиод все равно еле еле светится. В остальном этот транзистор работает как положено.
  2. //ATMega 8 #define F_CPU 8000000 //скорость камня. должна соответствовать кварцу, иначе чепуха с задержками. #include <avr/io.h> //основная библиотека для АВР #include <util/delay.h> //библиотека задержки. Ругается, если не указать скорость камня (логично, в общем то) #include <stdlib.h> //не помню для чего... э? void preset() { DDRB = 0xff; // порт на выход DDRC = 0x00; // порт на вход //DDRD = 0xff; // пока не юзаем PORTB = 0x00; // везде ноль PORTC = 0xff; // подтяжка на всех ногах //PORTD = 0x00; // пока не юзаем } // Условно рандомная задержка /*void randdelay() { int d=rand() % 20 + 1; for (;d>1;d--) { _delay_ms(20); } } */ void setdelay() //предустановленная задержка { int h=30; //идея в том, чтобы 30 раз крутануть мелкую задержку for (;h>1;h--) { _delay_ms(10); } } void up() //Зажигаем последовательно слева направо. разобраться, как бы это написать поизящнее { int s = 2; //значение прибавки int out = 1; //00000001 for(int i=6;i>=1;i--) //начинаем начинать { PORTB=(out); //льем в порт значение (включаем лог1) out = out+s; //добавляем до следующей единицы s=s*2; //удваиваем прибавку setdelay(); //ждем чутка. после завершения цикла в этом месте в порту(е) 00111111, горят шесть диодов. (разобраться с операторами, наверняка можно сделать изящней) } _delay_ms(2000); //все горит, ждем пару секунд int s1 = 2; //значение... эээ... убавки... int out1 = 62; //то что должны были получить в порту после предыдущего цикла -1 for(int i=6;i>=1;i--) //начинаем кончать { PORTB=(out1); //льем в порт out1 = out1-s1; //снимаем следующую единичку s1=s1*2; //удваиваем убавку setdelay(); //ждем чутка } } void down() //смотри UP. суть таже, только идем с другого конца, а стало быть прибавку/убавку надо не увеличивать а уменьшать. { int s = 16; int out = 32; for(int i=6;i>=1;i--) { PORTB=(out); out = out+s; s=s/2; setdelay(); } _delay_ms(2000); int s1 = 16; int out1 = 31; for(int i=6;i>=1;i--) { PORTB=(out1); out1 = out1-s1; s1=s1/2; setdelay(); } } int main(void) { preset(); while(1) { if (PINC&(1<<PC0)) //ждем лог1 на кнопке, что на PC0 { up(); //жжом } if (PINC&(1<<PC1)) //ждем лог1 на кнопке, что на PC1 { down(); //жжом } } } С кодом все просто, я ничего сложного пока не умею.... PORTB - выход, на нем транзисторы со светодиодами. PORTC - вход, там кнопки висят. Не могли бы вы поподробнее? Если имеется ввиду, что я дергаю мегу при включенном питании - то нет. Очень извиняюсь, а как код правильно вставлять?
  3. Добрый всем вечер! Начинаю изучать AVR, практически с нуля, что в программировании, что в схемотехнике, кой до чего уже продвинулся и столкнулся с проблемой. Собрал условную мигалку (ATMega8A), навесил кнопки, научился мигать кнопками в разные стороны, и решил что надо переходить к изучению таймеров и шим. Для этого диоды из мигалки, что собрал до этого, переподключил через мосфеты BS170. Через мосфеты, потому что они управляются напряжением, а не током, что мне и надо, ибо как получить с ног ток - я пока недопонимаю. Насколько я понял из даташита - ток до 500мА, напряжение до 60 вольт, то-бишь светодиодом его пробить сложновато. Светодиоды за мосфетом с резистором 220 Ом, гейты самих транзисторов подтянуты к земле через 10 кОм, и заведены на 6 ног порта B (кроме xtal, на них кварц). На питании электролит на 47 микрофарад и керамика на 100 нанофарад. Так же прочий обвес, типа кнопки сброса через конденсатор с резистором (чтобы контроллер стартовал не сразу), индуктивность между питанием и AVCC, керамика с AVCC и AREF на землю, и все это вроде как на ситуацию не влияет, просто правильное подключение ATMega по сайту easyelectronics.ru. Суть происходящего - все работает, все хорошо, мигаем туда-сюда, радуемся. Сдергиваем мегу, чего-нить правим в прошивке, вставляем назад, запускаем, один светодиод горит без запроса на это. Пробит мосфет. Меняем мосфет (ну мало ли плохой), мигаем туда сюда, выключаем, сдергиваем мегу, правим прошивку, ставим назад, запускаем - другой мосфет пробит... Не понял, почитал, поменял мосфет, подтянул все гейты 10кОм к земле. Мигаем, туда, сюда, включаем, выключаем, на какой то раз получаем сразу 3 пробитых мосфета. При этом некоторые светодиоды на неисправных мосфетах горят не в полный накал (по разному), а при нажатии кнопки - загораются на полную (мосфет полностью открылся), потом опять в полнакала (мосфет не полностью закрывается)... Типа полупробит... =) В общей сложности на экспериментах сжег 7шт. BS170. Подскажите, что я делаю не так?
×
×
  • Создать...