Очень часто на Arduino для тестирования аналоговых портов приходится подключать осциллограф для проверки , а его как назло нет под рукой, вот и написал программу осциллографа, теперь при помощи Arduino можно измерять аналоговый сигнал с частотой от 0 до 5000 Гц . В автомобиле можно мерять показания кислородного датчика , импульсы тахометра, форсунки и многое другое .
Скачать программу .
Код для Ардуино:
PHP код:
//oscilloscope
//http://compcar.ru
byte head[3]={170,204,195};
byte MyBuff[800];
unsigned int i=0;
void setup()
{
Serial.begin(115200);
}
void loop()
{
for (i=0; i < 800; i++)
{
MyBuff[i] = analogRead(0)/4;
}
Serial.write(head,3);
Serial.write(MyBuff,800);
}
![Нажмите на изображение для увеличения.
Название: screen.jpg
Просмотров: 6696
Размер: 109.4 Кб
ID: 13341](http://compcar.ru/forum/attachment.php?s=a81ae3728a33ec4ca641a6419d5d6468&attachmentid=13341&d=1518621735&thumb=1)
Новая версия скетча Осциллографа, увеличилась предельно измеряемая частота до 50000Гц
Требуется установка библиотеки CyberLib
PHP код:
//oscilloscope
//http://duino.ru
//Для измерений используется вход А0
#include <CyberLib.h>
uint8_t MyBuff[803];
volatile uint16_t i=3;
void setup()
{
MyBuff[0]=170;
MyBuff[1]=204;
MyBuff[2]=195;
UART_Init(115200);
ADCSRA=(1<<ADEN)|(1<<ADIE)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS0);
ADMUX=(1<<ADLAR)|(1<<REFS0);
}
void loop(){}
ISR(ADC_vect)
{
MyBuff[i] = ADCH;
i++;
if(i==803)
{
UART_SendArray(MyBuff, sizeof(MyBuff));
i=3;
}
}
Изменился функционал и дизайн программы.
Большое спасибо XsanderS за помошь в создании программы и дизайна