Я ищу данные от датчика температуры на плате Arduino Uno и хранят данные в Matlab, а также отображают данные на графике в реальном времени для мониторинга изменений сенсора , В конечном итоге это будет реализовано с помощью другого сенсора, и это скорее доказательство концепции. Я два вопроса в настоящее время меня беспокоит:Чтение данных из последовательного порта и построение графика в реальном времени
1) Мне нужно собрать точек данных 1000X в секунду (мой текущий код не может сделать)
2) Через несколько секунд мониторинга данных большое шум входит в систему
Вот мой код MATLAB
SerialPort = 'com6';
s = serial(SerialPort, 'BaudRate', 250000, 'DataBits', 8);
fopen(s);
voltage = 0;
t = 0;
y = 1;
voltage = fscanf(s);
VoltageValue(y,1)=str2double(voltage);
h = animatedline(t,VoltageValue(y,1));
xlim([0 1000]);
ylim([100 200]);
tic
while t <= 1000
voltage = fscanf(s);
VoltageValue(y,1)=str2double(voltage);
addpoints(h, t, VoltageValue(y,1));
t= t+1;
y= y+1;
drawnow
end
toc
fclose(s);
delete(s);
clear s;
Вот мой Arduino код
int tmppin = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(250000);
pinMode(tmppin, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int tempreading = analogRead(tmppin);
Serial.println(tempreading);
}
вы не получите 1000 данных в секунду от серийного номера; afaik даже 100Hz растягивает его. Кроме того, АЦП не может работать на частоте 1000 Гц, поэтому вы двойные винты;) – dandavis