#1 2022-12-21 20:29:19

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Генерация треугольного сигнала в коде.

Всем привет. Прошу помочь мне с написание скетча. Нужно создать виртуальный генератор треугольного сигнала с частотой допустим 100кгц. Значение записать в переменную, и после этого сравнить с сигналом из аналогового входа. Прошу показать мне пример скетча, сам я только начал знакомиться с програмированием. Посути мне нужно замодулировать синусоиду шимом. Буду очень благодарен за помощь! Слава Україні!

Остання редакція RadiomanV (2022-12-21 20:29:52)

Неактивний

#2 2022-12-22 10:17:05

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Генерация треугольного сигнала в коде.

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

Неактивний

#3 2022-12-23 16:11:45

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

[img=Создали виртуальный сигнал треугольной формы, после этого при каждом прохождении цикла записываем значение напряжения в переменную. После того как записали значение сравниваем его с сигналом с АЦП, допустим там синусоида на входе 50гц. если значение с АЦП больше то на одном из цифровых пинов появляеться 1 если меньше то 0.

Неактивний

#4 2022-12-23 16:14:58

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

В железе это компаратор на один вход которого мы подаем треугольный сигнал, а на другой вход синусоиду.А я хочу попытаться сделать это программно.

Неактивний

#5 2022-12-23 16:57:39

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Генерация треугольного сигнала в коде.

1 - Создали виртуальный сигнал треугольной формы, = это решаемо, тут понятно

2 - после этого при каждом прохождении цикла записываем значение напряжения в переменную. = выходе ардуино (ATmega328) можно получить только меандр амплитудой 5 Вольт.
Как вариант использовать WEMOS XI на LGT8F328D тут элементарно на выходе получаем треугольник но опять же максимум 5 Вольт.

3 - После того как записали значение = какое значение вы собираетесь записывать ?

4 - сравниваем его с сигналом с АЦП, допустим там синусоида на входе 50гц. если значение с АЦП = подав на вход АЦП синусоиду, что и как вы там планируете измерять ?

Неактивний

#6 2022-12-23 17:39:27

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

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

Неактивний

#7 2022-12-23 17:42:46

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

https://radioskot.ru/publ/unch/usilitel_moshhnosti_klassa_d/6-1-0-1146. вот как выглядит эта схема в железе. я хочу повторить это програмнно.

Неактивний

#8 2022-12-23 17:47:01

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

Подав синусоиду на АЦП я хочу получить значения напряжения в течении какогото времени (насколько быстро мк сможет). Тоесть значение в переменной должно плавно увеличиваться то спадать. Разрешение будет зависеть от битности АЦП и скорости работы кода- если так можно выразиться.

Неактивний

#9 2022-12-23 18:59:57

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Генерация треугольного сигнала в коде.

Программная реализация усилителя класса D


и поменяйте название темы, она совершенно не соответствует вашей хотелке...

Остання редакція renoshnik (2022-12-23 19:12:23)

Неактивний

#10 2022-12-23 21:23:14

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 433

Re: Генерация треугольного сигнала в коде.

З поста #3 я це так зрозумів:

loop {
  signal1 = (signal1 + 1) % 1024; // virtual
  signal2 = alalogRead(A0); // real
  digitalWrite(13, signal1 > signal2 ? HIGH : LOW);
}

Неактивний

#11 2022-12-23 22:53:42

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

Спасибо, попробую отпишусь!

Неактивний

#12 2022-12-23 22:56:24

RadiomanV
Учасник
Зареєстрований: 2022-12-21
Повідомлень: 8

Re: Генерация треугольного сигнала в коде.

renoshnik пише:

Программная реализация усилителя класса D


и поменяйте название темы, она совершенно не соответствует вашей хотелке...

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

Неактивний

#13 2022-12-24 13:32:33

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Генерация треугольного сигнала в коде.

RadiomanV пише:
renoshnik пише:

Программная реализация усилителя класса D


и поменяйте название темы, она совершенно не соответствует вашей хотелке...

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

??????????????
Я вам дал ссылку на программную реализацию класса Д УНЧ, что там не так... ?

КАКАЯ ГЕНЕРАЦИЯ ????  Вы почитайте свои посты ....   вот цитата - " Выводить треугольник наружу мне не нужно, он должен быть виртуальным. "  яка в биса гэнэрация ? вам просто нужна формула в программе для обработки входящей синусоиды...

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму