C# Programm:
Im C# Programm "Frontend 3" gibt es 18 CheckBoxes und entsprechend 18 CheckedChanged-Methoden.
Wird nun beispielsweise in der CheckBox2 ein Haken gesetzt oder weggenommen, wird in die Methode
"checkBox2_CheckedChanged"
gesprungen und dort getestet, ob ein Haken vorhanden ist oder nicht.
Ist ein Haken vorhanden, wird die Senden-Methode:
senden( int pinNummer, int pinPegel ) mit den Wer-
ten
2 (PinNummer) und 1 (pinPegel) aufgerufen. Ansonsten: mit den Werten 2 (PinNummer) und 0 (pinPegel).
In der Senden-Methode werden nun 2 Bytes gesendet:
1. Die Nummer des LED-Pins
2. Pegel: Ob die LED leuchten soll oder nicht: 1 oder 0.
private void checkBox2_CheckedChanged(object sender, EventArgs e) {
if (checkBox2.Checked) { senden(2, 1); } else { senden(2, 0); }
}
private void checkBox3_CheckedChanged(object sender, EventArgs e) {
if (checkBox3.Checked) { senden(3, 1); } else { senden(3, 0); }
}
.
. usw.
.
private void checkBox19_CheckedChanged(object sender, EventArgs e) {
if (checkBox19.Checked) { senden(19, 1); } else { senden(19, 0); }
}
private void senden( int pinNummer, int pinPegel ) {
serialPort1.Write(new byte[] { (byte)pinNummer, (byte)pinPegel }, 0, 2);
// die hintere 2 meint: 2 Bytes
}
Hier kannst Du das fertige Programm "Frontend 3"
runterladen.
Ich habe das C# Programm mit der 2015'er Version vom Microsoft Visual Studio Community geschrieben.
Hier mein Projektordner:
Arduino_Frontend_3.zip
Arduino-Quellcode:
/*
LEDs an den Pins 2 bis 19 ein- und ausschalten
aufgrund eines C# Programmes auf dem Computer
www.arduinospielwiese.de
*/
int i, pinNummer, pinPegel;
void setup() {
Serial.begin(9600);
for (i = 0; i < 20; i++) {
pinMode(i, 1);
digitalWrite(i, 0); // alle LED aus
}
}
void loop() {
if ( Serial.available() > 1 ) {
pinNummer = Serial.read(); // 2 ... 19
pinPegel = Serial.read(); // 0 oder 1
digitalWrite(pinNummer, pinPegel);
Serial.flush();
delay(10);
}
}
Abschlussbemerkungen
Die Arduino-Pins 0 und 1 werden absichtlich nicht genutzt, da diese intern an der seriellen Datenübertragung beteiligt sind.
Würde man anstelle einfacher LEDs vielleicht Transistoren, Relais oder andere stromverstärkende Bauelemente nehmen,
könnte man auch große Lampen, Motoren oder was auch immer auf diese Weise ein- und ausschalten.