Двухтональный генератор на ардуино
- Войдите на сайт для отправки комментариев
Пнд, 07/01/2019 - 00:26
Имеется схема на базе жёской логики, паять рассыпуху как-то не комильфо, попробую заменить на ардуинку.
Пока без программирования таймеров, средствами языка в рамках концепции IDE.
Код простой (немного лишнего, в дальнейшем убрать):
/* * Двухтональный генератор на базе ардуино нано */ unsigned long freq_1800; unsigned long freq_2250; int worked_1 = 0; int worked_2 = 0; void setup() { Serial.begin(115200); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(13, OUTPUT); digitalWrite(7,HIGH); freq_2250 = micros(); digitalWrite(8,HIGH); freq_1800 = micros(); digitalWrite(13,HIGH); } void loop() { if(micros() - freq_2250 >= 444){ digitalWrite(7,!digitalRead(7)); freq_2250 = micros(); worked_2++; if(worked_2 == 2250){ Serial.println("2250 -worked"); worked_2 = 0; } } if(micros() - freq_1800 >= 555){ digitalWrite(8,!digitalRead(8)); freq_1800 = micros(); worked_1++; if(worked_1 == 1800){ Serial.println("1800 -worked"); worked_1 = 0; digitalWrite(13,!digitalRead(13)); } } // Конец тела цикла }
Cхема исходного устройства:
Операционник используется с единичным усилением, попробую заменить на LM358
Да, константы должны быть 222 и 277, для вывода синхронизирующей последовательности можно сделать еще один аналогичный канал с константой частоты 2222
Добавлен код синхронизирующей частоты:
Как бы проанализировать аналоговую часть в LTSpace?
Нарисовать как-то удалось
Ну снимите АЧХ.
Какие еще идеи могут возникать при виде схемы ФНЧ.
Ну снимите АЧХ.
Какие еще идеи могут возникать при виде схемы ФНЧ.
Еще не паял, хотел проэмулировать, можно ли заменить на LM358
Почему нет, если фильтр на единицы кГц.
Только при чем здесь пайка? Я и предложил снять АЧХ на эмуляторе.
Почему нет, если фильтр на единицы кГц.
Только при чем здесь пайка? Я и предложил снять АЧХ на эмуляторе.
Так я и попросил дать ссылку на инструкцию, как это сделать, интуитивно сам не одолел )))
WDRAKULA этот эмулятор порекомендовал в ПЕСОЧНИЦЕ
Мой опыт работы с этой программой составил минут 20.
Но я так думаю, что, по общему правилу: порядок работы должен совпадать с таковым для снятия АЧХ в железе: подключить ко входу генератор, изменяя его частоту, смотреть амплитуду на выходе.
там же ссылка на статью ВалВола об элементарных способах работы.
там же ссылка на статью ВалВола об элементарных способах работы.
Почитал! Назвать сиё действо элементарным, язык не повернётся. Евгений Петрович был прав, это не для начинающих. Осталось спаять макетку и проверить подойдёт LM358 или нет )))
остановился на этом скетче:
Какой смысл функций start*, если их код уже есть в функциях set* ? Или так хитро с таймерами работать нужно?
кое-что можно упростить конечно )))
PS без этих строк запускается только один таймер, пока не разбирался почему
По логике - нужно перенести их в конец функций set*, попробуй.
Запуск/остановка таймера - это запись предделителя. Сразу не стартует - видимо в самом счетчике уже число больше чем в регистре сравнения. Приходится ждать полный круг. Надо обнулять сами счетчики !
Не нужно ничего переносить. Просто убрать старты за ненужностью. И будет работать.
Не нужно ничего переносить. Просто убрать старты за ненужностью. И будет работать.
второй таймер не работал однако почему-то
А проверить?
А проверить?
тут под руками осциллографа нет сейчас
и для платы Rasberry PI Pico под MicroPython v1.19 код будет ну очень простой:
PS c пинов 22 и 21 сигнал объединить через переменный резистор, синхронизация на 20 пине,
PPS но джиттер под Питоном весьма приличный, сигнал на слух еще оценивал,
частоты посмотрел на осциллографе, подправил ;- )))
че тебе надо то? инвертировать два пина с двумя разными частотами? - нафига это делать через прерывания?
Настрой два PWM таймера на две нужные частоты да и все, у Пики их 16 штук. Джиттера не будет вовсе
че тебе надо то? инвертировать два пина с двумя разными частотами? - нафига это делать через прерывания?
Настрой два PWM таймера на две нужные частоты да и все, у Пики их 16 штук. Джиттера не будет вовсе
это жеж на C++ а я тут потихоньку осваиваю Питон )))
PS в Питоне тоже можно через PWM вот и посмотрю, чуток попозжее
Переделал на PWM - сигнал мне нравится , теперь бы сравнить со скетчем на С++ ;-)))
А девкой всё же крашеС библиотекой всё же проще )))С библиотекой всё же проще )))
абсолютно неважно через библиотеку или сам, если ты понимаешь принцип.
Вот только вопрос - понимаешь ли ты его, когда делаешь через библиотеку?
да что ж там понимать, пин, частота скважность )))
ЗЫ на удивление через библиотеку частоту устанавливает довольно точно
в это не въехал:
в это не въехал:
сравни :)
https://arduino.ru/forum/apparatnye-voprosy/raspberry-pi-pico?page=5#com...
в это не въехал:
сравни :)
https://arduino.ru/forum/apparatnye-voprosy/raspberry-pi-pico?page=5#com...
для меня это пока сложно, но так как нашёл библиотеку изучать сей вопрос буду неспешно...
Это ты напрасно недооцениваешь 64 градации ШИМ, для аналогового телевидения 10 градаций яркости было великолепно ))) (ТИТ-0249)
А девкой всё же крашеС библиотекой всё же проще )))Т.е. вот этот небольшой кусок скетча заливаем в ардуинку и получаем двухтоннальный генератор как по схеме с первой страницы?
да, выход на переменный резистор с двумя тумблерами, далее в качестве операционника LM358 (один корпус), всё как по схеме только значительно проще получается, только процессор болтается без дела, нехорошо, надо бы еще чему найти применение, надо подумать, к примеру сплиттер и индикатор CAT системы, тем более что к YAESU библиотека (благодаря DetSimen) написана...
Понятно, ждем дальнейшего развития девайса
Понятно, ждем дальнейшего развития девайса
мысли есть, что добавляем?
На ослике синусоиды "чистые" без лесенок?
Что с гармониками? по бокам не серит?
На ослике синусоиды "чистые" без лесенок?
откуда там синусоиды?
На ослике синусоиды "чистые" без лесенок?
откуда там синусоиды?
Имелось ввиду после операционника
На ослике синусоиды "чистые" без лесенок?
откуда там синусоиды?
Имелось ввиду после операционника
пока только цифру отлаживал... я тут как бы два проектика одновременно допиливаю, сканер 2400 - 2500 на ESP32 или RP2040, и NRF24L01, сейчас выложу крайнюю версию...
Ослика у меня к сожалению нету, могу скинуть картинку только с Hantek DSO2D10 )))
ЗЫ (приму в дар ослика)
Ослика у меня к сожалению нету, могу скинуть картинку только с Hantek DSO2D10 )))
ЗЫ (приму в дар Hantek DSO2D10) :)
Ослика у меня к сожалению нету, могу скинуть картинку только с Hantek DSO2D10 )))
ЗЫ (приму в дар Hantek DSO2D10) :)
да мы тут все его по наводке BOOMа накупили
и для платы Rasberry PI Pico под MicroPython v1.19 код будет ну очень простой:
PS c пинов 22 и 21 сигнал объединить через переменный резистор, синхронизация на 20 пине,
PPS но джиттер под Питоном весьма приличный, сигнал на слух еще оценивал,
частоты посмотрел на осциллографе, подправил ;- )))
Этот скетч работает безукоризненно, а вот со скетчем на С++ есть проблема