t = (abs(-t))
А просто t = -t использовать не пробовал ?
Пробовал, не работает.
Вы как себе представляете вывод данных с Ардуино? Святым духом?
У вас скорость вывода 9600. ДЕВЯТЬ ТЫСЯЧ ШЕСТЬСОТ БИТ В СЕКУНДУ, Карл!!!
Вы выводите двухбайтовые числа. То есть скорость вывода ОДНОЙ ТОЧКИ составляет примерно 480 слов/сек.
Именно так и представляю. Перкрестил ардуино, святой водой побрызгал.. произнёс.. с Богом, Аллилуя... и понеслась
Поздно было, спать ложится собирался уже, по быстрому что-то там менял особо не задумываясь Когда лёг, думал, что возможно нужно поменять скорость с 9600 на большую.
Поставил Serial.begin(115200). Стало немного лучше, но сигнал выпрямленный почему то над 0 висит. Видимо скорости всё же не хватает. Хотя для моих целей, с натяжкой, пойдёт. Частоты мозга максимум до 30Гц. Но что там будет со коростью кода ещё кода добавлю, не известно.
В итоге получилась такая картина...
Код..
Спойлер
int t = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
t = analogRead(A0) - 512;
t = (abs(t));;
Serial.println(t);
}При 50Гц входном сигнале, на выходе выпрямленный...
Спойлер
При 150Гц входном сигнале, на выходе выпрямленный...
Спойлер
При 200Гц..
Спойлер
Вместо синуса, подал пилообразный сигнал 50Гц.. на выходе искажения пошли..
Спойлер
Последний раз редактировалось
Михаил_ Пт апр 19, 2024 19:12:13, всего редактировалось 4 раз(а).