Jump to content
RIMUS1989i

Анализатор спектра LED

Recommended Posts

Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. 

Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. 

При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце.

Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать.

Кто что думает по поводу схемы?633408538_.jpg.92f626cda75ae21aeb96442685e41e7c.jpg

бегущая строка.pdsprj Natali_2012_program.hex

Share this post


Link to post
Share on other sites

Мне кажется проще применить адресные светодиоды типа WS2812, WS2813 и выкинуть всю кучу корпусов. Бонусом будут цвета

Share this post


Link to post
Share on other sites

Плюс к тому, можно не заботиться об обслуживании динамической индикации и спокойно заниматься своими делами, изредка (относительно) обновляя "экран".

Share this post


Link to post
Share on other sites

Особенности схемотехники и трассировки печатных плат для STM32WB55

Разработка новых устройств на базе беспроводного микроконтроллера STM32WB от STMicroelectronics может быть сделана в короткий срок, если выполнять некоторые важные правила и воспользоваться готовыми конструктивными решениями и рекомендациями инженеров ST.

Читать статью

41 минуту назад, optima сказал:

Бонусом будут цвета

И еще не маловажный момент это простая регулировка яркости.

Share this post


Link to post
Share on other sites

Или для ускорения использовать дешифраторы. А еще лучше заменить всю "рассыпуху" на ПЛИС.

Edited by _abk_

Share this post


Link to post
Share on other sites
                     

CoolGaN - на предельной скорости коммутации!

Решения на галлий-нитриде (GaN) обладают фундаментальными преимуществами перед кремнием. В частности, имея более высокую критическую напряжённость электрического поля, в сравнении с традиционными кремниевыми транзисторами, транзисторы на основе галлий-нитрида обладают выдающимися динамическими характеристиками, что позволяет коммутировать их на высоких частотах. Семейство CoolGaN™ – это именно то, что необходимо, чтобы поднять ваши устройства на принципиально новый уровень. Мы собрали все самые интересные материалы по данной теме на одной странице.

Читать статьи

6 часов назад, RIMUS1989i сказал:

боюсь мощности МК не хватит для обработки FFT и вывода на матрицу

Для "спектроанализатора" хватит вполне.

Share this post


Link to post
Share on other sites
10 часов назад, optima сказал:

Мне кажется проще применить адресные светодиоды типа WS2812, WS2813 и выкинуть всю кучу корпусов. Бонусом будут цвета

Я думал об этом, но у меня место ограничено, светодиоды будут в корпусе 0805. Размеры платы 220х73. 

 

9 часов назад, _abk_ сказал:

Или для ускорения использовать дешифраторы. А еще лучше заменить всю "рассыпуху" на ПЛИС.

ПЛИС я не знаю ещё. :( Да и это мало ещё рассыпухи. 

 

8 часов назад, ARV сказал:

хватит вполне

Ну а поповоду моей схемы что думаете? На сколько я разгружу МК? 

Share this post


Link to post
Share on other sites
16 минут назад, RIMUS1989i сказал:

Размеры платы 220х73

Размер WS2812  5x5мм  то количество что у вас на схеме спокойно разместится на вашей платке!

27 минут назад, RIMUS1989i сказал:

светодиоды будут в корпусе 0805

Его размер 1,25х2мм это будет мелко и не красиво,  дело конечно ваше!

 

31 минуту назад, RIMUS1989i сказал:

На сколько я разгружу МК? 

 я бы не разгружал МК а на оборот взял 60 - 100 ногий корпус и не парился с логикой

Share this post


Link to post
Share on other sites

Вот не так давно приходилось делать бегущую строку на WS2812  ее размер 160х1000  светодиодов 8х60, удобно то что все по одному проводу и ни каких соплей. Жалко только что видео не передает в полной мере цвета и движение, на самом деле все плавно и красиво!

https://www.youtube.com/watch?v=3uDQ-0GVU8o

Плотно посаженые светики думаю на анализаторе будут смотреться очень даже не плохо.

 

Edited by optima

Share this post


Link to post
Share on other sites

Хочу сделать наподобие этого https://www.youtube.com/watch?v=EjbKtEFmIM8

Будет бутерброд, сперва накладка из непрозрачного оргстекла с профрезированными отверстиями 5x2мм, затем плата с самой матрицей, а за ней уже модулем плата контроллера. Перед накладкой будет какой нибудь светофильтр, например как в LCD дисплее.

777869459_.JPG.fda5ea93cf282036b96335e3d2bf20b1.JPG

2132583679_Ledmatrix.JPG.60f250bab77de3726a3148d23c57a938.JPG

MC.JPG.be5cf86a57740ec9a26f503a15c3144c.JPG

1 час назад, optima сказал:

Размер WS2812  5x5мм

Плата уже будет минимум 100мм по высоте.

1 час назад, optima сказал:

а на оборот взял 60 - 100 ногий корпус

у них ценник уже выше. Например atmega128 стоит на 250р. дороже atmega328 со всей логикой. И тактовая частота 128й 16, вместо 20. хотя без логики конечно этого за глаза хватит.

38 минут назад, optima сказал:

будут смотреться очень даже не плохо.

Но опять же все упирается в размер, плата будет стоять в усилителе высотой 100мм. Были бы эти светики в более маленьком корпусе.:(

Share this post


Link to post
Share on other sites

Посмотри лучше в сторону stm32  ценники на них по гуманнее,  да и начинка покруче 

12 минут назад, RIMUS1989i сказал:

Хочу сделать наподобие этого

Вот и у них  МК  64 ноги

14 минут назад, RIMUS1989i сказал:

Плата уже будет минимум 100мм по высоте.

Можно немного и сократить количество, хоть ws2812 и размером 5х5 в нем ведь 3 светодиода! по мимо плюшек в виде цвета и яркости нет необходимости в установке дополнительных ключей в виде транзисторов или ULN

Share this post


Link to post
Share on other sites
6 минут назад, optima сказал:

Посмотри лучше в сторону stm32

Тяжко для меня пока, особенно их первоначальная настройка..:wacko:

 

 

Share this post


Link to post
Share on other sites
3 часа назад, RIMUS1989i сказал:

Ну а поповоду моей схемы что думаете? На сколько я разгружу МК? 

Понятия не имею, насколько. Думаю, несущественно.

Я делал анализатор 10 полос по 15 светиков красно-зеленых, без всяких там регистров на 32-й меге.

 

Share this post


Link to post
Share on other sites

Набросал схему матрицы RGB, подскажите как оптимизировать, чтобы не использовать 83 транзистора для матрицы 20х20. 

2118647497_rgbmatrix.JPG.5650b654d63fce7e46cd203bb9780bef.JPG

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By pedrofan
      Здравствуйте, помогите, пожалуйста, данная программа должна несколько раз инкрементировать введеное с клавиатуры значение, например, если я ввожу 31, то на выходе должно получиться 31 32 33 34, а в протеусе получается вот. Прилагаю код.

      lab_4_1.asm
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
  • Сообщения

    • @slavake На 73 странице есть подробный материал по Вашей схеме. В таком варианте как Ваш, стрелка не становится на ноль. Надо добавить резистор. И в измерительную обмотку резистор 4 Ом. Тогда шкала получается более - менее равномерной. А так, в целом, схема проще не придумаешь! Хороший пробник. Сигнал приближенный к синусу.
    • В сплане я смотрел, но там нет информации какие резисторы чип, а какие выводные. Что за тип чип резисторов. В китах двухэтажника Nataly продавались готовые платы с уже запаяными чип резисторами, но вариант с форсированным питание, только голые платы. По фотографиам Вадима смотреть если только ....
    • Ну так смотря, где находится объект, может это новый микрорайон в пустом поле, автор же не уточнил. Можно шуметь и ночью. Да и рассуждения про ТБ тут излишние. Судя по тому, что строитель самостоятельно занимается обеспечением освещения своего рабочего места, а электрик, вместо того, чтобы вовремя менять лампочки, советует ему, как лучше переделать купленную за собственные деньги лампу, на этой стройке на ТБ с размаху клали (или ложили - не знаю как правильно).
    • Просто показать, собрал в симуляторе. V1,V2 имитируют обмотки трансформатора, на одной 23 вольта амплитуда, на другой 22, сопротивление я указал 0,5 Ом.(хз какое оно там) Получили  пульсации 50Гц на +, на нижнем графике. На среднем графике ток V1 и V2, при увеличении нагрузки ток через V2 тоже появится. На верхнем графике ток "по массе" между трансформатором и конденсаторами. При одинаковом напряжении на обмотках, ток отсутствует. Хотя в процессе работы усилителя он конечно будет кратковременно появляться из за разности потребляемого тока в плечах.
    • Дежурка не обдувается вентилятором, когда компьютер выключен, а потребление от неё всё равно может быть заметным (материнка, мышь, клавиатура, сетевая карта). Плюс к тому, ещё и компоновка иногда такая неудачная, что и с вентилятором там нифига не охлаждается. Самое смачное -  некоторые любят поставить конденсатор фильтра в непродуваемом месте, вплотную к радиатору или в щель между трансформатором дежурки и ТГР. Поэтому на пожилых БП надо всю дежурку сразу проверять поголовно, даже если она, вроде бы, работает.
    • Что там разбираться то? Включил в сеть и замерил напряжения на вторичке. На одном отводе должно быть 24 Вольта, на другом чуть больше. Соответственно, припаиваются к разъёмам - один для нормального нагрева, другой для форсированного. Можно один разъём удалить и поставить тумблер вместо него. Т.к. в розетках сейчас не 220 Вольт, а 230, то и напряжения будут немного выше.
×
×
  • Create New...