verzenden van Delphi opdrachten naar de Arduino

Arduino specifieke Software
Berichten: 5
Geregistreerd: 30 Mrt 2021, 12:58

verzenden van Delphi opdrachten naar de Arduino

Berichtdoor Jan47 » 30 Mrt 2021, 13:20

Hallo allen,

Misschien is er iemand die mij kan helpen.

Het volgende stuk code zit in mijn arduino.

Code: Alles selecteren
const byte Led = 13;   // Declare the variable pin of the Led.

char caracter;
String comando;

void setup()
{
  pinMode(Led, OUTPUT);  // Initialize the LED pin as output:
  Serial.begin(9600);     // Port serial 9600 baud.

  delay(1000);
}

void loop()
{
 
  while (Serial.available() > 0)
  {
    caracter = Serial.read();
    comando.concat(caracter);
    delay(10);
  }

  if (comando.equals("13_aan") == true)
  {
    digitalWrite(Led, HIGH); // Turn on the Led 13.
    Serial.write("Aan - Led is Aan.");    // Send this message to the PC.
   
  }


  if (comando.equals("13_uit") == true)
  {
    digitalWrite(Led, LOW); // Turn off the Led 13.
    Serial.write("Uit - Led is Uit. ");  // Send this message to the PC.

  }

  // We cleaned the chain to receive the next command again.
  comando = "";
}



Nu wil ik zelf graag nog 4 leds aan kunnen sturen, maar weet niet hoe ik dit moet doen.
ik ben al bezig geweest met const byte led =13 , 12,11,10 maar dit geeft errors.

Wie zou hier eens naar kunnen kijken.

Groeten,
Jan.

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: verzenden van Delphi opdrachten naar de Arduino

Berichtdoor shooter » 30 Mrt 2021, 14:57

comando.equals kent c niet je kunt ook niet 13_uit gebruiken want dat moet een boolean zijn.
paul deelen
shooter@home.nl

Berichten: 5
Geregistreerd: 30 Mrt 2021, 12:58

Re: verzenden van Delphi opdrachten naar de Arduino

Berichtdoor Jan47 » 30 Mrt 2021, 18:04

Beste Shooter,

Dank voor je reactie,

De commando`s worden door delphi verstuurd, en dat zijn nu 13_aan en 13_uit,
zoals deze sketch is werkt dit prima, maar ik wil hier dus nog een aantal leds bijplaatsen.

volgens mij moet ik de leds declaren ,maar cons byte led= 13 gaat wel maar meerdere leds krijg ik niet gedeclareerd ,

alles geprobeerd cons byte led = 13,12,11,10
of cons byte led =[] 13,12,11,10
of cons byte led =[] (13,12,11,10)

1 led gaat wel maar meerdere dus niet

ik kan ook i.p.v. 13 , 11 of 12 nemen, werkt ook, mits de comando`s goed zijn ,dus 11_aan of 11_uit


Groeten,
Jan.

Berichten: 5
Geregistreerd: 30 Mrt 2021, 12:58

Re: verzenden van Delphi opdrachten naar de Arduino

Berichtdoor Jan47 » 31 Mrt 2021, 21:22

Ahaaa,

Gevonden.
Wil dit toch even delen,

// in de arduino
String inputString;
int val;

void setup() {
DDRB = B00111111; // Pins 8 to 13 are outputs (14 & 15 are for 16MHz crystal)
PORTB = 0; // All outputs OFF
Serial.begin(9600);
}

void loop() {
inputString = ""; // Clear inputString
while (Serial.available()) {
char digit = Serial.read(); // Read one byte from serial buffer
inputString += digit; // Add new character to the string inputString
delay(2); // Let the serial buffer catch its breath.

val = inputString.toInt(); // Convert inputString into a proper number
}

PORTB = val ; // Set PortB register bits.
}

In delphi

ComPort1: TComPort;
Button1: TButton;
Button2: TButton;
Led8: TShape;



procedure TForm1.Button1Click(Sender: TObject);
begin comport1.WriteStr('1');led8.brush.color:= clred; end;

procedure TForm1.Button2Click(Sender: TObject);
begin comport1.WriteStr('0'); led8.brush.color:= clgray; end;


Het is niet moeilijk....................................... Als je maar weet hoe !


Groeten,
Jan.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: RussellAlets en 15 gasten