18 LEDs ein- und ausschalten



Für dieses Experiment solltest Du das erste Experiment dieses Abschnittes erfolgreich durchgeführt haben.

Du wirst mit Hilfe eines Programmes "Frontend 3" LEDs an den Arduino-Pins 2 bis 19 ein- und ausschalten können.
Die Pins 14 bis 19 sind beschriftet mit A0, A1, A2, A3, A4 und A5 und werden sonst als Analogeingänge benutzt.




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.