HELLORADIO.RU — интернет-магазин средств связи
EN FR DE CN JP
QRZ.RU > Каталог схем и документации > Схемы наших читателей > Конструкции для начинающих > Радиолюбительская светомузыка из компьютера на 32 канала

Радиолюбительская светомузыка из компьютера на 32 канала

Радиолюбительская светомузыка из компьютера на 32 канала

Козлов Сергей
uk8amk (at) mail.ru

Предлагаю свой вариант компьютерной светомузыки на 32 канала. Схема проста и не содержит дефицитных деталей, подключается к параллельному порту. Принцип действия следующий. С параллельного порта  по очереди данные D0-D7  записываются в восьмиразрядные регистры D3-D6. Выбор микросхемы для записи в нее двоичного значения происходит путем подачи с регистра Control (выводы 1,14,16) параллельного порта двоичного сигнала на микросхему D1. Она выполняет роль дешифратора. Вывод C2 порта является синхронизирующим (его требует дешифратор). Микросхема D1 имеет инверсные выходы, поэтому к ним подключены 4 инвертора D2. На выходах инверторов формируется управляющий сигнал, разрешающий запись в выбранный регистр D3-D6.

Радиолюбительская светомузыка

Схему можно нагрузить на 32 ярких разноцветных светодиода через 32 одинаковых усилителя. Их входы нужно подключить непосредственно к выходам Q1-Q8 микросхем D3-D6. Получится неплохая светомузыка для дома. Можно также нагрузить ее на 220 вольтовые лампы через тиристорные ключи с гальванической развязкой.

В качестве примера для управления этой схемой можно воспользоваться следующей программой, реализующей эффект «бегущая волна». Код программы был написан на Quick Basic 7.1 и на более ранних версиях не проверялся. Следует отметить также то, что прямой доступ к  портам возможен только в версиях Win9X. Для доступа к портам из версий Windows, базированных на технологии NT, потребуется специальный драйвер.

В приведенном примере используется порт LPT1 с шестнадцатиричным адресом 378. Если у вас используется другой адрес, то придется его поменять, например, в BIOS. К сожалению вариант управляющей программы, работающей со звуком, пока недоступен. Я только начал изменение программных кодов  восьмиканальной версии программы СВЕТОМАНИЯ для работы на 32 канала. Так что в ближайшем будущем ожидается появление новой версии.

Cls

Dim i, j As Integer
Dim dta1, dta2, dta3, dta4 As Long
Dim z
Dim c(32)

j = 0

TIMER ON
On Timer(1) GoSub ABC

Print "Press any key to exit"

Do
Loop Until INKEY$ <> ""

ABC:
        If j > 31 Then j = 0: z = Not (z)

        If Not z Then
                c(j) = 1
        Else
                c(j) = 0
        End If

        j = j + 1

        dta1 = 0
        dta2 = 0
        dta3 = 0
        dta4 = 0

        For i = 0 To 31
                If i < 8 Then
                        If c(i) = 1 Then dta1 = dta1 Or 2 ^ i

                ElseIf i < 16 Then
                        If c(i) = 1 Then dta2 = dta2 Or 2 ^ (i - 8)

                ElseIf i < 24 Then
                        If c(i) = 1 Then dta3 = dta3 Or 2 ^ (i - 16)

                Else
                        If c(i) = 1 Then dta4 = dta4 Or 2 ^ (i - 24)

                End If
        Next i

        OUT &H37A, 3

        OUT &H378, dta1
        OUT &H37A, 4
        OUT &H37A, 3

        OUT &H378, dta2
        OUT &H37A, 5
        OUT &H37A, 3
        
        OUT &H378, dta3
        OUT &H37A, 6
        OUT &H37A, 3
        
        OUT &H378, dta4
        OUT &H37A, 7
        OUT &H37A, 3

        Print dta1, dta2, dta3, dta4

Return

Партнеры