Если кто хочет побаловаться управлением нагрузкой через com))
Компонент порта для Делфи во вложении, а так же пример моей оболочки (правда не доделана), компонент для работ с PNG файлами в Делфи.
Код для Ардуино, задействовано 12 цифровых (кратковременное нажатие)
PHP код:
#define OUTPUT_DEFAULT HIGH
//#define OUTPUT_DEFAULT LOW
#define ON_TIME 300 // ms
void setup()
{
for (int i = 2; i <= 13; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, OUTPUT_DEFAULT);
}
Serial.begin(9600); // pins 0, 1
}
void loop()
{
if (Serial.available() > 0) {
int incomingByte = Serial.read();
if ((incomingByte >= 2) && (incomingByte <= 13)) {
digitalWrite(incomingByte, !OUTPUT_DEFAULT);
Serial.write(0x40 | incomingByte);
delay(ON_TIME);
digitalWrite(incomingByte, OUTPUT_DEFAULT);
Serial.write(0x80 | incomingByte);
}
}
}
Код для Делфи.
PHP код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CPort;
type
TForm1 = class(TForm)
cmprt1: TComPort;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// отсылаем команду "0" на выход d2
cmprt1.WriteStr (#0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//открываем comport
cmprt1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// отсылаем команду "" на выход d3
cmprt1.WriteStr (#1);
end;
end.
Кoд для Ардуино, задействовано 11 пинов (фиксированное нажатие)
PHP код:
void setup() {
Serial.begin(9600);
for (int i = 2; i <= 11; i++)pinMode(i, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int x = Serial.read() - '0';
digitalWrite(x + 2, !digitalRead(x + 2));
}
}
Код для Делфи
PHP код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CPort;
type
TForm1 = class(TForm)
cmprt1: TComPort;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// отсылаем команду "0" на выход d2
cmprt1.WriteStr ('0');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//открываем comport
cmprt1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// отсылаем команду "1" на выход d3
cmprt1.WriteStr ('1');
end;
end.