Jump to content

tifaso

Members
  • Content Count

    598
  • Joined

  • Last visited

Community Reputation

1 Обычный

About tifaso

  • Rank
    Завсегдатай
  • Birthday 03/14/1988

Информация

  • Пол
    Мужчина
  • Город
    Кемерово

Электроника

  • Стаж в электронике
    Не связан с электроникой

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Как - нибудь если будет время почитаю. А так впринцепи сейчас всё работает как и должно поменял полярность у светодиодов на выходе. Кстати у меня светодиоды которые будут впаиваться в саму гирлянду уже подготовленные я на плюсовой контакт каждого подпаял резистор на 100 ом как и положено и проводки нарезал в размер и полудил уже. Провода от старых нерабочих ламповых китайских гирлянд, но я специально выбрал те где проводки толще. И термоусадки набрал для изоляции.
  2. Так всё замерил напругу с другой полярностью и всё понял в чём дело так что буду делать тогда с общим плюсом. Да распиновку транзистора я проверил и впаял верно. Саму гирлянду я кстати пока не паял. Занимаюсь контроллером. Потому как я уже сразу понимал что гирлянду нужно паять уже под сам контроллер так могут возникнуть сюрпризы в виде переполюсовки.
  3. Один вывод через резистор к коллектору транзистора, а второй вывод на землю так как по задумке от микросхемы должен идти плюс, а минус общий. Или мне прийдётся делать переполюсовку?
  4. @_abk_ Ну так конечно там светодиод пока через сто омный резистор подключен в качестве показателя сработает или нет.
  5. @El-Shang Спасибо при отключении JTAGEN в фьюзах +5 вольт ушли и теперь эта часть работает как и должна. @Dr. West Сделал всё так убрал реле, заменил транзисторы на 2N4401 и резисторы на 330 ом. Но вот в чём суть через ключи напруга не проходит. Промерял мультиметром в разных точках на выходах микросхемы напруга появляется как и положено 5 вольт, но после резистора остаётся всего лишь 0.7 вольта, а в коллекторе транзистора вообще по нолям.
  6. @El-Shang Попробую такой вариант применить. В фьюзах есть только JTAGEN это оно? просто ничего больше похожего нету.
  7. @Dr. West И на какое сопротивление резисторы ставить? Если уменьшить раза в 3 я так понимаю на 330 ОМ будут в самый раз. А это реально мысль написать тестовую прошивку и проверить микросхему. Одна кстати вообще мёртвая попалась программатором ошибку била. Остальные не знаю есть ещё четыре проверю. Возможно реально микросхема побитая.
  8. @makcucm8 Ну так да я изначально в коде все светодиоды выставляю в ноль и только при нажатии кнопки или выполнения условия светодиод должен включится, но тут какая то таинственная загадка для меня с этим. И оно вообще не реагирует ни на что Там всё время сидит +5V. @Dr. West Так как у меня уже всё собрано на чистовую и переделывать хотелось бы с минимальными затратами нашёл сейчас у себя транзисторы 2N4401 распиновка у них похожая да и по характеристикам помощнее BC547. Да и мою гирлянду должно потянуть. Поэтому я просто заменю транзисторы в ключах и уберу все реле. @El-Shang Попробую проверить. Ну как подтянуть вывод к нулю изначально? Если вроде как в коде я это выставил, но оно не действует.
  9. @Dr. West По поводу кондёров на схеме как то не обозначил, но в реале на входе питания стоят на 0.1 uF и элекролит на 680uF. А реле поставил так как побоялся что будет слишком большая нагрузка на микросхему ведь туда планируется подключить по 20 светодиодов на каждый канал (вывод микросхемы) не знаю достаточно ли будет если оставить только транзисторные ключи. Кстати по поводу питания питается всё это от блока питания на 5V 2A.
  10. Решил собирать новогоднюю гирлянду и за основу взял микросхему ATMEGA16 прошивку пишу на си. Задумка хорошая вроде как даже получается, но есть одна вещь которую я так и не могу понять. Вот в общем схема и код прошивки (код ещё не дописан). Код прошивки: #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> volatile unsigned char power=0; volatile unsigned char menu=0; int main(void) { DDRA = 0b11110000; DDRB = 0b00000000; DDRC = 0b11111111; DDRD = 0b11111111; PORTA = 0b00001111; PORTB = 0b11111111; PORTC = 0b00000000; PORTD = 0b10000000; while(1) { if (~PINB & (1<<0)) { while(~PINB & (1<<0)); if (PINC) { PORTD = 0b10000000; PORTC = 0b00000000; PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); power=0; } else { PORTD &= ~(1<<7); PORTC |= (1<<0); power=1; } } if (power==1) { if (~PINB & (1<<1)) { PORTC |= (1<<1); PORTC &= ~((1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=1; } if (~PINB & (1<<2)) { PORTC |= (1<<2); PORTC &= ~((1<<1)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=2; } if (~PINB & (1<<3)) { PORTC |= (1<<3); PORTC &= ~((1<<1)|(1<<2)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=3; } if (~PINB & (1<<4)) { PORTC |= (1<<4); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=4; } if (~PINB & (1<<5)) { PORTC |= (1<<5); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=5; } if (~PINB & (1<<6)) { PORTC |= (1<<6); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=6; } if (~PINB & (1<<7)) { PORTC |= (1<<7); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)|(1<<7)); menu=7; } if (~PINA & (1<<0)) { PORTA |= (1<<4); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<5)|(1<<6)|(1<<7)); menu=8; } if (~PINA & (1<<1)) { PORTA |= (1<<5); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<6)|(1<<7)); menu=9; } if (~PINA & (1<<2)) { PORTA |= (1<<6); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<7)); menu=10; } if (~PINA & (1<<3)) { PORTA |= (1<<7); PORTC &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)); PORTA &= ~((1<<4)|(1<<5)|(1<<6)); menu=11; } if (menu==1) { PORTD |= (1<<0); PORTD &= ~((1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)); _delay_ms(300); PORTD |= (1<<1); PORTD &= ~((1<<0)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)); _delay_ms(300); PORTD |= (1<<2); PORTD &= ~((1<<0)|(1<<1)|(1<<3)|(1<<4)|(1<<5)|(1<<6)); _delay_ms(300); PORTD |= (1<<3); PORTD &= ~((1<<0)|(1<<1)|(1<<2)|(1<<4)|(1<<5)|(1<<6)); _delay_ms(300); PORTD |= (1<<4); PORTD &= ~((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<5)|(1<<6)); _delay_ms(300); PORTD |= (1<<5); PORTD &= ~((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<6)); _delay_ms(300); PORTD |= (1<<6); PORTD &= ~((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)); _delay_ms(300); } if (menu==2) { PORTD |= (1<<0); _delay_ms(300); PORTD |= (1<<1); _delay_ms(300); PORTD |= (1<<2); _delay_ms(300); PORTD |= (1<<3); _delay_ms(300); PORTD |= (1<<4); _delay_ms(300); PORTD |= (1<<5); _delay_ms(300); PORTD |= (1<<6); _delay_ms(300); PORTD &= ~(1<<0); _delay_ms(300); PORTD &= ~(1<<1); _delay_ms(300); PORTD &= ~(1<<2); _delay_ms(300); PORTD &= ~(1<<3); _delay_ms(300); PORTD &= ~(1<<4); _delay_ms(300); PORTD &= ~(1<<5); _delay_ms(300); PORTD &= ~(1<<6); } if (menu==3) { PORTD |= ((1<<0)|(1<<6)); _delay_ms(300); PORTD |= ((1<<1)|(1<<5)); _delay_ms(300); PORTD |= ((1<<2)|(1<<4)); _delay_ms(300); PORTD |= (1<<3); _delay_ms(300); PORTD &= ~((1<<0)|(1<<6)); _delay_ms(300); PORTD &= ~((1<<1)|(1<<5)); _delay_ms(300); PORTD &= ~((1<<2)|(1<<4)); _delay_ms(300); PORTD &= ~(1<<3); _delay_ms(300); } } } } А в чём заключается проблема при подаче питания и не зависимо от каких либо нажатий кнопок на некоторые ножки микросхемы (ножки 24, 25, 27) прилетает +5V там где впринцепи их не должно быть при запуске. Проверял мультиметром на плате всё в норме нигде не подкорачивает всё на своих местах да плюсовая дорожка там далеко.
  11. Уж и накрутил я всё это. Сам себе усложнил зачем то задачу, а ведь всё оказалось намного проще чем я думал. Посмотрел несколько видео уроков по программированию микросхем и без проблем написал на СИ этот переключатель в Мегу8. Всё прекрасно работает и коду по минимуму.
  12. @ARV Хотя сейчас всё обдумав как следует и поняв сложившуюся ситуацию думаю ты прав стоит мне воспользоваться этим вариантом, но так как там собирается таймер мне не нужно будет повторять всю схему, а достаточно взять часть с переключателем и индикацией и скрестить с 8 мегой так как именно она будет получать команды от переключателя и выполнять все действия.
  13. @ARV Спасибо конечно можно и так, но это уже слишком обьёмно получается. Я сейчас уже как то склоняюсь к варианту написания скрипта на си. Если всё таки не получится так как я задумывал изначально, то сделаю на двух кнопках с поочерёдным переключением режимов. Опять же понятное дело мега8 очень поможет ведь всё равно на ней идёт выполнение программ.
  14. @солар 155ИД7 А как с ним работать? Схемку и подробное пояснение можно. И что это за прикреплённый файл? Который вообще непонятно чем и как открывается.
  15. Не знаю даже как дальше делать в общем собрал я по этой схеме переключатель, но работает он с непонятными глюками. Видимо всё таки что то влияет из моей схемы самого устройства на этот переключатель и получается, то сразу несколько светодиодов засветит на разных кнопках, то заморгают и часть из них потухнут и зажгутся другие. Ладно буду искать другие варианты для сборки переключателя. Предлагайте любые варианты как кодом на микросхеме так и схемы на всяких деталях.
×
×
  • Create New...