Специалисты гляньте что не так пожалуйста. Я делаю светодиодный проект. Есть светодиодная строка из светодиодных матриц 8х8 на микросхемах MAX7219. Так же есть семисегментные индикаторы на TM1637 и 5 светодиодов на сдвиговом регистре 74HC595. По отдельности скетчи проверки работают а вот когда обьединяю в один скетч не хочет работать. Не работают светодиоды и строка не хочет работать правильно. Гланьте может я что то не так делаю? Огромное спасибо!!! Код (C++): /*Time_Test*/ #include "TM1637.h" #define DISP1_CLK 30 #define DISP1_DIO 31 #define DISP2_CLK 22 #define DISP2_DIO 23 #define DISP3_CLK 24 #define DISP3_DIO 25 #define DISP4_CLK 32 #define DISP4_DIO 33 #define DISP5_CLK 28 #define DISP5_DIO 29 TM1637 Display_1(DISP1_CLK, DISP1_DIO); TM1637 Display_2(DISP2_CLK, DISP2_DIO); TM1637 Display_3(DISP3_CLK, DISP3_DIO); TM1637 Display_4(DISP4_CLK, DISP4_DIO); TM1637 Display_5(DISP5_CLK, DISP5_DIO); int8_t Time1[] = {1, 2, 2, 0}; int8_t Time2[] = {1, 4, 3, 5}; int8_t Time3[] = {0, 7, 2, 4}; int8_t Time4[] = {0, 9, 4, 6}; int8_t Time5[] = {1, 9, 4, 7}; /*5Led_Test*/ const int data_pin = 2; const int sh_pin = 4; const int st_pin = 3; int bt = 0; void shift(byte v){ for(int z=0; z<8; z++){ digitalWrite(sh_pin, LOW); digitalWrite(data_pin, v & (1 << z )); digitalWrite(sh_pin, HIGH); } digitalWrite(st_pin, HIGH); digitalWrite(st_pin, LOW); } /*Display_Test*/ #include <SPI.h> #include <Adafruit_GFX.h> #include <Max72xxPanel.h> int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI ) int numberOfHorizontalDisplays = 1; int numberOfVerticalDisplays = 25; Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); String tape = "SW12.3 NW14.5 S 15 NE14.3 EW19.2"; int wait = 20; // In milliseconds int spacer = 1; int width = 5 + spacer; // The font width is 5 pixels void setup() /*Time_Test*/ { /*Инициализация дисплеев*/ Display_1.init(); Display_2.init(); Display_3.init(); Display_4.init(); Display_5.init(); /*Устанавливаем яркость свечения дисплеев*/ /*BRIGHT_TYPICAL - нормальная яркость*/ /*BRIGHT_DARKEST - затемнённый дисплей*/ /*BRIGHTEST - яркий дисплей*/ Display_1.set(BRIGHTEST); Display_2.set(BRIGHTEST); Display_3.set(BRIGHTEST); Display_4.set(BRIGHTEST); Display_5.set(BRIGHTEST); /*5Led_Test*/ pinMode(data_pin, OUTPUT); pinMode(sh_pin, OUTPUT); pinMode(st_pin, OUTPUT); /*Display_Test*/ matrix.setIntensity(15); // Use a value between 0 and 15 for brightness // Adjust to your own needs // matrix.setPosition(0, 0, 0); // The first display is at <0, 0> // matrix.setPosition(1, 1, 0); // The second display is at <1, 0> // matrix.setPosition(2, 2, 0); // The third display is at <2, 0> // matrix.setPosition(3, 3, 0); // And the last display is at <3, 0> // ... // matrix.setRotation(0, 2); // The first display is position upside down matrix.setRotation(1); // The same hold for the last display } void loop() { /*5Led_Test*/ shift(1<<bt); bt++; if( bt==8 ) bt = 0; /*Time_Test*/ /*Сразу же гасим десятичную точку для всех знакомест*/ Display_1.point(true); Display_2.point(true); Display_3.point(true); Display_4.point(true); Display_5.point(true); /*Вывод значения температуры на дисплей с десятичной точкой*/ Display_1.display(Time1); Display_2.display(Time2); Display_3.display(Time3); Display_4.display(Time4); Display_5.display(Time5); /*Выводим значение времени на дисплей с разделителем двоеточие*/ /*Также управляем зажиганием и гашением разделителя двоеточие*/ /*Display_Test*/ // for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) { for ( int i = 196 ; i < width * tape.length() + matrix.width() - 1 - spacer;) { matrix.fillScreen(LOW); int letter = i / width; int x = (matrix.width() - 1) - i % width; int y = (matrix.height() - 8) / 2; // center the text vertically while ( x + width - spacer >= 0 && letter >= 0 ) { if ( letter < tape.length() ) { matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); } letter--; x -= width; } matrix.write(); // Send bitmap to display delay(wait); } }
я вам уже на другом форуме ответил - вы "механически" склеили два кода, не потрудившись даже перенести подключения библиотек в начало, неудивительно, что у вас нифига не работает. Когда исправите очевидные косяки - приходите снова и попытайтесь конкретно описать, что именно не работает . Ваша фраза "диоды не работают" - не несет никакой информации. Пример того, что нужно писать - "диоды 1,3, 6 и 8 должны последовательно загораться с интервалом в 100мс и гаснуть одновременно, вместо этого зажигается только диод 9 и мигает раз в секунду"
Злой ты! Искать заставляешь. Тут человеку влом написать что он собственно хотел сделать, и что пошло не так, а ты его в поиск... зверь прямо Я вот человек добрый, никого искать не заставляю, таким как ТС сразу прямые ссылки даю. Вот, например, пусть пользуется
злые вы. Не знаю я как правильно обьединять скетчи. Я понял из всех ответов только что подключение библиотек нужно сместить вверх.
loop в loop, setup в setup Остальные функции в низ Расставлять в порядке, в котором должно выполняться по задаче Что сложного?