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

 

Простой осциллограф на Arduino своими руками

Автор: Mike(admin) от 21-08-2016, 12:04

Хотите самостоятельно сделать дешевый осциллограф, который удовлетворял основные потребности в плане измерения электрических величин? Это возможно благодаря плате Arduino. На основе Arduino можно собрать простой осциллограф для ПК, который по себестоимости будет менее $5.


Простой осциллограф на Arduino своими руками

Характеристики и особенности самодельного осциллографа на Arduino:


  • 50000 выборок в секунду (можно довести до 110000, но тогда сигнал будет очень зашумленным)
  • Автотриггер
  • Счетчик частоты
  • Достаточно точные показания напряжения (в зависимости от точности резисторов, используемых для делителей напряжения)
  • Дополнительно можно выбрать диапазон напряжения: 5В, 6.6В, 10В, 20В

Компоненты для осциллографа:


  • Arduino Leonardo или Arduino Micro
  • Два зажима типа крокодил
  • Конденсатор 0.1 мкФ (опционально)
  • Стабилитрон 5.1В (опционально)
  • ПК с установленным компилятором языка Processing

Также дополнительно для делителей напряжения (если вы хотите измерять напряжение выше 5 В) потребуется:


  • Два двухполюсных переключателя
  • Два резистора 3 КОм
  • Два резистора 1.5 КОм
  • Один резистор 1 КОм
  • Небольшая макетная плата

Простой осциллограф на Arduino своими руками

Если вам нужно измерять только напряжение до 5 В, то можете не подключать делители напряжения, а контакты щупов подключить непосредственно на землю и на аналоговый порт A1 на плате Arduino. Тогда вам придется немного изменить код. В коде для Arduino поменяйте:



ADMUX =  B00000000;         // выбор внешнего опорного напряжения и порта 5 (A0)

на



ADMUX =  B01000000;         // выбор внутреннего опорного напряжения (Vcc - 5V) и порта 5 (A0)

В коде для processing поменяйте:



 boolean switch1=((buffer[writeIndex*2]&(byte)8)==8);                                                 
 boolean switch2=((buffer[writeIndex*2]&(byte)4)==4);
 if (!switch1&&!switch2) voltageRange=20;
 if (!switch1&&switch2) voltageRange=10;
 if (switch1&&!switch2) voltageRange=6.64;
 if (switch1&&switch2) voltageRange=5;

на



voltageRange=5;

Скетч для Arduino и код на processing:


scope.ino
scopeP2.pde
scopeP3.pde


Схема осциллографа на Arduino с делителями напряжения:


Простой осциллограф на Arduino своими руками

В левой стороне схемы расположен делитель напряжения с коэффициентом 1:4. То есть к нему можно подключать напряжение да 20 В.


Справа расположен делитель напряжения, переключающийся между линиями 5 В и опорного напряжения (Aref). Вы можете использовать переключатели для установки диапазона измерения: 5В, 6.64В, 10В или 20В. Второй контакт каждого переключателя соединяется с цифровым входом Arduino (D3 и D4). Это работает следующим образом. Если программа настроена на работу с опорным напряжением, АЦП сравнивает напряжение аналоговых входов с Aref вместо 5В. Например, мы измеряем 5 В, тогда напряжение на A1 будет 5В/4=1.25 В. Если оба переключателя разомкнуты, то напряжение на Aref будет 5В, АЦП прочитает 1.25/5=25%. Если первый переключатель разомкнут, а второй замкнут, напряжение на Aref будет 2.5В, АЦП прочитает 1.25/2.5=50%. Если первый переключатель замкнут, а второй разомкнут, напряжение на Aref будет 1.66В, АЦП прочитает 1.25/1.66=75%. Если оба переключателя замкнуты, напряжение на Aref будет 1.25В, АЦП прочитает 1.25/1.25=100%.


Дополнительными элементами в схеме являются конденсатор между линией щупа и землей и Стабилитрон 5.1V. Конденсатор позволяет уменьшить шумы измеряемых сигналов, а стабилитрон защищает Arduino от перенапряжения.


Помните:


Если аналоговое опорное напряжение выбрано внутреннее (по умолчанию), и вы подводите напряжение питания к AREF, то это может вывести из строя Arduino.


Аналоговые входы не могут работать с отрицательным напряжением.


Не превышайте напряжения 5 В непосредственно на выводах Arduino.




© digitrode.ru


<Via>


Теги: Arduino, осциллограф




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

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

Оставить комментарий
Цитата
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Добрый день, почему для данного проекта используется конкретно Arduino Leonardo или Micro. Возможно ли их заменить хотя бы на Uno или Nano?
Цитата
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 28.08.2013
  • Статус: Пользователь offline
  • Комментариев: 15
  • Публикаций: 1336
^
Цитата: Александр
Добрый день, почему для данного проекта используется конкретно Arduino Leonardo или Micro. Возможно ли их заменить хотя бы на Uno или Nano?

Да, можно использовать платы Arduino других типов, только следите, чтобы выводы соответствовали своему назначению.
Цитата
  • Макс

  • 23 января 2018 22:40
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
А как выглядит схема без делителей напряжения?
Цитата
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
немогу понятть про подключение переключателей не могли бы вы дать схему самих переключателей и какие SW с каким SW парны
Цитата
  • Роброй

  • 9 марта 2018 21:01
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Переключатели sw1 и sw2. Два переключателя с двумя группами контактов, на схеме крест-накрест