unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CPort, CPortCtl,
VclTee.TeeGDIPlus, VCLTee.TeEngine, Vcl.ExtCtrls, VCLTee.TeeProcs,
VCLTee.Chart, VCLTee.Series, Vcl.Grids, Data.DB, VCLTee.TeeData;
type
TForm1 = class(TForm)
ComPort1: TComPort;
Memo1: TMemo;
Button1: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Chart1: TChart;
Series1: TFastLineSeries;
Button7: TButton;
Memo2: TMemo;
procedure ComPort1RxChar(Sender: TObject; Count: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,n: Integer;
a: array[1..10000] of real;
ff: TextFile;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
comport1.ShowSetupDialog;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
comport1.Open;
Memo1.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
comport1.Close;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
t:TStringList;
begin
t:=TStringList.Create;
t.Add(Memo1.text);
t.SaveToFile('C:\Users\len\Desktop\sbor_data\data.txt');
t.Free;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Begin
AssignFile(ff,OpenDialog1.FileName);
Reset(ff);
i:=0;
while not eof(ff) do
begin
i:=i+1;
Readln(ff,a[i]);
end;
end
else
exit;
CloseFile(ff);
end;
procedure TForm1.Button6Click(Sender: TObject);
var x,y: real;
begin
Series1.Clear;
for n := 1 to i-1 do
begin
x:=n;
y:=a[n];
Series1.AddXY(x,y,'',clred);
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Memo2.Clear;
for n := 1 to i-1 do
begin
Memo2.Lines.Add(FloatToStrF(a[n],ffGeneral,4,4));
end;
end;
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
S:string;
begin
ComPort1.ReadStr(S, Count);
Memo1.Text:= Memo1.Text + S;
end;
end.
<b>Скетч:</b>
float Step = 5.0F / 1024; // Вычисляем шаг U опорн / на градацию
void setup() {
Serial.begin(9600); // Задаем скорость работы монитор порта
}
void loop() {
int analogValue = analogRead(0); // Задаем переменную analogValue для считывания показаний
float voltageValue = analogValue * Step; // Переводим в вольты (показание * шаг)
Serial.println(voltageValue); // Выводим значение в вольтах в порт
delay(500); // Ждем пол секунды
}