Приветствую Вас Гость | RSS

       КОНТРОЛЛЁРЫ
Пятница, 29.03.2024, 10:50
Главная » 2013 » Июнь » 22 » Светодиодная матрица 8X8 программируемая windows-приложением
09:09
Светодиодная матрица 8X8 программируемая windows-приложением
Устройство представляет собой светодиодную матрицу, алгоритм моргания которой можно задать в визуальном редакторе - отдельном приложении написанном на VB. 
Сама матрица состоит из 64 смд светодиодов и 8 регистров сдвига hc595. Используется статическая
индикация. 

Чтобы не заморачиваться с двусторонней разводкой на обратную сторону платы я поместил все недостающие перемычки.




.rec2


rek3

Здесь же видны два разъёма - один для подключения к контроллеру , а второй (тот,что слева) для следующих таких же плат. Планировалось сделать их несколько,а потом соединить последовательно.
На фотографии ниже видны маленькие светодиоды,не смотря на размеры они довольно яркие.

эrek4

А это видео, показывающее как работать в приложении для создания различных сногсшибающих эффектов. 



Редактор интуитивно понятный , поэтому объяснять особо нечего ,кроме,одной кнопки - "сгенерировать текст".После того как эффект будет создан , нам понадобиться код для микроконтроллера.Именно эта часть и появится в окне .Останется только добавить ее в основную программу и прошить контроллер. 
Пару слов о схеме микроконтроллера.Приводить ее я здесь даже не стал. Там нет ничего особенного.Все типовое.Я использовал pic16f628a.Можно использовать любые ножки ,только не забудьте отключить компараторы и на RA4 повесить подтягивающий резистор. Я  не стал  паять платы, нашел под рукой уже готовую от другого устройства.Для демонстрации хватило вполне. 

rek1

Теперь о программе для микроконтроллере. Программа написана на  Picbasic Pro. Все непонятные моменты описал в комментариях.

'****************************************************************
'*  Name    : rek.BAS                                           *
'*  Author  : Khodov                                            *
'*  Notice  : Copyright (c)  Копируйте на здоровье              *
'*          : All Rights Reserved                               *
'*  Date    : 09.05.2013                                        *
'*  Version : 1.0 для проекта  REK25                            *
'*  Notes   :  частоту поставить HS!!!!                         *
'****************************************************************
  
  include "modedefs.bas"       '
  symbol takt = portb.2
  symbol dan  = portb.1              ' ножка для передачи данных
  symbol zachelka  = portb.3 
  cmcon=%111                '   
  trisa=%00011               '   
  trisb=%10000000            '
  porta=0
  portb=0
  m1 var byte[21]                 '  
  m2 var byte[21]
  m3 var byte[21]                '   
  m4 var byte[21]                '  
  m5 var byte[21]
  m6 var byte[21]
  m7 var byte[21]
  m8 var byte[21]
  x var byte 
   
   m1[0]=167 :m2[0]=6:m3[0]=6:m4[0]=94 :m5[0]=124:m6[0]=48  :m7[0]=96:m8[0]=179
'1----------------------------------------------------------------------------------------
   m1[1]=88:m2[1]=9:m3[1]=9:m4[1]=161:m5[1]=131:m6[1]=192:m7[1]=192:m8[1]=76
'2----------------------------------------------------------------------------------------
   m1[2]=0:m2[2]=224:m3[2]=208:m4[2]=0  :m5[2]=0:m6[2]=13  :m7[2]=11:m8[2]=0 
'3----------------------------------------------------------------------------------------
   m1[3]=0:m2[3]=16:m3[3]=32:m4[3]=0  :m5[3]=0:m6[3]=2  :m7[3]=4  :m8[3]=0
'4----------------------------------------------------------------------------------------   
   m1[4]=0:m2[4]=0:m3[4]=0:m4[4]=0 :m5[2]=0:m6[4]=0 :m7[4]=0  :m8[5]=0
'5----------------------------------------------------------------------------------------
   m1[5]=167:m2[5]=6:m3[5]=6:m4[5]=94:m5[5]=124:m6[5]=48:m7[5]=96  :m8[5]=179
'6---------------------------------------------------------------------------------------
   m1[6]=88 :m2[6]=9:m3[6]=9:m4[6]=161:m5[6]=131:m6[6]=192:m7[6]=192 :m8[6]=76
'7----------------------------------------------------------------------------------------
   m1[7]=0  :m2[7]=16 :m3[7]=32:m4[7]=0:m5[7]=0:m6[7]=2:m7[7]=4:m8[7]=0
'8----------------------------------------------------------------------------------------
   m1[8]=0  :m2[8]=0 :m3[8]=0:m4[8]=0:m5[8]=0:m6[8]=0:m7[8]=0:m8[8]=0
'9----------------------------------------------------------------------------------------
   m1[9]=0  :m2[9]=16  :m3[9]=32 :m4[9]=0:m5[9]=0 :m6[9]=2:m7[9]=4:m8[9]=0
'10----------------------------------------------------------------------------------------
   m1[10]=0:m2[10]=240  :m3[10]=240:m4[10]=0:m5[10]=0:m6[10]=15:m7[10]=15:m8[10]=0
'11-----------------------------------------------------------------------------------------
   m1[11]=88:m2[11]=249:m3[11]=249:m4[11]=161:m5[11]=131:m6[11]=207:m7[11]=207:m8[11]=76
'12------------------------------------------------------------------------------------------
   m1[12]=255:m2[12]=255:m3[21]=255:m4[12]=255:m5[12]=255:m6[12]=255:m7[12]=255:m8[12]=255
'13------------------------------------------------------------------------------------------
   m1[13]=255:m2[13]=239:m3[13]=223:m4[13]=255:m5[13]=255:m6[13]=253:m7[13]=251:m8[13]=255
'14------------------------------------------------------------------------------------------
   m1[14]=255:m2[14]=15:m3[14]=15:m4[14]=255:m5[14]=255:m6[14]=240:m7[14]=240:m8[14]=255
'15------------------------------------------------------------------------------------------
   m1[15]=167:m2[15]=22:m3[15]=38:m4[15]=94:m5[15]=125:m6[15]=50:m7[15]=52:m8[15]=179
'16------------------------------------------------------------------------------------------
   m1[16]=0:m2[16]=224:m3[16]=208:m4[16]=0:m5[16]=0:m6[16]=13:m7[16]=11:m8[16]=0
'17------------------------------------------------------------------------------------------
   m1[17]=88:m2[17]=9:m3[17]=9:m4[17]=161:m5[17]=131:m6[17]=192:m7[17]=192:m8[17]=76
'18------------------------------------------------------------------------------------------
   m1[18]=0  :m2[18]=0  :m3[18]=9:m4[18]=161:m5[18]=251:m6[18]=208 :m7[18]=192:m8[18]=76
'19-------------------------------------------------------------------------------------------
   m1[19]=0:m2[19]=16:m3[19]=48:m4[19]=48:m5[19]=255:m6[19]=255:m7[19]=92 :m8[19]=0
'20-------------------------------------------------------------------------------------------
   m1[20]=0:m2[20]=240:m3[20]=240:m4[20]=240:m5[20]=255:m6[20]=255:m7[20]=255:m8[20]=0
'21-------------------------------------------------------------------------------------------   
   main:                 '
  shiftout dan,takt,msbfirst ,[m1[x],m2[x],m3[x],m4[x],m5[x],m6[x],m7[x],m8[x]] 'выводим благополучно на
  pulsout  zachelka,10        '   индикатор
  ledzvon=0                '    
  pause 50               '  
  goto main 
 
Сперва мы задаём массивы для каждого такта, всего у нас их будет 220, после чего программа начнет новый цикл. В каждом такте формируется код из восьми значений. Каждое значение вписывается именно в свой сдвиговый регистр. Паузой задается частота смены кадров.
В архиве программа для компьютера - несколько сыроватая, но код открытый можете доработать и пользоваться.   

Архив программы для компьютера

Просмотров: 1789 | Добавил: Underground | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: