цифровая электроника
вычислительная техника
встраиваемые системы

 



Как использовать операционный усилитель в Arduino Uno R4

Автор: Mike(admin) от 19-11-2023, 23:55

Когда рекламировалась версия Arduino Uno R4, все дистрибьюторы без колебаний упоминали встроенный операционный усилитель, хотя никакой дополнительной информации о нем не было, ни схем, ни учебников, ничего. Всего несколько месяцев спустя было опубликовано несколько строк кода, и единственным представленным приложением был повторитель напряжения, который совершенно бесполезен.


Как использовать операционный усилитель в Arduino Uno R4

Что можно сделать с помощью некоторых дополнительных пассивных компонентов, так это фильтр, который усиливает или подавляет определенные частоты аналогового сигнала. Конечно, это можно сделать с помощью кода, но на это может уйти много времени. Аналоговые фильтры работают со скоростью света (почти). На следующей схеме показано, как создать аналоговый полосовой фильтр с помощью встроенного операционного усилителя в Arduino Uno R4.


Как использовать операционный усилитель в Arduino Uno R4

Инструкции по реализации фильтров можно легко найти в Интернете. Но нужно учитывать, что операционным усилителям часто требуется положительное и отрицательное напряжение питания, которого у нас нет. Поэтому нам нужно подать половину +Vcc на неинвертирующий вход (+), подключенный к A1. Вот почему вы увидите два резистора (одинаковых номиналов) между +Vcc и GND. Выбираем 10 кОм для R1 и 22 кОм для R2. Значения С1 и С2 зависят от того, какие частоты вас интересуют. Выбираем 100 нФ. Чтобы найти точные значения, просто используйте следующую формулу.


Как использовать операционный усилитель в Arduino Uno R4

Выход операционного усилителя (А3) подключен к контакту А4, откуда отфильтрованный сигнал может быть отправлен на внутренний АЦП.


Для реализации данного проекта вам необходимо скачать и установить библиотеку OPAMP.h, которую можно найти на github.com. Мы использовали приведенный в ней пример «start_opamp.ino» и добавили несколько строк, чтобы протестировать свое оборудование.



#include <OPAMP.h>

void setup () {
  long t1 = millis() + 2000;
  Serial.begin(230400);
  while (!Serial & millis() < t1)
    ;
  Serial.println(__FILE__);
  // активируем операционный усилитель (OPAMP), канал по умолчанию 0
  // Неинвертирующий вход: аналоговый A1
  // Инвертирующий вход: аналоговый A2
  // Выход: аналоговый A3
  if (!OPAMP.begin(OPAMP_SPEED_HIGHSPEED)) {
    Serial.println("Failed to start OPAMP!");
  }
  bool const isRunning = OPAMP.isRunning(0);
  if (isRunning) {
    Serial.println("OPAMP running on channel 0!");
  } else {
    Serial.println("OPAMP channel 0 is not running!");
  }
}

void loop() {
  const int N = 500;
  const int m = 1023;
  int a[N], b[N];
  long t1 = millis();
  for (int i = 0; i < N; i++) {
    a[i] = analogRead(A0);
    b[i] = analogRead(A4);
  }
  long t2 = millis();
  Serial.print("Zeit =");
  Serial.print(t2 - t1);
  Serial.println("ms");
  for (int i = 0; i < N; i++) {
    Serial.print(a[i]);
    Serial.print(" ");
    Serial.print(m - b[i]);
    Serial.println();
  }
  delay(2000);
}

Наша установка физически выглядит следующим образом.


Как использовать операционный усилитель в Arduino Uno R4

Для проверки фильтра мы использовали гитарный питч-пайп.


Как использовать операционный усилитель в Arduino Uno R4

В последовательном плоттере получили следующие результаты.


Как использовать операционный усилитель в Arduino Uno R4

Здесь выходной сигнал фильтра мал, поскольку не в резонансе. А на следующем изображении он высокий, поскольку наблюдается резонанс.


Как использовать операционный усилитель в Arduino Uno R4

Время чтения 500 выборок составило 25 миллисекунд, поэтому вы легко сможете вычислить частоты.




© digitrode.ru


Теги: Arduino, операционный усилитель




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Neva

  • Сегодня, 13:25
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
uitzicht azelastine hydrochloride nasal spray cost analyst
azelastine
feeling drunk
- azelastine nasal spray reviews cause yeast infections fluticasone salmeterol dosage
bodil azelastine price