ayuda! Encender un LED mientras se presiona un boton y al soltarlo se apaga

Hola c: les dejo mi código en C#:

using System.Linq;
using System.Windows.Forms;
using System.IO.Ports;
using encender_Led_arduino.Properties;

namespace encender_Led_arduino
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.PortName = "COM30";
            serialPort1.BaudRate = 9600;
            serialPort1.Open();


        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {

            if (serialPort1.IsOpen) serialPort1.Close();


        }

        private void ON_Click(object sender, EventArgs e)
        {
            serialPort1.Write("1");
            

        }

        private void OFF_Click(object sender, EventArgs e)
        {
            serialPort1.Write("0");
            
        }


    }
}

y del arduino:

void setup()  
{                
  pinMode(13, OUTPUT);
  Serial.begin(9600);  
}

void loop()                    
{
  if(Serial.available())
  {
    int c = Serial.read();
    if (c == '1')
    {    
      digitalWrite(13,HIGH);
    }
    else if (c == '0')
    {
      digitalWrite(13,LOW);
    }
  }
}

Esto hace que al darle clic a un botón en la interfaz de C# encienda el led y al darle clic a otro se apague. Alguien podría ayudarme para hacer que al darle clic a un único botón se encienda el led pero al soltarle se apague??

gracias:)

El ejemplo Button.ino del IDE te puede servir.

/*
Button

Turns on and off a light emitting diode(LED) connected to digital
pin 13, when pressing a pushbutton attached to pin 2.

The circuit:

  • LED attached from pin 13 to ground

  • pushbutton attached to pin 2 from +5V

  • 10K resistor attached to pin 2 from ground

  • Note: on most Arduinos there is already an LED on the board
    attached to pin 13.

created 2005
by DojoDave http://www.0j0.org
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/Button
*/

// constants won’t change. They’re used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

Hola,

Lo que necesitas es manejar en C# el evento de soltar la tecla, que supongo es KeyUP o Release o algo asi.

Saludos.