запись и воспроизведение

Тед
Offline
Зарегистрирован: 06.11.2017
Подскажите пожалуйста.
Arduino uno.
Как сохранить несколько периодов синусоиды  нажимая кнопку и воспроизводить эту запись  в петле ?
Клапауций 400
Offline
Зарегистрирован: 28.02.2018

подключи конденсатор параллельно кнопке

Тед
Offline
Зарегистрирован: 06.11.2017
вот мой черновик для начала

pinMode(PA7, INPUT);

const int numReadings = 10;

int average = 0;         

void setup() {
 
  Serial.begin(9600);
 
  average = analogRead(inputPin);
}
void loop() {
  for (int i = 0; i < numReadings; i++) {
    average = average + (analogRead(inputPin) - average) >> filterWeight;
  }
  Serial.println(average);
  delay(1);
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

И что Вы в этом черновике делаете?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ничего не делает, ловит ошибку компиляции, что мол filterWeight не описано.

ТС,

я конечно, понимаю, что Вы "ни разу не программист" и "вообще гуманиратрий", но не до такой же степени!!!

Что Вы написали в строке 17???

average = average + (analogRead(inputPin) - average) >> filterWeight;

Можете скобки раскрыть? Что выходит?

(2 x average analogRead)  >> на "ХЗ сколько"

Что Вы этим хотели сказать? Неужели, Вы и впрямь думаете, что при этом average будет усредняться?

-------------------

Кстати, только сейчас догадался спросить, а что Вы здесь имели в виду?

1) average = average + ((analogRead(inputPin) - average) >> filterWeight);

или

2) average = (average + (analogRead(inputPin) - average)) >> filterWeight;

Можете объяснить? Какая из двух строк по-Вашему записана выше, и как оно должно по-Вашему мнению работать?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Всегда удивлялся - зачем люди скобки экономят  !? Они же бесплатные !

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так проблема как раз и есть в том, что бесплатные! А вдруг кончатся? Были бы платные - пошёл и купил ещё, а так - где их брать?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ЕвгенийП пишет:

Так проблема как раз и есть в том, что бесплатные! А вдруг кончатся? Были бы платные - пошёл и купил ещё, а так - где их брать?

Блииииннн... точно... Теперь мне скобок будет не хватать, а взять негде :( Есть у кого скобки не нужные !? Приму в дар !

sadman41
Offline
Зарегистрирован: 19.10.2016

Есть только нужные. Рубль штучка.

Тед
Offline
Зарегистрирован: 06.11.2017
Вот ответ только для  andriano
 
Это пример взятый из  arduino туториал , для усреднения значений постоянного напряжения.
И  вопрос, как применить его  для переменного напряжения, как получить среднее значение 10 периодов синусоиды  ?
brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Тед пишет:

Вот ответ только для  andriano
 
Это пример взятый из  arduino туториал , для усреднения значений постоянного напряжения.
И  вопрос, как применить его  для переменного напряжения, как получить среднее значение 10 периодов синусоиды  ?

Среднее значение десяти периодов синусоиды будет равно 0.

Тед
Offline
Зарегистрирован: 06.11.2017

Из 10 периодов получим красивую  синусоиду.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Что означают эти картинки ? 

Вам нужен алгоритм или готовый код ?

Естественно метод скользящего среднего в прямом приложении тут не применим

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Тед пишет:

Это пример взятый из  arduino туториал , для усреднения значений постоянного напряжения.
И  вопрос, как применить его  для переменного напряжения, как получить среднее значение 10 периодов синусоиды  ?

Алгоритм усреднения переменного напряжения ничем не отличается от алгоритма усреднения постоянного напряжения.

Только, сдается мне, опубликованный Вами кода нерабочий.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

Только, сдается мне, опубликованный Вами кода нерабочий.

Шаман, однако :)

Тед
Offline
Зарегистрирован: 06.11.2017

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Тед, не с того начинаете.

Вам нужно:

1. Алгоритм усреднения пиковой амплитуды.

2. Базовые знания по языку программирования.

Ни то, ни другое к Ардуино никакого отношения не имеют. Вам нужно книжки читать, а не на форуме спрашивать. До форума Вы еще не доросли.

И еще: скетчи пишутся ручками при помощи клавиатуры, а не "ищется похожий пример".

 

PS. И у большинства присутствующих большие сомнения, что Вы именно написали приведенный черновик, а не утянули его откуда-то, не понимая, как он работает (или почему не работает).

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

andriano пишет:

Алгоритм усреднения переменного напряжения ничем не отличается от алгоритма усреднения постоянного напряжения.

Ага, отличается только алгоритм измерения.

Тед
Offline
Зарегистрирован: 06.11.2017
Спасибо, я уже нашёл.
Вот вам точки и запятые.......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,