Помогите разобраться новичку
- Войдите на сайт для отправки комментариев
Пнд, 14/07/2014 - 13:36
Собрал светильник для морского аквариума ! Запитал от 9 пин с шим изменением яркости ! Проще говоря все четыре сборки светодиодов запитаны от одного пин ! Хотелось бы запитать от нескольких выходов - но не знаю как написать прогу ! Сейчас пользуюсь вот этой только немного измененой. ! /*
Пример управления яркостью светодиода
на выходе 9 контроллера Arduino
функцией analogWrite().
*/
int brightness = 0; // уставливаем начально значение яркости
int fadeAmount = 5; // шаг приращения/убывания яркости
void setup() {
// устанваливаем пин 9 в режим выхода
pinMode(9, OUTPUT);
}
void loop() {
// устанавливаем значение широты импульса на выходе 9
// задавая яркость светодиода
analogWrite(9, brightness);
// измением значение в переменной для яркости
brightness = brightness + fadeAmount;
// при достижение крайних значений для яркости
// меняем знак переменной шага приращения/убывания яркости
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// делаем паузу для достижения плавного наращивания/убывания яркости
delay(30);
}
как вписать другие пины для изменения шим ? Заранее благодарен !
По сути нужен рассвет и закат !
Нужен простейший пример для дольнейшей разработки !
как вы представляете рассвет и закат на светоидодах? просто плавное включение и выключение?
Да но рассвет примерно должен занимать около двух часов !
И на четырех пинах - раздная яркость !
В дальнейшем хотелось бы и подключить часы реального времени и термометр для вентилятора ( охлаждение воды ) ! Все купил , но до этого еще не добрался !
2 часа = 7 200 000 мс
ШИМ = 256 единиц
7200000/256 = 28125 мс
ставите delay(28125) и будет вам 2х часовой рассвет !
У Вас дядя на фабрике восклицательных знаков работает? Или Вы так нас заинтересовать пытаетесь?
Если Вы не понимаете как работает скрипт из 20 строчек, то либо учиться с начала (например моргать дидом), либо в "ищу исполнителя"
много писать. почитайте сначала
http://arduino.ru/Reference/AnalogWrite
и набросайте как должны себя вести светодиоды. план работы. если яркость разная нужно ведь знать какая яркость должна быть в каждый момент времени
Пока просто что бы сначала разгорался один канал предположим до 50 процентов потом второй и так далее . Сейчас все каналы разгораются одновременно и с одинаковой мощностью .
если почитаете по ссылке узнаете на какие пины можно подцеплять светодиоды для регулировки яркостью шимом
а дальше уже программу писать
Куда цеплять я разобрался ! Прблема с прогой - как написать на несколько пинов . Нужен пример ( простой пример ) я задействовал 9 пин как задействовать следующий в программе ?
А именно 11 пин - для каждого пина своя программа ? И проги писать по очереди ?
для каждого как бы своя, но программа одна. просто в определенный момент увеличивать уменьшать яркость у опередленного светодиода
потренируйтесь сначала в uart слать числа из цикла например
почитайте
http://arduino.ru/Reference
С начала я написал прогу по этому примеру - // даём разумное имя для пина №9 со светодиодом
Как вписать сюда 11 пин ?
Те же функции для 11 го пина ?
почитайте как правильно вставлять код
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
делаем еще один пин на выход, черзе analogWrite управляем на этом пине шимом
фунция таже, только пин другой
Может кто сможет написать пример а не перенаправлять на другие ветки ? // даём разумное имя для пина №9 со светодиодом
какие другие ветки? это инфа для обучения, чтобы вы понимали о чем я вам говорю и правильно вставляли код
Я прочитал все инструкции - там сказано только про один пин как связать два пина не сказано !
какие другие ветки? это инфа для обучения, чтобы вы понимали о чем я вам говорю и правильно вставляли код
Гы. Ему не нужна инфа для обучения. Ему нужен готовый код, что тут не понятного? Ну-ка быстро метнулся и накатал! И поблагодарить потом не забудь!
как вставлять код так и не прочитали.
а по программе я уже сказал как
это я понимаю. но пусть пытается. не писать же за него. это просто, поэтому сам дойдет если намекнуть как
но для этого пусть почитает раздел программирование по нужным веткам. не копипастить же все сюда
Поясните пожалуста - я нажимаю на кнопку вставить код и вставляю прогу для другого пина в разрыв своей проги ( в любом месте ) ? Я правильно понял ?
вставляете код и код вставится в тексте. а про разрыв не понял
вы хоть попробуйте
читайте еще раз))) не так
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Внизу кнопка - "предпросмотр". Без отправки...
/* Пример управления яркостью светодиода на выходе 9 контроллера Arduino функцией analogWrite(). */ int brightness = 0; // уставливаем начально значение яркости int fadeAmount = 5; // шаг приращения/убывания яркости void setup() { // устанваливаем пин 9 в режим выхода pinMode(11, OUTPUT); } void loop() { // устанавливаем значение широты импульса на выходе 9 // задавая яркость светодиода analogWrite(11, brightness); // измением значение в переменной для яркости brightness = brightness + fadeAmount; // при достижение крайних значений для яркости // меняем знак переменной шага приращения/убывания яркости if (brightness == 0 || brightness == 200) { fadeAmount = -fadeAmount ; } // делаем паузу для достижения плавного наращивания/убывания яркости delay(30); }ЧТО НЕ ТАК ?
И так можно добавлять сколько угодно пинов ?
читайте снова))) похоже вы очень невнимательно читаете, или читаете не все
http://arduino.ru/Reference/AnalogWrite
/* Пример управления яркостью светодиода на выходе 9 контроллера Arduino функцией analogWrite(). */ int brightness = 0; // уставливаем начально значение яркости int fadeAmount = 5; // шаг приращения/убывания яркости void setup() { // устанваливаем пин 9 в режим выхода pinMode(11, OUTPUT); } void loop() { // устанавливаем значение широты импульса на выходе 9 // задавая яркость светодиода analogWrite(11, brightness); // измением значение в переменной для яркости brightness = brightness + fadeAmount; // при достижение крайних значений для яркости // меняем знак переменной шага приращения/убывания яркости if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // делаем паузу для достижения плавного наращивания/убывания яркости delay(30); } Оба скетча нужно вставлять через эту кнопку ?да я вас понял, не нужно один и тот же скетч вставлять 2 раза, но с разными пинами
почитали только на каких пинах есть аппаратный шим?
Спасибо за помощь ! Я думаю методом тыка я и сам разберусь ! Извените за отнятое время !
вот именно. то что вам нужно делатья вам сказал. объявить 2 пина и управлять ими. хоть один за другим
передали на 1 пин, следующей строкой на второй и делаете дальше что нужно. экспериментируйте, так интереснее
если бы задача более сложная была еще понадобилась помощь, а тут и сами разберетесь
Да я то разберусь - могли бы и наглядно показать ! А так умничать знающий в своей сфере может каждый !
Что вы делаете на этом форуме с 2012 года гыкаете ? А наглядно помочь - я думаю будет толку как от козла - молока !
Что вы делаете на этом форуме с 2012 года гыкаете ? А наглядно помочь - я думаю будет толку как от козла - молока !
А Вы не думайте, Вам это похоже вредно. И как раз поэтому "наглядно" и не помогаем - будет толку как от козла - молока !(с) Конечно же Ваш.
Я разобрался ! Добрый человек накидал скетч - немного именю и вуаля ! А вам советую не умничать - люди не любят умников ! А да вам советы не нужны - вы и так все знаете !
Я разобрался ! Добрый человек накидал скетч - немного именю и вуаля ! А вам советую не умничать - люди не любят умников ! А да вам советы не нужны - вы и так все знаете !
А вы думаете нам нужна любовь тупых людей которые даже основы не могут прочитать и осмыслить. Я сильно сомневаюсь что вы специалист в какой либо области, исключая уборку помещений.
Ну вот зачем сразу так взять и обидеть? Теперь уборщицы расстроены...
Упссс ты думаешь они нас читают?
а ты думал они на распбери? Или, окстись!, на пандаборде работают?
Конечно на пандаборде, они любят панд и там круче полюбому
Таки я не понял, ленты должны загоратся плавно и последовательно? Сначала одна лента плавно зажигается два часа, потом другая итд? Или ленты должны зажигаться одновременно, но с разной скоростью? Типа одна светит на 100%, вторая на 75%, третья на 50%, четвёртая на 25%? Должны, в итоге, ленты светить с одинаковой яркостью, или нет?
Так-то вроде не особо сложно всё выходит, только вот внятного описания задачи и нет, есть код, который "чота не так работает" и вопрос, как сделать, чтобы он "так работал". А как "так" и непонятно.
Доброго времени суток, заранее извиняюсь за так сказать "изврат" в идее, а идея такова: Нужно собрать DJ Деку на Arduino Uno R3. Не буду томить и так к сути.
Найден на просторах инета необходимый скетч, но появилась проблемка и необходимость кое что изменить (об этом позже).
При компиляции вылетают ошибки. как я понял все они вызваны тем что скетч был написан довольно давно и на новом софте работает не правильно. скажите пожалуйста как это можно исправить или переписать.
Код скетча:
//---FOR DEBUG //#include <SoftwareSerial.h> //---FOR DEBUG #include <MIDI.h> #include <A5020.h> // MIDI Channel #define CHANNEL_1 1 // TODO:H/W (10 less than ideal setting value) do NOT make a noise suppression #define VIBRATE_FILTER 15 #define DIGITAL_THRESHOLD 1000 // Numark MIXTRACK #define DECK_A_PLAY 0x3B #define DECK_B_PLAY 0x42 #define DECK_A_CUE 0x33 #define DECK_B_CUE 0x3C #define DECK_A_SYNC 0x40 #define DECK_B_SYNC 0x47 #define DECK_A_SHUTTER 0x4A #define DECK_B_SHUTTER 0x4C #define DECK_A_SCRATCH 0x48 #define DECK_B_SCRATCH 0x50 #define DECK_A_VOLUME 0x08 #define DECK_B_VOLUME 0x09 #define DECK_A_PFL 0x65 #define DECK_B_PFL 0x66 #define DECK_A_EQ_HI 0x10 #define DECK_B_EQ_HI 0x11 #define DECK_A_EQ_MID 0x12 #define DECK_B_EQ_MID 0x13 #define DECK_A_EQ_LO 0x14 #define DECK_B_EQ_LO 0x15 #define DECK_A_FIL 0x21 #define DECK_B_FIL 0x22 #define DECK_A_JOG 0x19 #define DECK_B_JOG 0x18 #define DECK_A_JOGTOUCH 0x4E #define DECK_B_JOGTOUCH 0x4D #define DECK_A_FX 0x63 #define DECK_B_FX 0x64 #define DECK_A_DRYWET 0x1C #define DECK_B_DRYWET 0x1F #define DECK_A_FXAMOUNT 0x1D #define DECK_B_FXAMOUNT 0x20 #define DECK_A_FXSELECT 0x1B #define DECK_B_FXSELECT 0x1E #define CROSSFADER 0x0A #define HEAD_VOLUME 0x0B #define HEAD_MIX 0x0C #define MASTER_VOLUME 0x17 //MUX Control pins #define CONTROL0 5 #define CONTROL1 4 #define CONTROL2 3 #define CONTROL3 2 //MUX Input pins #define MUX0 0 #define MUX1 1 #define MUX2 2 //PWM Pin #define PWM_PIN 7 // MIN:7 #define INTERVAL_ON 9 #define INTERVAL_OFF 35 int pwm_count = 0; //LED Address enum ledStatus{ STOP = 0x01, PLAY = 0x02, HEADOFF = 0x04, HEADON = 0x08, SCH = 0x10, SYNC = 0x20, FX = 0x40, NOTASSIGN = 0x80, }; // Port Type // 0 => DIGITAL, 1 => ANALOG, 2=> UNUSE // const unsigned int portTypeMux0[16] = { //2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 0,0,0,0,0,0,1,1,0,2,2,2,2,2,2,2 //2,2,2,2,2,0,1,1,2,2,2,2,2,2,2,2 }; const unsigned int portTypeMux1[16] = { 0,0,0,0,0,0,1,1,0,2,2,2,2,2,2,2 //2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; const unsigned int portTypeMux2[16] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2 //2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; //Pin Assign const unsigned char ifAssignMux0[16] = { DECK_A_PLAY, DECK_A_CUE, DECK_A_SYNC, DECK_A_SHUTTER, DECK_A_PFL, DECK_A_FX, DECK_A_DRYWET, DECK_A_FXAMOUNT, DECK_A_SCRATCH, 0,0,0,0,0,0,0 }; const unsigned char ifAssignMux1[16] = { DECK_B_PLAY, DECK_B_CUE, DECK_B_SYNC, DECK_B_SHUTTER, DECK_B_PFL, DECK_B_FX, DECK_B_DRYWET, DECK_B_FXAMOUNT, DECK_B_SCRATCH, 0,0,0,0,0,0,0 }; const unsigned char ifAssignMux2[16] = { DECK_A_EQ_HI, DECK_A_EQ_MID, DECK_A_EQ_LO, DECK_A_FIL, DECK_B_EQ_HI, DECK_B_EQ_MID, DECK_B_EQ_LO, DECK_B_FIL, HEAD_VOLUME, HEAD_MIX, DECK_A_VOLUME, DECK_B_VOLUME, CROSSFADER,0,0,0 }; //MUXValue //M0 int currMux0Value[16] = { 0}; int prevMux0Value[16] = { 0}; int diffAnalogValueMux0; //M1 int currMux1Value[16] = { 0}; int prevMux1Value[16] = { 0}; int diffAnalogValueMux1; //M2 int currMux2Value[16] = { 0}; int prevMux2Value[16] = { 0}; int diffAnalogValueMux2; // Display state of LED // With define what LED is or has been assigned to each array char ledStatus_decka = 0xFF; char ledStatus_deckb = 0xFF; // Shift register pin const int latchPin = 17; const int clockPin = 18; const int dataPin = 19; //(clock(green), data(white), ncs(purple)) A5020 jog_a(8,9,10); A5020 jog_b(11,12,13); char jog_a_touched = 0; char jog_b_touched = 0; //---FOR DEBUG //SoftwareSerial mySerial(11, 12, true); //---FOR DEBUG void setup() { // mySerial.begin(9600); // mySerial.println("Hello, world?"); // Initialization of the shift register pin pinMode(latchPin, OUTPUT); // Initialization of LED ledRenew(); // MUX I want to control the OUTPUT pin pinMode(CONTROL0, OUTPUT); pinMode(CONTROL1, OUTPUT); pinMode(CONTROL2, OUTPUT); pinMode(CONTROL3, OUTPUT); // Fan control pin pinMode(PWM_PIN, OUTPUT); digitalWrite(PWM_PIN, 1); delay(300); // Initialize the optical sensor jog_a.reset(); delay(100); jog_b.reset(); delay(100); // MIDI (Open serial baud rate 31250) library initialization MIDI.begin(MIDI_CHANNEL_OMNI); //MIDI.turnThruOff(); MIDI.setHandleNoteOn(HandleNoteOn); MIDI.setHandleNoteOff(HandleNoteOff); MIDI.setHandleControlChange(HandleControlChange); Serial.begin(38400); // setup Notice in the light of the completion digitalWrite(latchPin, 0); shiftOut(dataPin, clockPin, 0xFF); shiftOut(dataPin, clockPin, 0xFF); digitalWrite(latchPin, 1); delay(300); digitalWrite(latchPin, 0); shiftOut(dataPin, clockPin, 0x00); shiftOut(dataPin, clockPin, 0x00); digitalWrite(latchPin, 1); } void loop() { for (int i=0; i<16; i++){ // MUX Control of(0000~1111) digitalWrite(CONTROL0, (i&15)>>3); digitalWrite(CONTROL1, (i&7)>>2); digitalWrite(CONTROL2, (i&3)>>1); digitalWrite(CONTROL3, (i&1)); // MUX Value of reading currMux0Value[i] = analogRead(MUX0); currMux1Value[i] = analogRead(MUX1); currMux2Value[i] = analogRead(MUX2); // Compared with the previous reading diffAnalogValueMux0 = abs(currMux0Value[i] - prevMux0Value[i]); diffAnalogValueMux1 = abs(currMux1Value[i] - prevMux1Value[i]); diffAnalogValueMux2 = abs(currMux2Value[i] - prevMux2Value[i]); // Mux0 if(currMux0Value[i] != prevMux0Value[i]){ // In the case of: (0 port type) digital port if(portTypeMux0[i] == 0){ if(diffAnalogValueMux0 >= DIGITAL_THRESHOLD){ MIDI.sendNoteOn(ifAssignMux0[i], convAD(currMux0Value[i]), CHANNEL_1); prevMux0Value[i] = currMux0Value[i]; } } else if(portTypeMux0[i] == 1){ // If not noise, and output as CC readings if(diffAnalogValueMux0 >= VIBRATE_FILTER){ MIDI.sendControlChange(ifAssignMux0[i], currMux0Value[i]/8, CHANNEL_1); prevMux0Value[i] = currMux0Value[i]; } } else if(portTypeMux0[i] == 2){ // It is not nothing } } // Mux1 if(currMux1Value[i] != prevMux1Value[i]){ // In the case of: (0 port type) digital port if(portTypeMux1[i] == 0){ if(diffAnalogValueMux1 >= DIGITAL_THRESHOLD){ MIDI.sendNoteOn(ifAssignMux1[i], convAD(currMux1Value[i]), CHANNEL_1); prevMux1Value[i] = currMux1Value[i]; } } else if(portTypeMux1[i] == 1){ // If not noise, and output as CC readings if(diffAnalogValueMux1 >= VIBRATE_FILTER){ MIDI.sendControlChange(ifAssignMux1[i], currMux1Value[i]/8, CHANNEL_1); prevMux1Value[i] = currMux1Value[i]; } } else if(portTypeMux1[i] == 2){ // It is not nothing } } // Mux2 if(currMux2Value[i] != prevMux2Value[i]){ // In the case of: (0 port type) digital port if(portTypeMux2[i] == 0){ if(diffAnalogValueMux2 >= DIGITAL_THRESHOLD){ MIDI.sendNoteOn(ifAssignMux2[i], convAD(currMux2Value[i]), CHANNEL_1); //ccSend(1,ifAssignMux2[i],convAD(currMux2Value[i])); prevMux2Value[i] = currMux2Value[i]; } } else if(portTypeMux2[i] == 1){ // If not noise, and output as CC readings if(diffAnalogValueMux2 >= VIBRATE_FILTER){ MIDI.sendControlChange(ifAssignMux2[i], (int)currMux2Value[i]/8, CHANNEL_1); //ccSend(1,ifAssignMux2[i],currMux2Value[i]/8); prevMux2Value[i] = currMux2Value[i]; } } else if(portTypeMux2[i] == 2){ // It is not nothing } } } // I read the state of the jog of A deck jog_a.read(); // If there is movement, sent as MIDI data if(jog_a.motion){ if(jog_a_touched == 0){ MIDI.sendNoteOn(DECK_A_JOGTOUCH, 1, CHANNEL_1); jog_a_touched = 1; } MIDI.sendControlChange(DECK_A_JOG, conv_midiscale(jog_a.delta_y), CHANNEL_1); //Serial.println(jog_a.delta_y,DEC); } else if(jog_a_touched == 1){ MIDI.sendNoteOn(DECK_A_JOGTOUCH, 0, CHANNEL_1); jog_a_touched = 0; } // I read the state of the jog of B deck jog_b.read(); // If there is movement, sent as MIDI data if(jog_b.motion){ if(jog_b_touched == 0){ MIDI.sendNoteOn(DECK_B_JOGTOUCH, 1, CHANNEL_1); jog_b_touched = 1; } MIDI.sendControlChange(DECK_B_JOG, conv_midiscale(jog_b.delta_y), CHANNEL_1); //Serial.println(jog_b.delta_y,DEC); } else if(jog_b_touched == 1){ MIDI.sendNoteOn(DECK_B_JOGTOUCH, 0, CHANNEL_1); jog_b_touched = 0; } // Reading MIDI data received MIDI.read(); // Simple PWM to control the rotational speed of the fan if(digitalRead(PWM_PIN) == 1 && pwm_count == INTERVAL_ON){ pwm_count = 0; digitalWrite(PWM_PIN, 0); } else if(digitalRead(PWM_PIN) == 0 && pwm_count == INTERVAL_OFF){ pwm_count = 0; digitalWrite(PWM_PIN, 1); } pwm_count++; } char convAD(int analogVal){ if(analogVal > DIGITAL_THRESHOLD) return 1; else return 0; } char conv_midiscale(char value){ unsigned char range = 7; if (value >= 1){ return (value / range) + 1; } else{ return 127 + (value / range); } } void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { // This shifts 8 bits out MSB first, //on the rising edge of the clock, //clock idles low //internal function setup int i=0; int pinState; pinMode(myClockPin, OUTPUT); pinMode(myDataPin, OUTPUT); //clear everything out just in case to //prepare shift register for bit shifting digitalWrite(myDataPin, 0); digitalWrite(myClockPin, 0); //for each bit in the byte myDataOut //NOTICE THAT WE ARE COUNTING DOWN in our for loop //This means that %00000001 or "1" will go through such //that it will be pin Q0 that lights. for (i=7; i>=0; i--) { digitalWrite(myClockPin, 0); //if the value passed to myDataOut and a bitmask result // true then... so if we are at i=6 and our value is // %11010100 it would the code compares it to %01000000 // and proceeds to set pinState to 1. if ( myDataOut & (1<<i) ) { pinState= 1; } else { pinState= 0; } //Sets the pin to HIGH or LOW depending on pinState digitalWrite(myDataPin, pinState); //register shifts bits on upstroke of clock pin digitalWrite(myClockPin, 1); //zero the data pin after shift to prevent bleed through digitalWrite(myDataPin, 0); } //stop shifting digitalWrite(myClockPin, 0); } void HandleNoteOn(byte channel, byte pitch, byte velocity) { //mySerial.write(pitch); // I turn on the corresponding LED by the data at the time of NoteOn /* * When at the time of 00001000, PLAY (0x01) has been pressed the state of LED, * Since performing an OR operation with 0x01 and the current state, * 00001000 OR 00000001 = 00001001 * Without affecting the next state, the LED on the other, the state of the LED of the corresponding * I can be (1) ON. */ switch(pitch){ case DECK_A_PLAY: ledStatus_decka &= ~PLAY; ledStatus_decka |= STOP; break; case DECK_B_PLAY: ledStatus_deckb &= ~PLAY; ledStatus_deckb |= STOP; break; case DECK_A_PFL: ledStatus_decka &= ~HEADON; ledStatus_decka |= HEADOFF; break; case DECK_B_PFL: ledStatus_deckb &= ~HEADON; ledStatus_deckb |= HEADOFF; break; case DECK_A_FX: ledStatus_decka &= ~FX; break; case DECK_B_FX: ledStatus_deckb &= ~FX; break; case DECK_A_SCRATCH: ledStatus_decka &= ~SCH; break; case DECK_B_SCRATCH: ledStatus_deckb &= ~SCH; break; case DECK_A_SYNC: ledStatus_decka &= ~SYNC; break; case DECK_B_SYNC: ledStatus_deckb &= ~SYNC; } ledRenew(); } void HandleNoteOff(byte channel, byte pitch, byte velocity) { //mySerial.write(pitch); // I turn off the LED by a corresponding data at the time of NoteOn /* * When at the time of 00001001, PLAY (0x01) has been pressed the state of LED, * Because it performs an AND operation between those NOT PLAY operation and the current state, * NOT(00000001) = 11111110 * 00001001 AND 11111110 = 00001000 * Without affecting the next state, the LED on the other, the state of the LED of the corresponding * I can be (0) OFF. */ switch(pitch){ case DECK_A_PLAY: ledStatus_decka |= PLAY; ledStatus_decka &= ~STOP; break; case DECK_B_PLAY: ledStatus_deckb |= PLAY; ledStatus_deckb &= ~STOP; break; case DECK_A_PFL: ledStatus_decka |= HEADON; ledStatus_decka &= ~HEADOFF; break; case DECK_B_PFL: ledStatus_deckb |= HEADON; ledStatus_deckb &= ~HEADOFF; break; case DECK_A_FX: ledStatus_decka |= FX; break; case DECK_B_FX: ledStatus_deckb |= FX; break; case DECK_A_SCRATCH: ledStatus_decka |= SCH; break; case DECK_B_SCRATCH: ledStatus_deckb |= SCH; break; case DECK_A_SYNC: ledStatus_decka |= SYNC; break; case DECK_B_SYNC: ledStatus_deckb |= SYNC; break; } ledRenew(); } void HandleControlChange(byte channel, byte number, byte value){ switch(number){ case DECK_A_FXSELECT: /* * When you change the type of the effector, * Since the position of the knob is reset, * I will send the state of the knob of the controller */ MIDI.sendControlChange(ifAssignMux0[7], currMux0Value[7]/8, CHANNEL_1); break; case DECK_B_FXSELECT: MIDI.sendControlChange(ifAssignMux1[7], currMux1Value[7]/8, CHANNEL_1); break; } } void ledRenew(){ // Output LED digitalWrite(latchPin, 0); shiftOut(dataPin, clockPin, ledStatus_decka); shiftOut(dataPin, clockPin, ledStatus_deckb); digitalWrite(latchPin, 1); } void ccSend(int channel, int control, int value) { int channel_message; channel_message = 0xB0 + channel; Serial.write(0xB0); Serial.write(control); Serial.write(value); }о еще один, скеч на 500+ строк и ошибки которые нужно на кофейной гуще выгадывать.. чем ближе осень, тем больше обострений?
Очень прошу, если возможно, помогите!!!! очень нужно, я прям руки опускаю незнаю как быть =( если необходимо вышлю все файлы что у меня есть если они помогут.
Очень прошу, если возможно, помогите!!!! очень нужно, я прям руки опускаю незнаю как быть =( если необходимо вышлю все файлы что у меня есть если они помогут.
там ниже есть раздел, ишю исполнителя. публикуете свою задачу там. и там как договоритесь.