Hallo ich bin gerade am Experimentieren mit einem Arduino UNO R3. Für Delphi habe ich die Komponenten Comport 4.11 installiert. Das Senden der Daten von der Anwendung klappt ganz gut(Mit dem Programm schalte ich eine LED auf dem Arduino aus und an). Nun will ich wenn die Verbindung hergestellt ist nachfragen ob die LED schon brennt. UND der Mikrokontroller soll mit 1 oder 0 antworten. Wie kann ich in Delphi die Antwort jetzt empfangen?
Hier mein bisheriger Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ComPort1.Connected then
begin
Button1.Caption := 'Connect';
ComPort1.Close ;
end
else
try
ComPort1.Open;
Button1.Caption := 'Disconnect';
except
showmessage('Fehler');
end;
if comport1.Connected then comport1.WriteStr('LEDSTATUS') ;
LED := false;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
str : String;
begin
str := '1';
if comport1.Connected then
begin
comport1.WriteStr(str);
showmessage(str);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
str,str2 : String;
begin
str := '0';
if comport1.Connected then
begin
comport1.WriteStr(str);
showmessage(str);
end;
end;
Arduino Code :
Code:
char empfang;
int LED=0;
int LEDPIN=7;
void setup(){
Serial.begin(9600);
pinMode(LEDPIN, OUTPUT);
}
void loop(){
if(Serial.available())
{
empfang = Serial.read();
if(empfang=='LEDSTATUS'){
Serial.print(LED);
}
if( isDigit(empfang) )
{
LED = (empfang - '0');
digitalWrite(LEDPIN,LED);
}
}
}