Создание одноканального осциллографа с использованием Arduino

Попробуйте наш инструмент устранения неполадок





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

Вступление

Каждый энтузиаст электроники однажды сказал: «У меня есть мечта, однажды я куплю осциллограф», но многие до сих пор мечтают иметь приличный осциллограф для своих проектов и экспериментов.



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

Этот проект может изменить правила игры для многих, энтузиастам электроники не нужно тратить кучу денег на осциллограф для измерения основных параметров волны.



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

1) визуальное представление формы волны на экране компьютера

2) измерение частоты входной волны

3) Измерение периода времени входной волны в микросекундах.

Частота и период времени сигнала будут отображаться на ЖК-дисплее 16 x 2. Существует два метода визуального представления формы волны на экране компьютера, которые будут описаны в следующей части статьи.

Теперь перейдем к технической части установки.

Предлагаемая установка состоит из Arduino, который, как обычно, является мозгом нашего проекта, ЖК-дисплея 16 x 2, IC 7404, потенциометра 10K и компьютера, предпочтительно Windows.

Arduino - это мозг установки, и мы должны выбрать Arduino UNO, Arduino mega или Arduino nano для этого проекта, поскольку другие модели не имеют встроенного преобразователя USB в последовательный порт, который необходим для связи между Arduino и компьютером.

Если мы выберем другие модели платы Arduino, нам понадобится внешний преобразователь USB в последовательный, что может усложнить проект.

Иллюстрация подключения ЖК-дисплея к Arduino:

Одноканальный ЖК-дисплей осциллографа

Вышеупомянутая схема не требует пояснений. Мы можем найти аналогичную связь между дисплеем и Arduino в других проектах на основе ЖК-дисплеев.

Потенциометр 10K используется для регулировки контрастности ЖК-дисплея 16 x 2, которая должна быть установлена ​​пользователем для оптимального обзора.

Одноканальный осциллограф с использованием Arduino

Функция IC 7404 заключается в устранении любого шумового сигнала со входа и подачи на вывод A0 выборки частоты. IC 7404 выводит только прямоугольные волны, что является большим преимуществом для Arduino, поскольку Arduino более способна обрабатывать цифровой сигнал, чем аналоговые сигналы.

Программа:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int Freqinput = A0
const int oscInput = A1
int Switch = A2
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(Switch,INPUT)
pinMode(Freqinput,INPUT)
pinMode(oscInput,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,127)
lcd.setCursor(0,0)
lcd.print('Press the button')
}
void loop()
{
if(digitalRead(Switch)==HIGH)
{
lcd.clear()
lcd.setCursor(0,0)
X = pulseIn(Freqinput,HIGH)
Y = pulseIn(Freqinput,LOW)
Time = X+Y
frequency = 1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print('0.00 Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print('0.00 us')
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print(frequency)
lcd.print('Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print(Time)
lcd.print(' us')
delay(500)
}
}
else
{
Serial.println(analogRead(oscInput))
}
}
//-----Program Developed by R.Girish-----//

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

Способ 1:

• Подключите входной провод к контакту № 9 Arduino (тестовый режим).
• Откройте Arduino IDE (это должна быть версия 1.6.6 или выше)
• Перейдите на вкладку «Инструменты» и выберите серийный плоттер.

Как только откроется последовательный плоттер, вы увидите прямоугольную волну, которая генерируется выводом № 9 Arduino, как показано ниже.

прямоугольная волна, генерируемая выводом №9 Arduino

Нажмите кнопку, чтобы отобразить показания, а также для обновления показаний ЖК-дисплей, он должен показывать около 490 Гц в «тестовом режиме».

Схема тестового режима:

Тестовый режим предназначен для проверки правильности работы осциллографа. Контакт № 9 запрограммирован на выход 490 Гц.

Способ 2:

Этот метод относительно прост, но нам нужно загрузить программное обеспечение по указанной ссылке: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Это программное обеспечение даст нам немного больше контроля и функций по сравнению с последовательным плоттером Arduino. Мы можем увеличивать и уменьшать масштаб сгенерированной формы сигнала, мы можем установить функцию запуска, контроль смещения по вертикальной и горизонтальной оси и т. Д.

• Загрузите программное обеспечение и распакуйте.

• Теперь дважды щелкните приложение Serial Oscilloscope.

серийный плоттер ардуино

• Появится всплывающее окно, как показано ниже, и выберите скорость передачи 9600 бод.

выберите скорость передачи 9600.

• Теперь выберите вкладку «Последовательный порт» и выберите правильный COM-порт, который может отличаться от компьютера к компьютеру. Если вы выберете правильный COM-порт, вы увидите показания, как показано ниже.

• Теперь выберите вкладку «Осциллограф» и выберите «каналы 1, 2 и 3» (первый вариант).

Теперь выберите вкладку «Осциллограф» и выберите «каналы 1, 2 и 3» (первый вариант). Форма сигнала с одноканального осциллографа с использованием Arduino

• Вы можете увидеть сгенерированный тестовый сигнал от Arduino, как показано ниже.

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

ПРИМЕЧАНИЕ:

Предлагаемая установка имеет один существенный недостаток:

Arduino не может одновременно отображать форму входного сигнала на экране компьютера и показания частоты / периода времени на ЖК-дисплее. Чтобы решить эту проблему, предусмотрена кнопка для считывания / обновления частоты и периода времени на ЖК-дисплее.

После того, как вы нажмете кнопку, на ЖК-дисплее отобразятся частота и период времени, в то время как форма волны будет зависать на экране компьютера, пока вы продолжаете нажимать кнопку.

Вы также можете рассматривать это как преимущество, поскольку вы можете остановить частоту на мониторе компьютера в любой момент, и это может дать вам время для анализа отображаемой формы волны.

Авторский прототип:

Изображение прототипа схемы осциллографа Arduino

Если у вас есть какие-либо дополнительные вопросы относительно этой простой одноканальной схемы осциллографа Arduino, пожалуйста, не стесняйтесь использовать поле комментариев ниже для выражения своих конкретных взглядов.




Предыдущая статья: Частотомер Arduino с дисплеем 16 × 2 Далее: Схема Интернет-передатчика LiFi - Передача сигнала USB через светодиод