2017-05-20 57 views
-1


我有這樣的傳感器:https://easyelectronyx.com/wp-content/uploads/2017/03/flame.jpg?i=1

請任何人都可以幫助我嗎?我需要從C#中查找代碼來讀取它。我有Raspberry Pi 2 Model B,Windows 10 IoT Core和C#編程。我無法在Internet上找到文檔。是否需要連線模擬輸出?

由於如何在C#中讀取火焰傳感器?

+0

什麼是你的傳感器裝置?從附圖中我無法獲得任何有用的信息。 –

+0

Raspberry Pi 2 B型 –

+0

我要求**傳感器**不是Raspberry Pi。 –

回答

1

此框架傳感器裝置可以基於其datasheet提供數字或模擬輸出。

如果您不喜歡使用模擬輸出,您可以從數字引腳獲得輸出DO

首先,連接Frame傳感器和Raspberry Pi。連接VCC,GND和DO如下圖所示。對於數字引腳,我在這裏選擇GPIO27,可以選擇其他引腳。

enter image description here

其次,編寫代碼。創建UWP應用程序(Start here)。

MainPage.xaml中

<StackPanel VerticalAlignment="Center" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <TextBlock Name="SensorOuputValue" /> 
</StackPanel> 

MainPage.xaml.cs中

public sealed partial class MainPage : Page 
{ 
    private const int SENSOR_PIN = 27; 
    private GpioPin pin; 
    private GpioPinValue pinValue; 
    private DispatcherTimer timer; 

    public MainPage() 
    { 
     InitializeComponent(); 

     timer = new DispatcherTimer(); 
     timer.Interval = TimeSpan.FromMilliseconds(1000); 
     timer.Tick += ReadSensor; 
     InitGPIO(); 
     if (pin != null) 
     { 
      timer.Start(); 
     } 
    } 

    private void InitGPIO() 
    { 
     var gpio = GpioController.GetDefault(); 

     // Show an error if there is no GPIO controller 
     if (gpio == null) 
     { 
      pin = null; 
      System.Diagnostics.Debug.WriteLine("There is no GPIO controller on this device."); 
      return; 
     } 

     pin = gpio.OpenPin(SENSOR_PIN); 
     pin.SetDriveMode(GpioPinDriveMode.Input); 

     System.Diagnostics.Debug.WriteLine("GPIO pin initialized correctly."); 

    } 

    private void ReadSensor(object sender, object e) 
    { 
     SensorOuputValue.Text = pin.Read().ToString(); 
    } 

} 
+0

答案能解決您的問題嗎? –