Гитарная педаль эффектов на ардуино

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Гитарная педаль эффектов на Arduino своими руками

Если вы заядлый гитарист и разбираетесь в электронике, то, наверное, пробовали самостоятельно собрать свою гитарную педаль эффектов и, возможно, не одну. Ламповые педали, конечно, очень хороши в звучании, но относительно дороги в создании, зато педали на дискретных компонентах можно собирать с малой себестоимостью, и их создание доступно даже новичкам в области звукотехники.

Но, как правило, одна педаль дает один эффект, а зачастую хочется, чтобы их было больше для колоритного звучания. В этом случае нужен целый процессор эффектов. Но сегодня даже новичок может собрать свою гитарную педаль с возможностью программирования для нее различных эффектов благодаря плате Arduino.

Теперь для Arduino Uno можно собрать специальный шилд pedalSHIELD UNO, исходники которого находятся в открытом доступе. С помощью pedalSHIELD UNO можно довольно легко сделать программируемую гитарную педель эффектов. Этот шилд собирается на основе широко доступных компонентов и не требует глубоких знаний в программировании алгоритмов цифровой обработки сигналов. Вот так внешне выглядит шилд pedalSHIELD UNO:

Схема подключения разъемов, кнопок и других компонентов к плате Arduino Uno показана на изображении ниже. Здесь входной сигнал гитары через джек заводится на аналоговый ввод A0 и впоследствии считывается с помощью АЦП. Выходной сигнал обеспечивается ШИМ-каналами 9 и 10.

Далее представлена принципиальная схема, на которой подробно изображена структура входного и выходного каскадов.

Список компонентов схемы шилда pedalSHIELD UNO:

C5,C2, C7, C8, C9 конденсаторы 6.8 нФ
C3, C6, C10 конденсаторы 4.7 нФ
C1, C11 конденсаторы 100 нФ
C4 конденсатор 100 пФ

R12,R13, R10, R9, R6, R4, R3 резисторы 4.7 КОм
R5, R7, R8 резисторы 100 КОм
R1, R2 резисторы 1 МОм
R11 резистор 1.2 МОм

RV1 потенциометр 500 КОм
D1 светодиод 3 мм синий
U1 операционный усилитель TL972
pdip-8 разъем для 8-выводных DIP-корпусов
SW1 тройной переключатель-кнопка
SW2 переключатель
SW3, SW4 кнопки
J1, J2 аудиоразъемы-джеки

Для того чтобы запрограммировать Arduino для реализации определенного гитарного эффекта, нужно скачать архив со скетчами, обеспечивающими эти эффекты. На данный момент представлено одиннадцать скетчей, и среди них есть такие популярные звучания, как дисторшн (distortion), тремоло (tremolo), задержка (delay) и ряд других.

Таким образом, собрать гитарную педаль своими руками с помощью Arduino представляет собой довольно простой процесс. Конечно, она не получится такой же качественной по звучанию, как педали именитых производителей Fender, Marshall или Boss, но благодаря этому проекту можно многое чему научиться в деле проектирования звукотехники.

Источник

Arduino MEGA Guitar Pedal © CC BY-NC

PedalSHIELD MEGA is an open-source Arduino MEGA programmable guitar pedal. You can create and share your own effects and guitar pedals.

Arduino Mega 2560
The shield is compatible with the Arduino MEGA 2560 and also the ADK model.
× 1
Arduino ADK Rev. 3
The shield is compatible with the Arduino MEGA 2560 and also the ADK model.
× 1
Soldering iron (generic)

pedalSHIELD MEGA is a programmable guitar pedal that works with the Arduino MEGA 2560 and MEGA ADK boards.

The project is Open Source & Open Hardware and aimed for hackers, musicians and programmers that want to learn about guitar effects and digital audio using standard C/C++ and the standard Arduino IDE. You can get inspired using the library of effects posted on the pedalSHIELD MEGA online forum.

We created some documents so you can do the project easily:

  • Based on Arduino MEGA 2560 / ADK (16MHz, 8KB RAM).
  • Analog stages using TL972 rail-to-rail operational amplifier.
  • ADC: 10bits.
  • Output Stage: 16 bits (2x8bits PWMs running in parallel)
  • OLED Screen: 128×64 resolution, 1.3 inches (also compatible with 0.96″), I2C.
  • Interface:
  • 2 Configurable push buttons.
  • 1 Configurable switch.
  • 1 programmable blue led.
  • True Bypass Foot-switch
  • OLED Display.
  • Connectors:
  • Input Jack, 1/4 inch unbalanced, Zin=0.5MΩ.
  • Output Jack, 1/4 inch unbalanced, Zout=0.1Ω.
  • Power supply: power taken from the Arduino MEGA board (12V DC).

You can check BliyzCityDIY deep review on Youtube:

Источник

Гитарная педаль на Arduino Uno – pedalSHIELD UNO

pedalSHIELD UNO – это программируемая гитарная педаль на Arduino UNO. С ней вы можете создавать свои собственные эффекты и цифровые звуки.

Гитарная педаль на Arduino Uno – pedalSHIELD UNO

О проекте

pedalSHIELD UNO – это lo-fi программируемая гитарная педаль, которая работает с платами Arduino UNO / Genuino UNO. Это Open Source & Open Hardware проект для гитаристов, хакеров и программистов, которые хотят узнать о цифровой обработке сигналов, эффектах, синтезаторах и прочих экспериментах без глубоких знаний о DSP, электронике или низкоуровневом программировании.

Вы можете запрограммировать свои собственные эффекты на C/C++ или использовать готовые эффекты с форума.

Программируемая гитарная педаль Arduino pedalSHIELD UNO

Как работает схема?

Плата расширения состоит из трех частей:

  • входной каскад: усиливает и фильтрует сигнал с гитары, что делает его готовым для аналого-цифрового преобразователя Arduino Uno;
  • плата Arduino: использует оцифрованный сигнал с АЦП и выполняет всю цифровую обработку сигнала (DSP),создавая эффекты (distortion, fuzz, громкость, метроном. );
  • выходной каскад: после создания новой формы сигнал поступает с цифровых выходов Arduino (два объединенных ШИМ выхода) и подготавливается к отправке на следующую педаль или гитарный усилитель.

Входной и выходной каскады гитарной педали

Технические параметры

  • На базе Arduino / Genuino UNO (16 МГц, 2 KB RAM).
  • Аналоговые каскады на операционном усилителе «rail-to-rail» TL972.
  • АЦП: 10 бит.
  • Выходной каскад: 16 бит (2 x 8 бит ШИМ, работающих параллельно).
  • Интерфейс:
    • 2 настраиваемые кнопки;
    • 1 настраиваемый переключатель;
    • 1 программируемый синий светодиод;
    • ножной переключатель обхода.
  • Разъемы:
    • входной разъем, TRS 1/4″ (1/4 джек), несимметричный, Zвх = 0,5 МОм;
    • выходной разъем, TRS 1/4″ (1/4 джек), несимметричный, Zвых = 0,1 Ом;
    • Источник питания: питание берется с платы Arduino Uno.

Готовые примеры эффектов

  • Clean/Transparent
  • Volume/Booster
  • Distortion
  • Fuzz Distortion
  • Bit-Crusher
  • Daft Punk Octaver
  • Signal Generator
  • Metronome
  • Delay
  • Tremolo

Как программировать педаль?

Идея состоит в том, чтобы сделать программирование максимальным простым, плата программируется на C/C++ с использованием стандартных функций и среды разработки Arduino. Все инструменты и программы являются бесплатными / с открытым исходным кодом.

Ниже показана связь интерфейсов гитарной педали (вход/выход, элементы управления) с выводами платы Arduino Uno.

Связь интерфейсов платы расширения гитарной педали с Arduino Uno

Необходимы базовые знания C. Лучший способ проиллюстрировать, как программировать педаль – это показать простой пример педали с эффектом Volume/Booster.

Педаль Громкость/Booster

Структурная схема программы выглядит так:

Структурная схема программы

Реально используемый код выглядит так:

Аппаратная конструкция pedalSHIELD UNO

Весь проект педали с открытыми исходниками, разработка была выполнена с помощью KiCad, бесплатного открытого инструмента проектирования электроники. Все файлы проекта, схемы и перечни элементов являются общедоступными. Схема может быть разбита на 5 простых блоков: источник питания, входной каскад, выходной каскад, пользовательский интерфейс и разъемы Arduino.

Программируемая гитарная педаль Arduino pedalSHIELD UNO. Схема электрическая принципиальная

Принцип действия прост; 1 операционный усилитель готовит сигнал для оцифровки, а другой операционный усилитель принимает сигнал с микроконтроллера Arduino UNO. Один АЦП используется для считывания сигнала гитары, и два ШИМ сигнала используются для генерации выходного сигнала.

  • Входной каскад: для лучшего захвата сигнал гитары усиливается с помощью первого операционного усилителя. Потенциометр VR1 регулирует коэффициент усиления этого усилителя от 1 до 21 так, чтобы уровень с гитары мог быть оптимизирован для оцифровки. Сигнал проходит через 3 фильтра нижних частот (сформированных из R3 и C2, R5 и C4, R6 и C5), которые устраняют избыток высших гармоник, которые могут создавать наложение во время выборки сигнала аналого-цифровым преобразователем (fср = 5 кГц).
  • Выходной каскад: использует фильтр нижних частот Саллена-Ки третьего порядка, который устраняет гармоники выше 5 кГц. Два ШИМ сигнала используются параллельно, увеличивая разрядность (2 x 8 бит).
  • Источник питания: для питания операционного усилителя «rail-to-rail» педаль использует +5В от Arduino Uno, что обеспечивает простоту конструкции и максимальное раскачивание сигнала без обрезки. Резисторный делитель R7 и R8 создает 2,5 В для виртуальной земли, а конденсатор C6 удаляет пульсации на линии питания.
  • Пользовательский интерфейс: музыкант может использовать 2 настраиваемые кнопки, 1 настраиваемый переключатель, ножной обходной переключатель 3PDT и программируемый светодиод.
  • Разъемы Arduino Uno: штыревые разъемы соединяют плату расширения с Arduino Uno, передавая сигналы и напряжение питания.

Список компонентов

Это компоненты сквозного монтажа, которые легко найти.

Список компонентов программируемой гитарной педали pedalSHIELD UNO

Позиционное обозначение Количество Наименование/номинал Описание Номер детали
Конденсаторы
C5,C2, C7, C8, C9 5 6,8 нФ керамический конденсатор SR211C682MARTR1
C3, C6, C10 3 4,7 мкФ электролитический конденсатор ECE-A1EKA4R7
C1, C11 2 100 нФ керамический конденсатор SR211C104KARTR1
C4 1 270 пФ керамический конденсатор D271K20Y5PH63L6R
Резисторы
R12,R13, R10, R9, R6, R4, R3 7 4,7 кОм Резистор, 1%, 0,25 Вт MFR-25FRF52-4K7
R5, R7, R8, 3 100 кОм Резистор, 1%, 0,25 Вт MFR-25FRF52-100K
R1, R2 2 1 МОм Резистор, 1%, 0,25 Вт MFR-25FRF52-1M
R11 1 1,2 МОм Резистор, 1%, 0,25 Вт MFR-25FRF52-1M2
Прочее
RV1 1 500 кОм Подстроечный потенциометр 3319W-1-504
D1 1 Светодиод 3 мм, синий Синий светодиод 3 мм SSL-LX3044USBC
U1 1 TL972 DIP8 Операционный усилитель «rail-to-rail» 595-TL972IP
Панель для микросхемы 1 Панель DIP8 Панель DIP8 1-2199298-2
SW1 1 3DPT ножной переключатель 3PDT ножной переключатель 107-SF17020F-32-21RL
SW2 1 Тумблер SPDT тумблер 612-100-A1111
SW3, SW4 2 Кнопка кнопка вкл/выкл 103-1013-EVX
Conn1,2,3,4 1 Разъем 40-выводный Штыревой разъем с шагом 2,54 710-61304011121
J1, J2 2 TRS 1/4″ (1/4 джек аудио) Стерео джек 6,35 мм NMJ6HCD2

Печатная плата

Хотя разработчики и утверждают, что это полностью открытый проект, но упорно не желают делиться файлами разводки печатной платы для какой-либо САПР (например, для того же KiCad, в формате которого они предоставляют принципиальную схему).

Поэтому для изготовления педали есть три варианта:

  1. заказать у разработчиков либо только печатную плату, либо весь набор для сборки педали (ссылка на сайт разработчиков будет в конце статьи);
  2. изготовить печатную плату по экспортированному в pdf-файл трафарету (предоставлен разработчиками) с помощью «лазерно-утюжной» технологии; ссылки для скачивания архивов с проектом в KiCad и трафаретами печатной платы будут приведены ниже;
  3. развести печатную плату в удобной для вас САПР и под компоненты, которые вы предпочитаете, или которые у вас есть в наличии (и, возможно, поделиться результатами с остальными ;-) ).

Часто задаваемые вопросы (FAQ)

pedalSHIELD Uno совместима со всеми платами Arduino?

Нет, только с Arduino Uno и Genuino Uno.

pedalSHIELD Uno подходит для басистов?

Да, но вам необходимо заменить 2 конденсатора (C1 и C11) с 0,1 мкФ на 0,47 мкФ, чтобы пропускать через схему более низкие частоты.

Могу я включить наушники напрямую в pedalSHIELD Uno?

Нет, pedalSHIELD Uno – это не усилитель. Её необходимо включть в гитарный усилитель или в педаль мультиэффектов (например, Line 6 pods и т.п.).

Вот и всё! Делитесь впечатлениями и результатами сборки!

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.

Судя по даташиту вроде можно. Но я не совсем понимаю зачем. Цена вопроса «2 коп».
TL972 работает очень неплохо ( в данной схеме ).
Для проверки 100% поменять можно, но для хорошего звука лучше взять TL972.

Можно ли заменить TL972 на ОУ TS972? Кто-то сталкивался с такой микросхемой?

Интересно. Попробуйте JRC4558 (режимы от 4 В). Все-таки она более «гитарная» что-ли. LM358 как-то больше для микрофонов в предусилителях используется. Если попробуете, отпишите про результат.

Учитывая опыт передовых стран решил все собрать на одной плате. Из за «VGA» монитора в мой корпус не поместились разъемы под Аудио ВХ / ВЫХ. Пришлос проявить «Смекалку». Но в общем получилось так.:
Плата спроектирована под конкретный (мой) прочный силуминовый корпус. Контакты для подключения Аудио коннекторов расположены возле переключателя.
Максимально применил дешевые китайские модули для Arduino.

Спасибо.
Я схему немного доработал.
С эффектами пока провожу бесчеловечные опыт на компьютере.
Пару дней все систематизирую и отправлю на адрес — radioprog@gmail.com

Ок, давайте так и сделаем.
Высылайте оставшиеся материалы, а я всё это оформлю и включу в эту статью.

Я не смогу так же качественно оформить материал как в этой статье. На сегодня я могу предоставить схему, разводку платы (в формате EasyEDA) и код программы. (собственно я уже это сюда и выложил).
Было бы конечно очень здорово чтобы эти результаты можно было включить в данную статью как дополнительный материал или хотя бы убрать мои лишние ответы с промежуточными решениями.

Борис, здравствуйте!
Раз уж ваше развитие этого проекта начинает жить своей жизнью, то не хотите опубликовать его в собранном виде, чтобы ваши дополнения не потерялись с комментариями disqus?
Если интересно, то предлагаю переместить разговор в почту. radioprog@gmail.com

Прграмма опубликованная в стате и та что выложил я — Рабочие на 100% НО.
Прграма неотделима от СХЕМЫ. То есть:
Какая будет реализована СХЕМА, такую нужно и взять ПРГРАММУ.

Нифига не шарю в С++ . Скачать бы все одним скетчем и ссылку на покупкTL972, а то везде 072 предлагают. Может на руках есть у кого. Я из Москвы

Я сделал под заказ педаль для бас гитары.
Собственно говоря применение экрана и органов управления (транскодер) позволяют расширить количество эффектов.
Ограничено:
— временем между опросом АЦП

10 ms
-объём внутренней памяти Arduino NANO (в данном варианте я использую меньше половины)
Схема 100% рабочая и собирает оцифрованный сигнал вполне прилично.
Теперь вопрос за разработкой ПО. Я в общем не музыкант, так наугад несколько эффектов сварганил. Но пока не проверял (нет инсрумента и времини).
Так что если есть идей реализации варианта эффекта то можно пробовать. Пока не придумал как сделать «Октавер» (думаю).

планируется дальнейшее развитие проекта?

Да, пересылать информацию в рамках данной платформы несколько затруднительно.
Skype — boris_latysh

Как с вами можно связаться по поводу платы?

Готов купить плату, куда вам удобней написать для обсуждения данного вопрсоа?

А на каком сайте заказывать плату и как её туда загрузить (какую папку)?

TL072 минимальное питание +3,5в, -3,5в то есть минимальное общее питание для нее — 7в. TL072 использовать можно, НО нужно будет делать дополнительное питание.
TL972 можно полностью питать 5в, я думаю потому ее и применили. А учитывая что нам нужно зайти в контроллер сигналом амплитудой 0-5в. То в такой ситуации c TL072 будут дополнительные сложности с согласованием сигнала от операционника к входу АЦП контроллера.

Пиши в Личку. Отправлю текст

«Коментарии» не всегда соответствуют коду, так как программа пока в работе.
Я в стендовых условиях все проверил работает отлично. НО . на реальном инструменте пока не тестировал.
P.S. Есть готовая плата под эту схему. Если кому нужно могу продать.

// Based on OpenMusicLabs previous works.
// Цифровой усилитель: нажатие кнопки 1 или кнопки 2 увеличивает или уменьшает громкость.

#include // Подключаем библиотеку iarduino_Encoder_tmr для работы с энкодерами через аппаратный таймер
#include «U8glib.h»

#define FootSwitch 12 // Нажатие «Ножной» кнопки ВКЛ/ВЫКЛ устройсва
#define MasterPin 5 // D5 мастер кнопка переключатель режимов
#define CLKPin 2 // CLK Провод Енкодера
#define DTPin 3 // DT провод Енкодера

iarduino_Encoder_tmr enc(CLKPin, DTPin); // Енкодер
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK
// ————- ШИМ —————————————————————
#define PWM_FREQ 0x00FF // установка частоты ШИМ-а (режим Фазовый — 2х8 Бит 31.3 кГц)
#define PWM_MODE 0 // Устанавливает режим коррекции фазы (0) или быстрый режим (1)
#define PWM_QTY 2 // Используем 2 ШИМ-а параллельно 2х8 Бит
// ————- АЦП — ЦАП ———————————————————
int output = 0; // Задаем значение громкости
unsigned int ADC_low, ADC_high; // Младший и Старший байты из АЦП
// ————— Энкодер + кнопка ————————————————-
#define Clk 100 // Колличество повторений между проверками кнопки
int Cirkle = 0; // Перменная Счетчика циклов пропуска
int Master = 0; // перменная выбора режима работы
// ———————————————————————————
int Dist = 8; // Коэффициент для Дистошн
double Dist1 = 0;
// ———————————————————————————
int Over = 8; // Коэффициент для Овердрайва
// ———————————————————————————
int Horus[256]; // Horus эффект
byte x = 0;
byte y = 0; // перменная массива 0 — 256
byte z = 0;
// ———————————————————————————
int t = 30; // Compressor эффект
// ———————————————————————————
int El = 15; // Electro
int con = 0;
int con1 = 0;

void setup()<
// Serial.begin(9600);
enc.begin(); // Инициируем работу с энкодером

pinMode(FootSwitch, INPUT_PULLUP);
pinMode(MasterPin, INPUT_PULLUP);
//———————-Настройка АЦП — настроен для чтения автоматически. ——————
ADMUX = 0x60; // внутренний ИОН 1.1 В, правое выравнивание, управление по ADC0,
ADCSRA = 0xe5; // включить ADC, автозапуск, 5 — clk 1/32 — ПОДБИРАЕМ
ADCSRB = 0x07; // без мультиплексора, запуска захват таймером Т1
DIDR0 = 0x01; // разрешаем ТОЛЬКО аналоговый вход ADC0
//——————— настройка ШИМ ——————————————————-
TCCR1A = (((PWM_QTY — 1) > 8);
ICR1L = (PWM_FREQ & 0xff);
DDRB |= ((PWM_QTY 25000) <
u8g.drawBox(112,56,8,8);
>
// u8g.drawBox(0, 60, (output/256),4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
case 1:
Dist = Dist + enc.read(); // Если энкодер зафиксирует поворот, то значение переменной i изменится:
if ( Dist 26 ) < Dist = 26; >
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr( 3, 20, «KL BoosT»);
u8g.drawStr( 31, 50, «FUZZ»);
u8g.drawBox(0,60,((Dist-10)*9),4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
case 2:
Over = Over + enc.read(); // Если энкодер зафиксирует поворот, то значение переменной i изменится:
if ( Over 26 ) < Over = 26; >
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr(3, 20, «KL BoosT»);
u8g.drawStr(8, 50, «Overdrive»);
u8g.drawBox(0,60,(Over*5),4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
case 3:
y = y + enc.read()*10; // Если энкодер зафиксирует поворот, то значение переменной i изменится:
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr(3, 20, «KL BoosT»);
u8g.drawStr(24 , 50, «Chorus»);
u8g.drawBox(0,60,(y/2),4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
case 4:
t = t — enc.read(); // Если энкодер зафиксирует поворот, то значение переменной i изменится:
if ( t 30 ) < t = 30; >
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr(3, 20, «KL BoosT»);
u8g.drawStr( 4, 50, «Compress»);
u8g.drawBox(0, 60, ((30-t)*6),4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
case 5:
El = El + enc.read(); // Если энкодер зафиксирует поворот, то значение переменной i изменится:
if ( El 64 ) < El = 64; >
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr(3, 20, «KL BoosT»);
u8g.drawStr( 15, 50, «Electro»);
u8g.drawBox(0, 60, (El*2), 4);
> while (u8g.nextPage());
if ((digitalRead(MasterPin)) == LOW ) <
Master = Master + 1;
delay (500);
>
break;
>
if (Master > 5 ) <
Master=0;
delay (500);
>
//———————————————————————————————
> else < // устройсво электрически не включено
u8g.firstPage();
do <
u8g.setFont(u8g_font_helvR18r);
u8g.drawStr( 2, 20, «KL BoosT»);
u8g.drawStr( 42, 64, «OFF»);
> while (u8g.nextPage());
>
Cirkle = 0;
>
>
//************* Обработчик прерывания захвата ввода из АЦП 0 — Timer 1
ISR(TIMER1_CAPT_vect) // Команда обработки прерывания Timer 1
<
ADC_low = ADCL; // читаем младший байт АЦП прочитан первым ( важно! )
ADC_high = ADCH; // читаем старший байт АЦП прочитан вторым
output = ((ADC_high 0) <
if (output > 24576)
output = (output/10)*Dist; // Все что выше 24576 удваиваем и обрезаем по уровню (65535)
if(output 0) < output = -32767; >
>
break;
//——————————————————————————————
case 2: // OverdrivE Эффект ******
if (output > 24576 || output 24576) <
output = output — ((output — 24576)/8)*Over; // Все что больше 57344 Уменьшаем на Over
>
if (output Horus[x]
z=x-y;
if (output 512 ) <
output = output + (24575 — output)/t;
>
if (output El) <
con1 = output;
con=0;
>else<
output = con1;
>
con++;
break;
>
//——————————————————————————————
OCR1AL = ((output + 0x8000) >> 8); // старший байт -> OC1A
OCR1BL = output; // младший байт -> OC1B
>

Отличная, работа! не поделитесь скетчами для ардуино?

Источник

Adblock
detector