Показать сообщение отдельно
Старый 31.03.2018, 17:00   #235
НСО154
Старший Пользователь
 
Регистрация: 01.01.2014
Возраст: 38
Город: Новосибирск
Регион: 54
Машина: РРС, Форд
Сообщений: 954
НСО154 is on a distinguished road
По умолчанию

Если кто хочет побаловаться управлением нагрузкой через com))
Компонент порта для Делфи во вложении, а так же пример моей оболочки (правда не доделана), компонент для работ с PNG файлами в Делфи.

Код для Ардуино, задействовано 12 цифровых (кратковременное нажатие)

PHP код:
#define OUTPUT_DEFAULT HIGH
//#define OUTPUT_DEFAULT LOW
#define ON_TIME 300 // ms

void setup()
{
  for (
int i 2<= 13i++) {
    
pinMode(iOUTPUT);
    
digitalWrite(iOUTPUT_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(incomingByteOUTPUT_DEFAULT);
      
Serial.write(0x80 incomingByte);
    }
  }

Код для Делфи.
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsCPort;

type
  TForm1 
= class(TForm)
    
cmprt1TComPort;
    
Button1TButton;
    
Button2TButton;
    
procedure Button1Click(SenderTObject);
    
procedure FormCreate(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);

begin
// отсылаем команду "0" на выход d2
cmprt1.WriteStr (#0);


end;

procedure TForm1.FormCreate(SenderTObject);
begin
//открываем comport
 
cmprt1.Open;
end;
procedure TForm1.Button2Click(SenderTObject);
begin
// отсылаем команду "" на выход d3
cmprt1.WriteStr (#1);

end;

end
Кoд для Ардуино, задействовано 11 пинов (фиксированное нажатие)
PHP код:
void setup() {
  
Serial.begin(9600);
  for (
int i 2<= 11i++)pinMode(iOUTPUT);
}
void loop() {
  if (
Serial.available() > 0) {
    
int x Serial.read() - '0';
    
digitalWrite(2, !digitalRead(2));
  }

Код для Делфи
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsCPort;

type
  TForm1 
= class(TForm)
    
cmprt1TComPort;
    
Button1TButton;
    
Button2TButton;
    
procedure Button1Click(SenderTObject);
    
procedure FormCreate(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);

begin
// отсылаем команду "0" на выход d2
cmprt1.WriteStr ('0');


end;

procedure TForm1.FormCreate(SenderTObject);
begin
//открываем comport
 
cmprt1.Open;
end;
procedure TForm1.Button2Click(SenderTObject);
begin
// отсылаем команду "1" на выход d3
cmprt1.WriteStr ('1');

end;

end
Вложения
Тип файла: zip comport411f (1).zip (556.9 Кб, 346 просмотров)
Тип файла: zip новая оболочка мазда.zip (491.5 Кб, 349 просмотров)
Тип файла: zip pngimage.zip (367.1 Кб, 344 просмотров)
__________________
Тесла по-русски
НСО154 вне форума   Ответить с цитированием