■ 적색 LED 깜박이기

----------------------------------------------------------------------------------------------------

부품 내역

 

구분

모델

수량

비고

LED

BL-B5134(333HD)

1

 

RESISTANCE

CFR 1/4W 5% 330ohm

1

 

 

회로 구성도

 


TestApplication.zip


MainPage.xaml

 

 

<Page

    x:Class="TestApplication.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:TestApplication"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <StackPanel

            HorizontalAlignment="Center"

            VerticalAlignment="Center">

            <Ellipse x:Name="ellipse"

                Width="96"

                Height="96"

                Fill="Red" />

            <TextBlock x:Name="textBlock"

                HorizontalAlignment="Center"

                Text="ON" />

        </StackPanel>

    </Grid>

</Page>

 

 

MainPage.xaml.cs

 

 

using System.Threading.Tasks;

using Windows.Devices.Gpio;

using Windows.UI.Xaml;

using Windows.UI.Xaml.Controls;

using Windows.UI.Xaml.Media;

 

namespace TestApplication

{

    /// <summary>

    /// 메인 페이지

    /// </summary>

    public sealed partial class MainPage : Page

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Field

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region Field

 

        /// <summary>

        /// GPIO 컨트롤러

        /// </summary>

        private GpioController gpioController = null;

 

        /// <summary>

        /// GPIO 핀

        /// </summary>

        private GpioPin gpioPin = null;

 

        /// <summary>

        /// LED 핀 번호

        /// </summary>

        private const int LED_PIN_NUMBER = 5;

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - MainPage()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainPage()

        {

            InitializeComponent();

 

            Loaded += Page_Loaded;

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region 페이지 로드시 처리하기 - Page_Loaded(sender, e)

 

        /// <summary>

        /// 페이지 로드시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void Page_Loaded(object sender, RoutedEventArgs e)

        {

            InitializeGPIO();

 

            Loop();

        }

 

        #endregion

 

        #region GPIO 초기화 하기 - InitializeGPIO()

 

        /// <summary>

        /// GPIO 초기화 하기

        /// </summary>

        private void InitializeGPIO()

        {

            this.gpioController = GpioController.GetDefault();

 

            if(this.gpioController == null)

            {

                this.gpioPin = null;

 

                return;

            }

 

            this.gpioPin = gpioController.OpenPin(LED_PIN_NUMBER);

 

            this.gpioPin.Write(GpioPinValue.High);

 

            this.gpioPin.SetDriveMode(GpioPinDriveMode.Output);

        }

 

        #endregion

        #region 루프 돌기 - Loop()

 

        /// <summary>

        /// 루프 돌기

        /// </summary>

        private async void Loop()

        {

            while(true)

            {

                this.gpioPin.Write(GpioPinValue.Low);

                

                this.ellipse.Fill   = new SolidColorBrush(Windows.UI.Colors.DarkGray);

                this.textBlock.Text = "OFF";

 

                await Task.Delay(1000);

 

                this.gpioPin.Write(GpioPinValue.High);

 

                this.ellipse.Fill   = new SolidColorBrush(Windows.UI.Colors.Red);

                this.textBlock.Text = "ON";

 

                await Task.Delay(1000);

            }

        }

 

        #endregion

    }

}

 

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요