Я только что купил новый Pi и вместе с ним обнаружил большую аркадную кнопку ЗДЕСЬ и несколько быстрых соединителей, найденных ЗДЕСЬ .Я посмотрел так много разных руководств о том, как делать то, что я хочу, на разных языках, но не смог найти ни одного, который бы прямо делал это в C #.
Отказ от ответственности: Я впервые подключаю что-либо к своей плате Pi. Я только когда-либо писал программное обеспечение для пользовательского интерфейса.
Вот мой код:
GpioPin button1;
public MainPage()
{
this.InitializeComponent();
SetupGpioPin();
}
private void SetupGpioPin()
{
// Get the default GPIO controller on the system
GpioController gpio = GpioController.GetDefault();
if (gpio == null)
return; // GPIO not available on this system
button1 = gpio.OpenPin(21);
// Set the IO direction as Input
button1.SetDriveMode(GpioPinDriveMode.Input);
var curState = button1.Read();
button1.ValueChanged += Pin_ValueChanged;
}
private void Pin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
{
Debug.WriteLine($"Pin Value: {button1.Read()}");
Debug.WriteLine("Button Event has happened");
}
У меня естьмоя кнопка настроена как таковая;белый разъем подключен к верхнему разъему на кнопочном переключателе, синий разъем подключен к заземлению?или сторона переключателя, которая вся черная.Затем совместите эти разъемы так, чтобы белые кабели подключались к контакту 40 на плате, а синий кабель - к контакту 39 на плате.
Я запускаю свой код, и событие ValueChanged запускается непрерывно, причем значение пина изменяется от High до Low.Нажатие на кнопку ничего не делает.
Желаемый результат заключается в том, что кнопка находится в низком положении, и при нажатии запускается событие «Значение изменено», и я могу сделать что-то, зная, что кнопка была нажата, а текущее значение - Высокое.