Berg

Members
  • Публикации

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

  • Посещение

Репутация

11 Обычный

О Berg

  • Звание
    Осваивающийся
  • День рождения 12.03.1976

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    6-10 лет

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

540 просмотров профиля
  1. main.c У меня ничего не ругается. А в настройках только шрифт правил.
  2. U =((readADC(0)*20.00/1023)); // это засуньте уж в какую-нибудь функцию точнее в main и переменные глобальные объявляйте сразу после инклюдов, точнее до функций где они могут быть применены
  3. Заблокировалась Mega ! Help !

    Мне тоже не помогал JP3. Другим помог. Поищи на этом форуме, человек писал как вылечил эту беду с помощью софта.
  4. Заблокировалась Mega ! Help !

    JP3 перемкни
  5. вот наглядное видео по таймеру https://www.youtube.com/watch?v=fxfvNA_guF4&list=PLygUYOEl6XIpFyd-1n6O2RYCqLisJl-W6&index=8
  6. Не понел про "правый" столбец. Если имелось в виду, что при 100Ом затрется знак Ома, то я делал так: float napryazh, tok, soprotivl; // объявляем глобально (перед функцией main) ... napryazh =((readADC(1)*2.56*(30/2.56))/1023); tok =((readADC(2)*2.56*(6/2.56))/1023); if(tok > 0){ soprotivl = napryazh / tok; if(soprotivl < 1){Lcd_printf(9,1,FONT_1X,soprotivl,2);} if(soprotivl >= 1 && soprotivl < 10){Lcd_printf(12,1,FONT_1X,soprotivl,0);} if(soprotivl > 9 && soprotivl < 100){Lcd_printf(11,1,FONT_1X,soprotivl,0);} if(soprotivl > 99 && soprotivl < 1000){Lcd_printf(10,1,FONT_1X,soprotivl,0);} if(soprotivl > 999 && soprotivl < 10000){Lcd_printf(9,1,FONT_1X,soprotivl,0);} } else{Lcd_prints(9,1,FONT_1X,(unsigned char*)PSTR("----"));} Lcd_prints(13,1,FONT_1X,(unsigned char*)PSTR("{"));// знак Ома ... Еще готовься к тому, что в железе измеренное напряжение будет "плясать" до безобразия, в зависимости от пульсаций БП, сотое значение так вообще "8" будет. В этом поможет таймер, настраивай на миллисекунд так 60 и по флагу выводи значения на экран каждые 0.5сек. Так же этот таймер пригодится для опроса кнопок, если они планируются.
  7. как организовали полив?
  8. Звук нажатия клавиш

    буззер https://yandex.ru/images/search?text=подключение буззера к микроконтроллеру&stype=image&lr=967&noreask=1&source=wiz пикать будет самое то если будет слишком громко, отверстие заклеиваем
  9. Тут копал? http://radiokot.ru/forum/viewtopic.php?t=78889&f=20#p1432533
  10. Тема то не умрет, главное чтоб у тебя не пропало желание далее изучать мир МК. А чем тебя не устраивает библиотека, которая использовалась в видеокурсе? Если тебе нужен как на скрине большой и узкий шрифт(5х14), то в файле n5110.c ищем функцию - byte LcdChr ( LcdFontSize size, byte ch ) и закомментируем пару строчек: // Копируем две части в кэш LcdCache[tmpIdx++] = b1; // LcdCache[tmpIdx++] = b1; // LcdCache[tmpIdx + 82] = b2; LcdCache[tmpIdx + 83] = b2; там же чуть ниже правим так: // Обновляем x координату курсора LcdCacheIdx = (LcdCacheIdx + 5) % LCD_CACHE_SIZE;// было 11 Симпотичные шрифты и специфичные знаки можно самому рисовать или использовать чужие, при этом не прыгая из библы в библу. Есть проги помогающие в этом. Вот к примеру знак Ома и Цельсия, как на скрине твоем. В файле n5110.h: { 0x5C, 0x62, 0x02, 0x62, 0x5C }, // 0x7B 123 знак Ома вместо "{" { 0x01, 0x3C, 0x42, 0x42, 0x42 }, // 0x7D 125 знак Цельсия вместо "}" строки с символами: "{" и "}" закомментируем. Вот мой БП рожденный после просмотра видеокурсов. 9 порогов срабатывания защиты при превышении тока, отключение сработанной защиты ручное или автоматическое. Пока ждал дисплей с алли немного изучил таймер и ШИМ, и прикрутил управление вент. охлаждения через ШИМ 30%, 60% и 100% при определенных температурах с настройкой через меню. По поводу точности, думаю для БП оно прям суперское и не нужно, для этого существуют специальные приборы. Ну или использовать ОУ типа Rail to Rail MCP604
  11. Два и более 8-сегментных индикатора от одного МК

    или видосы https://www.youtube.com/watch?v=FE3NaNO6CMc&t=467s // int rc 8000000Hz #include <avr/io.h> #include <avr/interrupt.h> char SEGMENT[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; volatile unsigned char segcounter = 0; volatile int display1 = 0; ISR (TIMER2_OVF_vect) { PORTC &=~ ((1<<PC7)|(1<<PC6)); // Гасим все разряды segcounter++; switch (segcounter) { case 1: PORTD = ~(SEGMENT[display1 % 100 / 10]); PORTC |= (1<<PC7); break; case 2: PORTD = ~(SEGMENT[display1 % 10]); PORTC |= (1<<PC6); segcounter = 0; break; } } int main (void) { DDRC |= (1<<PC7)|(1<<PC6); DDRD |= (1<<PD6)|(1<<PD5)|(1<<PD4)|(1<<PD3)|(1<<PD2)|(1<<PD1)|(1<<PD0); TCCR2 |= (1<<CS22)|(1<<CS20); TIMSK |= (1<<TOIE2); sei(); while(1) { display1=97; } }
  12. ИИП 5в, 0.7а, при чем на входе сразу диодный мост стоит., надо бы после предохранителя варистор поставить поигрался на коленке не много с детектором ноля, я бы не сказал, что уж сильно греется:
  13. Вот спасибо, а я крутился с калькулятором вокруг диаграммы - LED Current Required to Trigger versus LED Pulse Width и параграфа - LED Trigger Current versus PW (normalized), но ничего не вырисовывалось. Придется так сделать, т.к. когда выбирал не обращал внимание на параметр - Minimum trigger current. Надо было смотреть в сторону мос3053. Это да, изначально R2 был 43к, но в наличии был только 1Вт и он грелся до 53°С. Заказал в местном магазине на 2Вт, привезли серые с полосками, так он грелся на много сильнее моего 1Вт МЛТ. Самый близкий на 2Вт МЛТ у себя нашел только 130к, он едва заметно греется. Меандра на коллекторе оптрона не изменилась, поэтому так и осел он в схеме.
  14. Оптосимиcтор стоит MOC3051 или вы предполагаете, что не верная маркировка? Тогда бы вообще ничего не работало, т.к. в момент перехода через ноль подсвет светодиода исключен. Было подобрано оптимальное давление и выставлен подстроечник в районе 80% (94 Ом) при котором импульс отпирания елозет по полуволне в районе 3.8 - 6.2мс. Ранее я упоминал про мерцание, но точнее это было хаотичное моргание.