Как отрицательный полупериод синусоиды сделать положительным

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Михаил_
Потрогал лапой паяльник
Сообщения: 343
Зарегистрирован: Вс янв 06, 2013 03:47:31

Re: Как отрицательный полупериод синусоиды сделать положител

Сообщение Михаил_ »

Так да, работает t = (abs(t)). Но ещё лучше работает реальный двухполупериудный измерительный выпрямитель на ОУ. Сегодня собрал схему и протестировал.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4570741#p4570741"]Проколы на "пиле" - это переполнение.[/uquote]
Переполнение чего ?
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25300
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Как отрицательный полупериод синусоиды сделать положител

Сообщение КРАМ »

[uquote="Михаил_",url="/forum/viewtopic.php?p=4570903#p4570903"]Переполнение чего ?[/uquote]
Амплитуда пилы близка к 256. Полагаю, что АЦП работает только в 8 битах с правым выравниванием. Это в ардуинах бывает... :)
Реклама
Аватара пользователя
Полосатый
Друг Кота
Сообщения: 3164
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Re: Как отрицательный полупериод синусоиды сделать положител

Сообщение Полосатый »

Ещё можно помножить на -1 :)

"Обработано фильтрами" - значит сигнал переменный? Какой диапазон частот? Переменку можно и через конденсатор подать на резистивный делитель.

"От 20 мВ до 3В" - надо по амплитуде считать или по количеству импульсов? Если просто по количеству, то усилитель-ограничитель спасёт гиганта мысли (сделает импульсы прямоугольными).

Если не хватает скорости оригинальной ардуинки, то китайский аналог LGT8F328P заметно шустрее.

Выводить можно и не в монитор порта, а через шим на один из шимных выводов и после RC-фильтра смотреть осциллографом (сначала увеличить частоту шим).

Переменная называется 3bIPK ? (английская раскладка)
Спойлер// Назначаем вывод PWM
#define pwm_pin 9

int 3bIPK = 127;

void setup() {

// настраиваем таймер1 (для пинов 9 и 10)
TCCR1A = 0b00000001; // 8bit
TCCR1B = 0b00001001; // x1 fast pwm - 62.5 кГц
}

void loop() {

//
// получаем значение 3bIPK с АЦП ...
// обрабатываем
//

// нормируем значение 3bIPK от 0 до 255
3bIPK = constrain(3bIPK, 0, 255);

// выводим шим
analogWrite(pwm_pin, 3bIPK);

}
К 9-му выводу подключаем резистор 5,6 кОм и конденсатор 0,15 мкФ на землю.
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Ответить

Вернуться в «Практика»