Доброго времени суток всем! Подскажите в чем проблема может быть. Написал скетч и программу на Delphi для управления светодиодным модулем p10 для Ардуино Уно. Все работало. Заменил на Ардуино Мега 2560 - перестало работать. Привожу текст скетча: Код (C++): #include <SPI.h> #include <DMD2.h> #include <Arial_Black_16_ISO_8859_1.h> #define DISPLAYS_WIDE 1 #define DISPLAYS_HIGH 1 int i2; char test[255]; String inString;String MyStr=""; int i4=1; int i=1; SoftDMD dmd(DISPLAYS_WIDE,DISPLAYS_HIGH); DMD_TextBox box(dmd, 0, 0, 32, 16); void setup() { Serial.begin(9600); dmd.setBrightness(255); dmd.selectFont(Arial_Black_16_ISO_8859_1); dmd.begin(); } void loop() { while (Serial.available()>0){ // проверяем, поступают ли какие-то команды char val = Serial.read(); // переменная val равна полученной команде if (val!= 13) { inString += val; // формируем строку } if (val == 13) { int i2=atoi(&inString[0]); if (i2==8){MyStr="";dmd.clearScreen();box.clear();} if (i2>8){if (i2<257){ MyStr="";dmd.clearScreen();box.clear(); test[i4]={i2}; while (i<(i4+1)){ MyStr+=test;i++;} i4++; i=1; //dmd.drawString(0, 0, MyStr); } } inString = "";} } dmd.drawString(0, 0, MyStr); i4=1; } Если просто заменить переменную MyStr на конкретное значение, на панель выводится эта надпись. Т.е. проблема я так понимаю с чтением из порта Поправьте если затупил
оформите, пожалуйста, код в тэги Скажите, что именно перестало работать? А подключили вы все правильно?
Извините, понял. при замене уно на мегу ничего не выводится на светодиодную панель при попытках послать что либо с пк через порт. Если в скетче просто задать текст, то после заливки в мегу он появится на панели. Т.е. панель к меге подсоединена правильно
Так и не могу решить проблему. Возможно есть особенности передачи данных через com порт из Delphi именно для меги? Вот кусок кода на Delphi Код (C++): CommPortDriver1.PortName:='\\.\'+'COM3'; CommPortDriver1.BaudRateValue:=9600; CommPortDriver1.InBufSize:=2048; CommPortDriver1.InputTimeout:=200; CommPortDriver1.OutBufSize:=2048; CommPortDriver1.OutputTimeout:=500; CommPortDriver1.PollingDelay:=50; CommPortDriver1.DataBits:=db8BITS; CommPortDriver1.StopBits:=sb1BITS; CommPortDriver1.Connect;
Delphi тут не при чем. Со стороны PC это обычный последовательный порт. Если с Уно работало - должно и с Мегой работать. Проверяли в Диспетчере устройств, порт создается при подключении Меги? Этот порт используете? Если да - ищите на стороне Меги, пробуйте сначала с обычным монитором порта в Arduino IDE поработать. Послать что что то Меге, получить.
Действительно это не причем. Проверил сигналы на порт правильно поступают, а вот устройства, подключенные к ним не работают. Возможно дело в библиотеках, я использую DMD2.h и Led4Digits.h (это для таймера светодиодного)