В библиотеке DMD.h есть строка #define PIN_OTHER_SPI_nCS 10.
Что это за пин? Куда его подключать к модулю P10?
Я поменял в нем пины на те которые подключены у меня
#define PIN_DMD_nOE 7 // D9 active low Output Enable, setting this low lights all the LEDs in the selected rows. Can pwm it at very
#define PIN_DMD_A 11 // D6
#define PIN_DMD_B 12 // D7
#define PIN_DMD_CLK 9 // D13_SCK is SPI Clock if SPI is used
#define PIN_DMD_SCLK 8 // D8
#define PIN_DMD_R_DATA 10 // D11_MOSI is SPI Master Out if SPI is used
R -> 11 Pin (в зависимости от цвета панели R - Red, G - Green, W - white)
в исходнике написано же...
//Arduino pins used for the display connection
#define PIN_DMD_nOE 9 // D9 active low Output Enable, setting this low lights all the LEDs in the selected rows. Can pwm it at very high frequency for brightness control.
#define PIN_DMD_A 6 // D6
#define PIN_DMD_B 7 // D7
#define PIN_DMD_CLK 13 // D13_SCK is SPI Clock if SPI is used
#define PIN_DMD_SCLK 8 // D8
#define PIN_DMD_R_DATA 11 // D11_MOSI is SPI Master Out if SPI is used
//Define this chip select pin that the Ethernet W5100 IC or other SPI device uses
//if it is in use during a DMD scan request then scanDisplayBySPI() will exit without conflict! (and skip that scan)
#define PIN_OTHER_SPI_nCS 10
PIN_OTHER_SPI_nCS нужен для того чтобы scanDisplayBySPI() отрабатывала корректно при условии что на шине SPI висит допустим (Ethernet W5100 IC or other SPI) т.е. на этом пине.
А если нужно подключить параллельно несколько строк к адной ардуине, как это можно реализовать?
Можно ведь запараллелить все выходы кроме: PIN_DMD_R_DATA и PIN_DMD_CLK, а их сделать разными, и передавать разные данные на табло. Но только PIN_DMD_R_DATA всегда равен 11, а PIN_DMD_CLK = 13, не важно что я прописываю в DMD.h, она всё равно использует эти пины SPI. Можно как-то выйти из этого положения?
Имею панель RG 32x16, выглядит как ваши (не считая двух светодиодов на пиксель), на обратной стороне имеет маркировку P10(1R1G)3216-4S1. Пытаюсь управлять через arduino duemilanove. Начинал с полностью своего кода - добился вывода пикселей в нужном месте по координата. Дальше наткнулся на эту тему, и решил попробывать библиотеку DMD(чтоб не писать вывод текста самому). Подключил все как указано в DMD.h - но ни к чему не привело. Попробывал убрать следующую проверку:
if( digitalRead( PIN_OTHER_SPI_nCS ) == HIGH )
Видно что что-то бежит и вроде даже как осмысленное, но светодиоды горят в пол накала...и буквы в строке какие-то смазанные.
Переписал полностью код функции:
void DMD::scanDisplayBySPI()
... на основе своего кода который работал. Все вывелось но зеркально относительно горизонтали и инвертировано, но легко поправил. Суть не в этом.
Тесты показали( что и теоретически было ясно) что duemilanove начинает тормозить при подключение двух экранов, при трех картинка вообще замирает. Я даже не пробывал еще управлять зелеными светодиодами.
Пока едет arduino due, упражняюсь с тем что есть.
Насколько я понял библиотека использует SPI для управления панелью, и так вопрос:
- может быть такое, что панель не понимает этот протокол? или это я не понимаю что делаю?
- зачем его использовать? (меньше своего кода разрабатывать, или она быстрее, если есть собственный рабочий код отображения буфера дисплея на панель - может и нет смысла напрягаться)
Нашел библиотеку DMD2. Запустил пример Scrolling alphabet. Перед выводом очередной буквы происходит полное стирание экрана, после чего строка выводится по новым координатам плюс очередная буква. И так в цикле. Изображение выводится не плавно, а рывками. Появляется, гаснет, появляется, гаснет.
Да, скроллинг там еще не реализован, но зато все остальное! Шикарно работает. Могу предложить глянуть исходники старой либы и подглядеть как там скролл сделан и внедрить кусок кода в новую либу либо ждать пока она выйдет из стадии бэты.
Я занимаюсь производством таких бегущих строк, для управления модулями используется контроллер, его стоимость не более 2,5 тыр.
Есть специальная программа которая уже всё это делает... Количество модулей не ограничено, весь вопрос в питании этих модулей.
Я с вами не соглашусь!!! Здесь собираются люди которые склонны к изобретательству. Без этой способности человечества не было бы сейчас ни панелей ни контроллеров. Да вы предлагаете отличное решение ни кто не спорит, но оно заточено только для бегущих строк или статического отображения по программе вами заложенной. А вот вам задачка непосильная контроллеру: Есть автобусный маршрут Волгоград-Знаменск и Знаменск-Волгоград. Надо отобразить на панели город куда движеться автобус. Автобус двигается туда и обратно. Города на панели надо менять в ручную в зависимости куда едет автобус. С помощью контроллера как это сделать? А с помощью Ардуино в легкую. Плюс цена вопроса когда автобусов например 10 шт. будет высока с использованием контроллеров.
P.S. Я кстати сделал для этого маршрута такие таблички, но выбрал дешевые блоки питания с 12в на 5в и в результате погорели частично ардуйны и блоки питания. Блоки питания ставил маломощные. Совет вам ставте специализированные БП для авто(бегущих строк).
Я начинающий. Сижу уже дня 3 с матрицой этой. Не могу вывести 4 адресные линии. Работают либо 2 либо 3 линии. Программу использовал с волгоградом и счетчик
/**
* Программа "счетчик секунд"
*/
// inslude the SPI library:
#include <SPI.h>
#include <Wire.h>
#include <DS1307.h>
const int pin_OE = 7;
const int pin_LD = 6;
const int pin_A = 2;
const int pin_B = 3;
const int pin_C = 4;
const int pin_D = 5;
//const int load = 8;
// Буфер индикатора
unsigned long img_buf[ 16 ];
/**
* Массив знакогенератора для цифр: 0 - 9
*/
const char digits[ 11 * 8 ] =
{ //0
0b00000,
0b01100,
0b10010,
0b10010,
0b10010,
0b10010,
0b01100,
0b00000,
//1
0b00000,
0b00100,
0b01100,
0b00100,
0b00100,
0b00100,
0b01110,
0b00000,
//2
0b00000,
0b01100,
0b10010,
0b00100,
0b01000,
0b10000,
0b11110,
0b00000,
//3
0b00000,
0b11100,
0b00010,
0b01100,
0b00010,
0b00010,
0b11100,
0b00000,
//4
0b00000,
0b10010,
0b10010,
0b10010,
0b11110,
0b00010,
0b00010,
0b00000,
//5
0b00000,
0b11110,
0b10000,
0b11100,
0b00010,
0b10010,
0b01100,
0b00000,
//6
0b00000,
0b01110,
0b10000,
0b11100,
0b10010,
0b10010,
0b01100,
0b00000,
// 7
0b00000,
0b11110,
0b00010,
0b00010,
0b00100,
0b01000,
0b01000,
0b00000,
// 8
0b00000,
0b01100,
0b10010,
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
// 9
0b00000,
0b01100,
0b10010,
0b10010,
0b01110,
0b00010,
0b01100,
0b00000,
// a
0b00000,
0b11100,
0b10010,
0b01110,
0b10010,
0b10010,
0b01101,
0b00000,
};
const char letters[ 1 * 8 ] =
{
// a
0b00000,
0b10010,
0b00000,
0b00000,
0b00000,
0b00000,
0b10010,
0b00000,
};
/**
* Аппаратные настройки
*/
void setup()
{
pinMode (pin_A , OUTPUT);
pinMode (pin_B , OUTPUT);
pinMode (pin_C , OUTPUT);
pinMode (pin_D , OUTPUT);
pinMode (pin_OE, OUTPUT);
pinMode (pin_LD, OUTPUT);
//pinMode (load, OUTPUT);
// initialize SPI:
SPI.setClockDivider(SPI_CLOCK_DIV2);
SPI.begin();
//SPI.setClockDivider(SPI_CLOCK_DIV2);
//Serial.begin(115200);
}
/**
* Вспомогательная функция:
* Вычисление значения data
* @param row — номер строки
* @param buf — указатель на буфер индикатора
* @param regn — номер регистра индикатора
*/
int get_img_byte(unsigned long* buf, int col , int regn )
{
int res = 0;
int m = 24 - ( ( regn / 4 ) * 8 );
int n = ( 15 - ( ( regn % 4 ) * 4 ) - col );
return buf[n]>> m;
}
/**
* Переключение строк
* @param row — номер строки
*/
void set_row( int row )
{
// Приводим row к нужному виду
row &= 0x0F; //03
row = 15 - row;
// Отключаем индикацию
digitalWrite( pin_OE , LOW );
//digitalWrite( load , LOW );
// Переключаем ножк дешифратора
digitalWrite( pin_A , ( row & 1 ) && HIGH );
digitalWrite( pin_B , ( row & 2 ) && HIGH );
digitalWrite( pin_C , ( row & 4 ) && HIGH );
digitalWrite( pin_D , ( row & 8 ) && HIGH );
// Выводим синхроимпульс регистра с параллельной загрузкой
digitalWrite( pin_LD , HIGH );
digitalWrite( pin_LD , LOW );
// Включаем индикацию
digitalWrite( pin_OE , HIGH );
//digitalWrite( load , HIGH );
}
/**
* Обновления индикатора - улучшеная версия
* @param buf — указатель на буфер индикатора
*/
void upload( unsigned long* buf )
{
int regn;
static int col = 0;
if( col >= 4 )
col = 0;
for( regn = 0 ; regn < 16 ; regn++ )
SPI.transfer( ~get_img_byte( buf , col , regn ) );
set_row( col );
++col;
}
/**
* Вывод цифры
* @param x - координата x
* @param y - координата y
* @param dig - цифра
*/
void put_digit( int x , int y , int dig )
{
for( int i = 0 ; i < 8 ; i++ )
{
if( ( ( i + y ) > 15 ) || ( ( x ) > 26 ) ||
( ( i + y ) < 0 ) || ( ( x ) < 0 ) )
continue;
unsigned long tmp = ( ( unsigned long ) digits[ dig * 8 + i ] << ( 26 - x ) );
img_buf[ i + y ] |= tmp;
}
}
//---------------------------------------------------
void put_letter( int x , int y , int let )
{
for( int i = 0 ; i < 8 ; i++ )
{
if( ( ( i + y ) > 15 ) || ( ( x ) > 26 ) ||
( ( i + y ) < 0 ) || ( ( x ) < 0 ) )
continue;
unsigned long tmp = ( ( unsigned long ) letters[ let * 8 + i ] << ( 26 - x ) );
img_buf[ i + y ] |= tmp;
}
}
//--------------------------------------------------
/**
* Вывод двузначного числа
* @param x - координата x
* @param y - координата y
* @param dig - число
*/
void put_2dig( int x , int y , int d )
{
put_digit( x + 5, y , d % 10 );
d /= 10;
put_digit( x , y , d % 10 );
}
//-------------------------------------------------
void put_2let( int x , int y , int l )
{
put_letter( x + 5, y , l % 10 );
l /= 10;
put_letter( x , y , l % 10 );
}
//-------------------------------------------------
/**
* Очистка буфера индикатора
* @param buf — указатель на буфер индикатора
*/
void clear_buf( unsigned long* buf )
{
for( int i = 0 ; i < 16 ; i++ )
buf[i] = 0;
}
/******************************************************/
void loop()
{
setup();
// счетчик циклов обновления
unsigned int counter = 0;
// Счетчик
int cnty = 40;
for( ; ; )
{
upload( img_buf );
if ( counter % 100 == 0 )
{
clear_buf( img_buf );
// Увеличения координаты вывода значения 10-ов мс
// формирование бегущей строки
--cnty;
// Если выехали за край индикатора - начнаем сначала
if ( cnty == 0 )
cnty = 40;
// Получаем заначение мс с момента старта системы
unsigned long time = millis() / 10;
// Вывод бегущей строкой 10-ов мс
//put_2dig( cnty - 8 , 8 , ( time % 100 ) );
//put_2dig( cnty - 8 , 8 , ( 7 ) );
//put_2let( cnty - 8 , 8 , (0) );
//time /= 300;
// Вывод десятков секунд
put_2dig( 20, 0 , RTC.get(DS1307_SEC,true));
//time /= 300;
// Вывод сотен секунд
put_2dig( 10, 0 , RTC.get(DS1307_MIN,false));
//time /= 300;
// Вывод десятков тысяч секунд
put_2dig( 0, 0 , RTC.get(DS1307_HR,false));
//delay(1000);
put_2dig( cnty - 20, 8 , RTC.get(DS1307_YR,true));
//time /= 300;
// Вывод сотен секунд
put_2dig( cnty - 10, 8 , RTC.get(DS1307_MTH,false));
//time /= 300;
// Вывод десятков тысяч секунд
put_2dig( cnty - 0, 8 , RTC.get(DS1307_DATE,false));
}
counter++;
// delay(1);
}
}
Всем привет. Помогите соеденить P10+arduino mega + DMD2 библиотеку. Примеры Волгоград и круг с квадратом работают. Менял пины, изменял номера выводов в библиотеке - всё безрезультатно!
Скорее всего проблема с пинами при подключении, потому что примеры Волгоград и круг работают, на Arduino Nano панель работает на либе DMD2, а вот на 2560 отказывается хотя пишут что DMD2 поддерживает 2560
C DMD2 проблема была в том что яркость 255, а у меня это минимальная яркость. Чтоб было вино надо ставить яркость в 0. И еще, изображение всегда инверсировано (GRAPHICS_ON и GRAPHICS_OFF).
У меня еще проблема в том что панели с двумя светодиодами на пиксель (RG), допилил для отображения 3-х цветов.
Есть панель, но у неё экран поделен на две части по горизонтале, соответственно два входа данных R1, R2. Брал пример из поста № 40, методом тыка вывел слово на экран но только на верхнюю часть через вход R1, если параллельно R1 подключить R2 сответственно слово дублируется на нижнюю часть экрана. Как отдельно писать в нижнюю часть экрана?
Здравствуйте MikSer.Принял вашу критику и установил DMD, TimerOne, Bounce2- и все заработало. Спасибо за терпение. Не могу убрать до100, еще если работает 1 секундомер то расположение было бы по середине.
почитать тут http://forum.freetronics.com/viewforum.php?f=26
У меня все работает корректно. http://vk.com/video27058323_168010129
А какая будет схема подключения для ардуино UNO?
Она отличается от подключения к мега?
http://st.lartmaster.ru/1/759/621/LED_matrix_16x32.pdf
В библиотеке DMD.h есть строка #define PIN_OTHER_SPI_nCS 10.
Что это за пин? Куда его подключать к модулю P10?
Я поменял в нем пины на те которые подключены у меня
Но всё равно не работает, хотя Волгоград прекрасно работает.
Возможно дело в PIN_OTHER_SPI_nCS, но я не могу понять куда его подключать.
Я подключал так:
OE -> 9 Pin
A -> 6 Pin
B -> 7 Pin
CKL -> 13 Pin
SKL -> 8 Pin
R -> 11 Pin (в зависимости от цвета панели R - Red, G - Green, W - white)
в исходнике написано же...
PIN_OTHER_SPI_nCS нужен для того чтобы scanDisplayBySPI() отрабатывала корректно при условии что на шине SPI висит допустим (Ethernet W5100 IC or other SPI) т.е. на этом пине.
Спасибо :) Теперь получилось.
А не мог бы ты подсказать как работать со шрифтами? Как создать свой шрифт?
И как управлять яркостью модулей?
Со шрифтами история очень веселая, но решаемая при помощи волшебной проги GLCD Font Creator https://code.google.com/p/glcd-arduino/downloads/detail?name=GLCDFontCreator2.zip&can=2&q=
она на Java.
Создаеш свой шрифт и экспортируеш, ложищ его в папку DMD библиотеки. В зависимости как его назвал в исходнике объявляеш его.
new_Font имя шрифта, что в мастере шрифтов указали. И все.
По поводу яркости тут есть модифицированная либа http://forum.freetronics.com/viewtopic.php?f=26&t=278&start=20#p2133
А если нужно подключить параллельно несколько строк к адной ардуине, как это можно реализовать?
Можно ведь запараллелить все выходы кроме: PIN_DMD_R_DATA и PIN_DMD_CLK, а их сделать разными, и передавать разные данные на табло. Но только PIN_DMD_R_DATA всегда равен 11, а PIN_DMD_CLK = 13, не важно что я прописываю в DMD.h, она всё равно использует эти пины SPI. Можно как-то выйти из этого положения?
Со шрифтами история очень веселая, но решаемая при помощи волшебной проги GLCD Font Creator https://code.google.com/p/glcd-arduino/downloads/detail?name=GLCDFontCreator2.zip&can=2&q=
она на Java.
Создаеш свой шрифт и экспортируеш, ложищ его в папку DMD библиотеки. В зависимости как его назвал в исходнике объявляеш его.
new_Font имя шрифта, что в мастере шрифтов указали. И все.
По поводу яркости тут есть модифицированная либа http://forum.freetronics.com/viewtopic.php?f=26&t=278&start=20#p2133
Создаю шрифт с помощью GLCD Font Creator, все работает до ASCII 127,любые знаки после
не выводятся на панели. В шрифте все есть до 255. Помогите решить эту проблему
Может есть у кого проверенный файл с русским, пришлите в личку для сравнения с моим
Использую библиотеку DMD
Подскажите пожалуйста.
Имею панель RG 32x16, выглядит как ваши (не считая двух светодиодов на пиксель), на обратной стороне имеет маркировку P10(1R1G)3216-4S1. Пытаюсь управлять через arduino duemilanove. Начинал с полностью своего кода - добился вывода пикселей в нужном месте по координата. Дальше наткнулся на эту тему, и решил попробывать библиотеку DMD(чтоб не писать вывод текста самому). Подключил все как указано в DMD.h - но ни к чему не привело. Попробывал убрать следующую проверку:
Видно что что-то бежит и вроде даже как осмысленное, но светодиоды горят в пол накала...и буквы в строке какие-то смазанные.
Переписал полностью код функции:
... на основе своего кода который работал. Все вывелось но зеркально относительно горизонтали и инвертировано, но легко поправил. Суть не в этом.
Тесты показали( что и теоретически было ясно) что duemilanove начинает тормозить при подключение двух экранов, при трех картинка вообще замирает. Я даже не пробывал еще управлять зелеными светодиодами.
Пока едет arduino due, упражняюсь с тем что есть.
Насколько я понял библиотека использует SPI для управления панелью, и так вопрос:
- может быть такое, что панель не понимает этот протокол? или это я не понимаю что делаю?
- зачем его использовать? (меньше своего кода разрабатывать, или она быстрее, если есть собственный рабочий код отображения буфера дисплея на панель - может и нет смысла напрягаться)
Спасибо.
Посмотрите вторую версию этой библиотеки. Избавились от TimerOne, теперь корректно работаем с сериал портом.
Вот бы скрестить библиотеку AdafruitGFX и DMD2....
Посмотрите вторую версию этой библиотеки. Избавились от TimerOne, теперь корректно работаем с сериал портом.
Вот бы скрестить библиотеку AdafruitGFX и DMD2....
Пожалуйста подскажите где взять библиотеку, без использования TimerOne?
Нашел библиотеку DMD2. Запустил пример Scrolling alphabet. Перед выводом очередной буквы происходит полное стирание экрана, после чего строка выводится по новым координатам плюс очередная буква. И так в цикле. Изображение выводится не плавно, а рывками. Появляется, гаснет, появляется, гаснет.
Посоветуйте метод борьбы с этим эфектом
Да, скроллинг там еще не реализован, но зато все остальное! Шикарно работает. Могу предложить глянуть исходники старой либы и подглядеть как там скролл сделан и внедрить кусок кода в новую либу либо ждать пока она выйдет из стадии бэты.
http://forum.freetronics.com/viewtopic.php?f=26&t=5893 либо ныть и скулить на форуме разрабов. :-)
Товарищи нужна помощь.
Если прописать в коде больше 18 модулей Arduino UNO перестает работать, не отрисовывается вообще ни одно.
1
DMD dmd(18,1);
При этом 18 модулей работают нормально.
Как можно соединить больше 18 модулей P10?
Эксперементальным петём добился корректной работы 22 модулей.
Изменив в DMD.h размер массива marqueeText
1
//Marquee values
2
char
marqueeText[2];
// было char marqueeText[256]
3
byte
marqueeLength;
4
int
marqueeWidth;
5
int
marqueeHeight;
Если добиться работы 24 модулей, то было бы уже хорошо. Но в идеале 30 модулей нужно.
Господа электроники! Зачем вы мучаетесь?
Я занимаюсь производством таких бегущих строк, для управления модулями используется контроллер, его стоимость не более 2,5 тыр.
Есть специальная программа которая уже всё это делает... Количество модулей не ограничено, весь вопрос в питании этих модулей.
Это которая LedShow?
Да, и простая и бесплатная и контроллеры не только BX- поддерживает
Господа электроники! Зачем вы мучаетесь?
Я занимаюсь производством таких бегущих строк, для управления модулями используется контроллер, его стоимость не более 2,5 тыр.
Есть специальная программа которая уже всё это делает... Количество модулей не ограничено, весь вопрос в питании этих модулей.
Я с вами не соглашусь!!! Здесь собираются люди которые склонны к изобретательству. Без этой способности человечества не было бы сейчас ни панелей ни контроллеров. Да вы предлагаете отличное решение ни кто не спорит, но оно заточено только для бегущих строк или статического отображения по программе вами заложенной. А вот вам задачка непосильная контроллеру: Есть автобусный маршрут Волгоград-Знаменск и Знаменск-Волгоград. Надо отобразить на панели город куда движеться автобус. Автобус двигается туда и обратно. Города на панели надо менять в ручную в зависимости куда едет автобус. С помощью контроллера как это сделать? А с помощью Ардуино в легкую. Плюс цена вопроса когда автобусов например 10 шт. будет высока с использованием контроллеров.
P.S. Я кстати сделал для этого маршрута такие таблички, но выбрал дешевые блоки питания с 12в на 5в и в результате погорели частично ардуйны и блоки питания. Блоки питания ставил маломощные. Совет вам ставте специализированные БП для авто(бегущих строк).
Скоро заберу все панели с этого маршрута и что нибудь опять придумаю.
Приветствую! Есть пара модулей Vessem VS128T-16 http://www.ecplaza.net/eparts/link/c10003329.html
Даташит: http://www.epartshub.com/include/fileattach.jsp?filename=00001035-VS128T-16S(ver_5.00).pdf&cmpyCd=00001035&type=Doc
Я начинающий. Сижу уже дня 3 с матрицой этой. Не могу вывести 4 адресные линии. Работают либо 2 либо 3 линии. Программу использовал с волгоградом и счетчик
Всем привет. Помогите соеденить P10+arduino mega + DMD2 библиотеку. Примеры Волгоград и круг с квадратом работают. Менял пины, изменял номера выводов в библиотеке - всё безрезультатно!
Код покажи. Схему соединений опиши, что ли...
Сама либа по адресу https://github.com/freetronics/DMD2
код Волгоград и круг из этой темы, подключение к панели
6 A
7 B
8 SCLK
9 OE
51 R
52 CLK
скетч любой из примера к библиотеке не работает
Неужели никто не знает?
а ты думаешь у каждого второго такая панель?
Не факт :)
Скорее всего проблема с пинами при подключении, потому что примеры Волгоград и круг работают, на Arduino Nano панель работает на либе DMD2, а вот на 2560 отказывается хотя пишут что DMD2 поддерживает 2560
какие пины на нано испльзовал? какие на меге?
Nano - 6, 7, 8, 9, 11, 13
mega 6, 7, 8, 9, 51, 52 не работает
пример волгоград
pinData1 10
define pinClk 9
define pinStr 8
define pinEn 7
define pinA 11
define pinB 12
хз вроде все правильно
менял пины в либе для 2560, тоже не помогает
А Вы внимательно прочли весь топик?
А Вы пробовали использовать либу DMD2 где реализованна другая инициализация объекта DMD?
например так. Яркостью не баловались? И лучше предоставить Ваш код, дабы не плодить полемику.
Про неё (DMD2) речь и идёт. Код из примеров к этой либе.
Рабочий день закончился, завтра отпишусь!
C DMD2 проблема была в том что яркость 255, а у меня это минимальная яркость. Чтоб было вино надо ставить яркость в 0. И еще, изображение всегда инверсировано (GRAPHICS_ON и GRAPHICS_OFF).
У меня еще проблема в том что панели с двумя светодиодами на пиксель (RG), допилил для отображения 3-х цветов.
Исмпользую Arduino DUE.
Мда, на DMD текст бежал намного красивее чем на DMD2 :(
Не обратил внимание...прям заметно "хуже"?
На 6 матрицах, DMD и Nano текст бежал без рывков и подрагиваний. На Mega, DMD2 одной матрице дергается :(
rndvip, поделитесь наработками по данному вопросу
Чем именно? Поправленной DMD2 для двух цветов?
.
Можно и для двух цветов. Было бы отлично увидеть все коды что есть у Вас по DMD и DMD2. Заранее спасибо!
https://drive.google.com/file/d/0B1AvxFrBdup_QkxBLURkZmN2Rzg/view?usp=sharing
Три разноцветных кружка.
rndvip, есть принципиальная разница как инициализировать DMD? (SPIDMD, SoftDMD)
rndvip, есть принципиальная разница как инициализировать DMD? (SPIDMD, SoftDMD)
Я, признаться, не вдавался в подробности. Я использую софт, так как мне важнее чтоб проводки красивее лежали))
ок, спасибо!
Есть панель, но у неё экран поделен на две части по горизонтале, соответственно два входа данных R1, R2. Брал пример из поста № 40, методом тыка вывел слово на экран но только на верхнюю часть через вход R1, если параллельно R1 подключить R2 сответственно слово дублируется на нижнюю часть экрана. Как отдельно писать в нижнюю часть экрана?
Большое Спасибо за помощь - и ненадеялся . Попробую подсоединить к UNO и найти управление. Просто за это БЛАГОДАРЕН.
Японимаю, что Pin2,3 на UNO это 9,10 пока и все - тяжко. Как подсоединить к UNO?
Если есть возможност направте в нужное русло. Спасибо за терпение .
Думаю-так 2-OE, 3-A, 4-B, 11-DATA, 5-LOAD, 13-CLK. по управлениюдисплеем.
Но главное пишел сразу ош-ку при залитие даже без подсоединения д-лея в чем может быть дело?
Здравствуйте MikSer - без вашей помощи просто не обойтись. я просто сборщик ваших творений-который нуждается Вас. Помогите.
Это все очень печально. Начни с установки библиотеки DMD.
https://github.com/freetronics/DMD
Далее попробуй стандартные примеры что ли.
Так подключи.
Не забудь дать 5 вольт на панель, минуса соедини с МК. Учти 2 ампера на одну панель.
Здравствуйте MikSer.Принял вашу критику и установил DMD, TimerOne, Bounce2- и все заработало. Спасибо за терпение. Не могу убрать до100, еще если работает 1 секундомер то расположение было бы по середине.
MikSer СПАСИБО