Създаване на едноканален осцилоскоп с помощта на Arduino

Създаване на едноканален осцилоскоп с помощта на Arduino

В тази интересна публикация ще направим прост едноканален осцилоскоп, използвайки Arduino и персонален компютър, където формите на вълните ще бъдат демонстрирани на дисплея на компютъра, а честотата и времевият период на входните вълни ще бъдат показани на дисплея 16 x 2 .



Въведение

Всеки ентусиаст по електроника веднъж каза „Имам мечта, един ден ще си купя осцилоскоп“, но все още мечтата на мнозина е да притежават достоен осцилоскоп за своите проекти и експерименти.

Осцилоскопът е скъпо оборудване дори за модел от начално ниво, ние ги считаме за луксозен електронен инструмент и може да спрем нашите експерименти и проекти, защото не можем да си позволим такъв.



Този проект може да промени играта за много хора, ентусиастите на електрониката няма нужда да харчат тонове пари за осцилоскоп за измерване на основните параметри на вълната.

Предложената идея има много ограничена функционалност, така че не очаквайте функциите на a осцилоскоп от висок клас да присъства в този проект. Получаваме три солидни функционалности от този проект:



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

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

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

Честотата и периодът от време на сигнала ще бъдат показани на 16 x 2 LCD дисплей. Има два метода за визуално представяне на формата на вълната на екрана на компютъра, които ще бъдат описани в следващата част на статията.

Сега нека да се потопим в техническата част на настройката.

Предложената настройка се състои от arduino, който е мозъкът на нашия проект, както обикновено, LCD дисплей 16 x 2, IC 7404, потенциометър 10K и компютър, за предпочитане машина за Windows.

Arduino е мозъкът на настройката и ние трябва да изберем Arduino UNO или Arduino mega или Arduino nano за този проект, тъй като други модели нямат вграден USB към сериен конвертор, който е от съществено значение за комуникацията между Arduino и компютъра.

Ако изберем други модели платка arduino, се нуждаем от външен USB към сериен конвертор, който може да усложни проекта.

Илюстрация на връзка с LCD към Arduino:

Едноканален осцилоскоп LCD дисплей

Горната схема е обяснима сама по себе си. Можем да намерим подобна връзка между дисплея и arduino при други проекти, базирани на LCD.

Потенциометърът 10K се използва за регулиране на контраста на 16 x 2 LCD дисплея, който трябва да бъде настроен от потребителя за оптимален изглед.

Едноканален осцилоскоп, използващ 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 (Тестов режим).
• Отворете IDE на Arduino (трябва да е 1.6.6 или по-нова версия)
• Отидете в раздела „инструменти“ и изберете сериен плотер

Веднага след като се отвори сериен плотер, можете да видите правоъгълната вълна, която се генерира от pin # 9 на arduino, илюстрирана по-долу.

правоъгълна вълна, която се генерира от pin # 9 на arduino

Натиснете бутона, за да покажете показанията, а също и за освежаване на показанията на LCD дисплея, той трябва да показва около 490Hz в „тест режим“.

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

Тестовият режим е да се провери правилното функциониране на осцилоскопа. ПИН # 9 е програмиран да дава 490Hz изход.

Метод 2:

Този метод е относително лесен, но трябва да изтеглите софтуер от дадената връзка: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

Този софтуер ще ни даде малко повече контрол и функции в сравнение със серийния плотер на arduino. Можем да увеличаваме и намаляваме генерираната форма на вълната, можем да зададем функционалност на спусъка, контрол на отместването върху вертикална и хоризонтална ос и т.н.

• Изтеглете софтуера и извлечете.

• Сега щракнете двукратно върху приложението Serial Oscilloscope.

сериен плотер на arduino

• Ще се появи прозорец, както е показано по-долу, и изберете скорост на предаване на 9600.

изберете скорост на предаване до 9600.

• Сега изберете раздела „Сериен порт“ и изберете правилния COM порт, който може да варира от компютър до компютър. Ако изберете правилния COM порт, можете да видите показанията, както е показано по-долу.

• Сега изберете раздела „осцилоскоп“ и изберете „канали 1, 2 и 3“ (първа опция).

Сега изберете раздела „осцилоскоп“ и изберете „канали 1, 2 и 3“ (първа опция). Форма на вълната от едноканален осцилоскоп, използващ Arduino

• Можете да видите генерирания тестов сигнал от Arduino, както е показано по-долу.

Както можете да видите, има някои бутони за управление на софтуера, чрез които можете да анализирате по-добре формата на вълната.

ЗАБЕЛЕЖКА:

Предложената настройка има един основен недостатък:

Arduino не може да показва едновременно входна форма на вълната на екрана на компютъра и четене на честота / период от време на LCD дисплей. За преодоляване на този проблем е предвиден бутон за четене / опресняване на честотата и периода от време на LCD дисплея.

След като натиснете бутона, той ще покаже честотата и периода от време на LCD дисплея, като в същото време формата на вълната ще замръзне на екрана на компютъра, докато продължавате да натискате бутона.

Можете също така да разгледате това като предимство, тъй като можете да спрете честотата на монитора на компютъра по всяко време и това може да ви даде време да анализирате показаната форма на вълната.

Прототип на автора:

Прототипно изображение за верига на осцилоскоп Arduino

Ако имате някакви допълнителни въпроси относно тази проста едноканална осцилоскопна схема Arduino, моля не се колебайте да използвате полето за коментари по-долу за изразяване на вашите конкретни възгледи




Предишен: Измервател на честота Arduino, използващ дисплей 16 × 2 Напред: LiFi верига за интернет предавател - USB трансфер на сигнал чрез светодиод