• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowy integrator w Arduino
#1
Witam Wszystkich

Proszę o wyrozumiałość gdyż jestem początkujący


Mam następujący problem : 
Chciałbym osiągnąć coś w rodzaju Integratora sygnału 
Mam na wejściu taki oto sygnał (Pomiar ADC z częstotliwością około 1kHz) : 
A chciałbym osiągnąć coś w rodzaju sygnału takiego jak poniżej za pomocą kodu
Pró bowałem coś kombinować z PID ale albo coś żle robię ? ale wydaje mi się że PID nie do tego służy 
Próbowałem też ze średnią "running average"
Bardzo proszę Was o pomoc 
Bardzo proszę o przykładowy kod 
pozdrawiam 
Arek


Załączone pliki Miniatury
       
 
Odpowiedź
#2
Pokaż ten kod ze średnią "running average". I wrzuć wykresy z jakimiś wartościami na osiach, bo to wygląda na średnią, a na innym forum pisałeś, że to nie o to chodzi.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
Jest takie twierdzenie, o ile pamiętam to Kotielnikowa-Shannona, dotyczące próbkowania sygnałów.
Z tego twierdzenia policz sobie częstotliwość  próbkowania, bo to jest istotne.
I dopiero wtedy zastanów się, jak chcesz scałkować próbkę.
Metoda trapezów była by miej więcej taka:
Kod:
int calka (int pin)
{
int x1;
int x2;
int y;
int deltaX;

x2= analogRead(pin);
y = y + ((x1 + x2)/2)*deltaX;
x1 = x2;

return y;
}

No i o tą deltę x się rozchodzi. Możesz tak dobrać parametr, aby mieć wynik zbliżony do, nazwijmy to, modulacji amplitudowej.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości