Узнать частоту приема сигнала
- Войдите на сайт для отправки комментариев
Втр, 03/09/2013 - 20:26
Здравствуйте
Я получаю некие числа с аналогового порта, как мне узнать с какой частотой происходит прием сигнала. Например, если взять оссцилограф то можно узнать с какой частотой происходят некие колибания. Мне нужно узнать не что этого.
в смысле вам нужен частотомер? Хотя конечно не понятно, как вы получаете "числа" с "аналогового порта..
Да, нужно узнать частоту. Например есть синусоида, нужно узнать частоту колебаний. #define ANALOGA_IN 0 void setup() { Serial.begin(38400); // указываем скорость работы с COM-портом } void loop() { int val; val = analogRead(ANALOGA_IN); // считываем данные Serial.println( val); // записываем данные в порт }нужно замерить интервал между двумя максимумами например так
Да, нужно узнать частоту. Например есть синусоида, нужно узнать частоту колебаний. #define ANALOGA_IN 0 int max[3]; //массив точек для определения изгиба кривой int i; long dt; //интервал float f; void setup() { Serial.begin(38400); // указываем скорость работы с COM-портом } void loop() { int val; val = analogRead(ANALOGA_IN); // считываем данные //Serial.println( val); // записываем данные в порт if (i == 3) i = 0; //сброс итератора массива if (max[i] < val) max[i] = val; //если значение возрасло то присваеваем его элементу массива if (val < max[2] && max[0] < max[1] && max[1]< max[2]) {//если точки на возрастающей а значение меньше минимального значит мы на перепаде max[0] = 0; max[1] = 0; max[2] = 0; if (dt == 0){//это первый перепад dt = micros(); }else{ f = float(1000000/(micros() - dt)); //если второй то находим частоту Serial.println(f); dt = 0; } } i++; }спасибо огромное, попробую
А Вы какой Ардуинкой пользуетесь?
stm32f103