Jump to content

Search the Community

Showing results for tags 'arduino mega и uno'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
    • Competition 2019
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 1 result

  1. Помоги с ноля скетч полноценный написать. Данный путь мне кажется очень перспективным Нашел инфу про dual moco, что то началось получаться перешивается arduino mega и uno Смысл прошивки сигнал midi через разъем usb напрямую без доп по и переходников передается на пк и звуковой модуль Работает эта беда только как я понял с библиотекой midi.h Можно как то сделать 2 а массива. Один с обычными контактными кнопками(уже реализовано и работает в скече ниже) , другой массив с оптопрерывателями И на несколько каналов все это поделить. Левая правая клавиатура на отдельных каналах скетч ниже в нем есть много лишнего но это на данном этапе не критично #include <Keypad.h> #include <EEPROM.h> #include <MIDI.h> MIDI_CREATE_DEFAULT_INSTANCE(); #define C2 0x18 #define Db2 0x19 #define D2 0x1A #define Eb2 0x1B #define E2 0x1C #define F2 0x1D #define Fd2 0x1E #define G2 0x1F #define Ab2 0x20 #define A2 0x21 #define Bb2 0x22 #define B2 0x23 #define C3 0x24 #define Db3 0x25 #define D3 0x26 #define Eb3 0x27 #define E3 0x28 #define F3 0x29 #define Fd3 0x2A #define G3 0x2B #define Ab3 0x2C #define A3 0x2D #define Bb3 0x2E #define B3 0x2F #define C4 0x30 #define Db4 0x31 #define D4 0x32 #define Eb4 0x33 #define E4 0x34 #define F4 0x35 #define Fd4 0x36 #define G4 0x37 #define Ab4 0x38 #define A4 0x39 #define Bb4 0x3A #define B4 0x3B #define C5 0x3C #define Db5 0x3D #define D5 0x3E #define Eb5 0x3F #define E5 0x40 #define F5 0x41 #define Fd5 0x42 #define G5 0x43 #define Ab5 0x44 #define A5 0x45 #define Bb5 0x46 #define B5 0x47 #define C6 0x48 #define Db6 0x49 #define D6 0x4A #define Eb6 0x4B #define E6 0x4C #define F6 0x4D #define Fd6 0x4E #define G6 0x4F #define Ab6 0x50 #define A6 0x51 #define Bb6 0x52 #define B6 0x53 #define C7 0x54 #define Db7 0x55 #define D7 0x56 #define Eb7 0x57 #define E7 0x58 #define F7 0x59 #define Fd7 0x5A #define G7 0x5B #define Ab7 0x5C #define A7 0x5D #define Bb7 0x5E #define B7 0x5F #define C8 0x60 #define Db8 0x61 #define D8 0x62 #define Eb8 0x63 #define E8 0x64 #define F8 0x65 #define Fd8 0x66 #define G8 0x67 #define Ab8 0x68 #define A8 0x69 #define Bb8 0x6A #define B8 0x6B #define C9 0x6C #define Db9 0x6D #define D9 0x6E #define Eb9 0x6F #define E9 0x70 #define F9 0x71 #define Fd9 0x72 #define G9 0x73 #define Ab9 0x74 #define A9 0x75 #define Bb9 0x76 #define B9 0x77 #define NNN 0xFF // Отсутствие ноты //Матричная клавиатураconst byte ROWS = 8; //Количество столбцов матричной клавиатуры const byte COLS = 8; //Количество строк матричной клавиатуры byte rowPins[ROWS] = {2, 3, 4, 5, 6, 7, 8, 9}; //Пины столбцов byte colPins[COLS] = {A0, A1, 10, 11}; //Пины строк byte buttonState[COLS][ROWS] = { //Массив состояния кнопок {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, {1, 1, 1, 1}, }; byte kpdNote[COLS][ROWS] = { //Массив нот {C2, Ab2, E3, C4}, {Db2, A2, F3, Db4}, {D2, Bb2, Fd3, D4}, {Eb2, B2, G3, Eb4}, {E2, C3, Ab3, E4}, {F2, Db3, A3, F4}, {Fd2, D3, Bb3, Fd4}, {G2, Eb3, B3, G4} }; // //byte tmppin = 0; byte val = 0; byte dval = 0; byte PrVal[8] = {0, 0, 0, 0, 0, 0, 0, 0}; long currenttime=0; boolean b; byte eval; long ltime = 0; void setup() { MIDI.begin(1); //Инициализация MIDI интерфейса attachInterrupt(1, enc, FALLING ); // Аппаратное прерывание. По спадающему фронту на пине 2 запускаем enc pinMode(3, INPUT);//Вывод B энкодера pinMode(4, INPUT);//Неисп. pinMode(19, OUTPUT);//Пины A4 A5. Подключены в выводам A и B мультиплексора pinMode(18, OUTPUT);// pinMode(13, OUTPUT);//--Гасим встроенный светодиод-- digitalWrite(13, LOW);// for(byte i = 0; i < COLS; i++){ //--Конфигурируем строки мтрчн клвтр как выходы-- pinMode(colPins, OUTPUT); //--и подаём на них лог. 1digitalWrite(colPins, HIGH); //} for(byte i = 0; i < ROWS; i++){ //--Конфигурируем столбцы мтрчн клвтр как входыpinMode(rowPins, INPUT); //--и включаем встроенные в мк подтягивающие резисторы-- digitalWrite(rowPins, HIGH); //} } void loop() { for(byte chn = 0; chn < 4; chn++) //-Цикл чтения значений потенциометров{ set_mp_chn(chn); //--Задаём параметры мультиплексораval=analogRead(0) / 8; //--Считываем значение с канала Xif (abs(val-PrVal[chn]) > 5) //--Если текущее значение отл. от прошлого{ //--больше чем на 5, то посылаем новое значение-- MIDI.sendControlChange(chn,val,1); PrVal[chn]=val; } val=analogRead(1) / 8; //--Считываем значение с канала Y аналогично X---- if (abs(val-PrVal[chn+4]) > 5) { MIDI.sendControlChange(chn+4,val,1); PrVal[chn+4]=val; } } // for(byte i = 0; i < COLS; i++) //-Цикл чтения матричной клавиатуры{ digitalWrite(colPins, LOW); //--На считываем столбец выставляем 0--- for(byte j = 0; j < ROWS; j++) //--Построчно считываем каждый столбец-- { //--И при нажатой кнопке передаём ноту-- dval=digitalRead(rowPins[j]); if ( dval == LOW && buttonState[j] == HIGH ) MIDI.sendNoteOn(kpdNote[j],127,1); if ( dval == HIGH && buttonState[j] == LOW ) MIDI.sendNoteOff(kpdNote[j],127,1); buttonState[j] = dval; } digitalWrite(colPins, HIGH); } // } void set_mp_chn(byte chn1) // Управление мультиплексором { switch (chn1) { case 0: digitalWrite(18, LOW); digitalWrite(19, LOW); break; case 1: digitalWrite(18, LOW); digitalWrite(19, HIGH); break; case 2: digitalWrite(18, HIGH); digitalWrite(19, LOW); break; case 3: digitalWrite(18, HIGH); digitalWrite(19, HIGH); break; } } void enc() // Обработка энкодера { currenttime=millis(); if (abs(ltime-currenttime)>50) // антидребезг { b=digitalRead(4); if (b == HIGH && eval<=122) eval=eval+5; else if (b == LOW && eval>=5) eval=eval-5; MIDI.sendControlChange(9,eval,1); ltime = millis(); } }
×
×
  • Create New...