Делаем цифровой осциллограф Via Arduino
Часто видел, что люди делают цифровые осциллографы. DSO должен иметь блок цифро аналогового преобразования. Схему преобразования можно разделить на два режима:
1. Специальный чип АЦП (однокристальный).
2. АЦП однокристальный с преобразователем.
С первой очень долго возиться. Вторая структура относительно проста, но имеет существенный недостаток, который, в узкой полосе частот, полоса пропускания осциллографа только 7.7KHz. STC однокристальный производства AVR, но фактическая пропускная способность составляет менее 10 кГц.
Код
Поэтому я хотел бы попробовать и посмотреть есть ли хороший способ решить эту проблему. Основные параметры конечного продукта:
Диапазон воспроизводимых частот: 10 Гц-50 кГц
Напряжение питания: 5V
ЖК-экран: площадь дисплея 128x64 (ST7920)
Измерение: 96x64
Информационный дисплей: 32x64, отображает частоту тестового сигнала, Vpp, и больше синхронизации:
Передний фронт запускает скорость сканирования: 0.02ms / дел ~ 10мс / дел,
несущие девять 1-2-5 функцию удержания:
заморозка отображаемого сигнала и параметров
Arduino код
# Include //statement
U8GLIB_ST7920_128X64_4X u8g(13, 12, 11); Statement LCD SPI Com:SCK =13, MOSI = 12, CS = 11
int x,y; Painted point coordinates
int Buffer[128]; Cache storage array
void setup( ) { }
Sample
void sample( )
{
for(x = 0;x < 128;x++)
Buffer[x] = analogRead(A0); Signal sampling
for(x = 0;x < 128;x++)
Buffer[x] = 63-(Buffer[x]>>4); Calculate y values
}
Display
void draw( )
{
for(x = 0;x < 127;x++)
u8g.drawLine(x,Buffer[x],x,Buffer[x+1]); Draw two lines
u8g.drawLine(64,0,64,63); Draw the axes
u8g.drawLine(0,32,128,32);
For (x=0;x<128;x+=8)//draw the axis scale
u8g.drawLine(x,31,x,33);
for(x=0;x<64;x+=8)
u8g.drawLine(63,x,65,x);
u8g.drawFrame(0,0,128,64); Draw border
}
void loop( )
{
sample(); Sample
u8g.firstPage(); Clear screen
do draw( ); Display
while( u8g.nextPage( ));
}
Схема
Основной список компонентов:
Arduino Pro Mini 1
LCD12864 LCD (ST7920) 1
электролитические конденсаторы (100 μ 25V) 1
потенциометр (50k) 1
отверстие пластины 3
Выключатель питания 1
батарейный картридж 2
кнопка включения (с аккумулятором, 7) 1
Подключение и монтаж
Загрузка и тест
Благодаря Pro Mini Arduino не включается USB-последовательный порт схему, так что для передачи через USB последовательный порт загрузки перед загрузкой программы. Отладка осциллографа очень проста, нужно настроить потенциометр 50k центрируя горизонтальные растровые строки. Я использую источник сигнала генератора сигнала.