ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [3ํšŒ์ฐจ-4] ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด GPIO ์‹ค์Šต - 1
    ๋กœ๋ด‡๊ต์œก/3ํšŒ์ฐจ_๋ผ์ฆˆ๋ฒ ๋ฆฌGPIO 2020. 9. 7. 23:40

    1. Thonny Python IDE

      ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” Windows ํ™˜๊ฒฝ์—์„œ Python ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๊ณ  IDLE์„ ์‹คํ–‰ํ•˜์—ฌ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์— ๋ผ์ฆˆ๋น„์•ˆ ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Python ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. Windows์—์„œ IDLE ์—ญํ• ์„ ํ•˜๋Š” Thonny Python IDE๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

     ๊ฐ€. ๋ฐ”ํƒ•ํ™”๋ฉด์— ์•„์ด์ฝ˜ ๋งŒ๋“ค๊ธฐ

     

      ์•„๋ž˜ ์‚ฌ์ง„์„ ๋”ฐ๋ผ ํ•˜์—ฌ ๋ฐ”ํƒ•ํ™”๋ฉด์— Thonny Python IDE ์•„์ด์ฝ˜์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    [๋ผ์ฆˆ๋น„์•ˆ ์•„์ด์ฝ˜] - [๊ฐœ๋ฐœ] - [Thonny Python IDE]

     

    [Thonny Python IDE] ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ - Add to desktop

      ๋ฐ”ํƒ•ํ™”๋ฉด์— ๋งŒ๋“ค์–ด์ง„ ์•„์ด์ฝ˜์„ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค.

     

     

     ๋‚˜. Thonny Python IDE ์‹คํ–‰ํ™”๋ฉด

     

      ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์€ 3 ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋˜ IDLE๊ณผ ๋‹ฌ๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋”ฉํ•˜๋Š” ๋ถ€๋ถ„๊ณผ Shell ๋ถ€๋ถ„์ด ํ•œ ํ™”๋ฉด์— ์œ„์น˜ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๊ฒฐ๊ณผ๋ฅผ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Thonny Python IDE


    ์•„์ด์ฝ˜

      ๊ฐ€์šด๋ฐ Debug, Over, Info, Out์€ ํ˜„์žฌ ์ˆ˜์ค€์—์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค๋ฅธ ์•„์ด์ฝ˜๋“ค์€ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ฐฝ์— ํ”„๋กœ๊ทธ๋žจ์„ ์ž…๋ ฅํ•˜๊ณ  [Run] ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์ž…๋ ฅ ์ฐฝ

      IDLE์—์„œ New File๋กœ ๋ณ„๋„ ์ž…๋ ฅ ์ฐฝ์„ ๋ถˆ๋Ÿฌ์™”๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Thonny Python IDE ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ž…๋ ฅ ์ฐฝ์— Python ํ”„๋กœ๊ทธ๋žจ์„ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

     

    Shell

      Shell์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ ํ™•์ธ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์–ด ์ž‘์„ฑ, ์˜ค๋ฅ˜ ์•ˆ๋‚ด ๋“ฑ IDLE์—์„œ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.

     

     

     ๋‹ค. ์‹ค์Šต ํด๋” ๋งŒ๋“ค๊ธฐ

       

       Thonny Python IDE๋„ IDLE๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅํ•œ ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ๋‹ค์–‘ํ•œ ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ์ €์žฅํ•  ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    New Folder

      ๋ฐ”ํƒ•ํ™”๋ฉด์—์„œ ํด๋” ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ /home/pi ํด๋” ์•ˆ์— ์ƒˆ๋กœ์šด ํด๋”๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํด๋”๋ฅผ ๋งŒ๋“ค ํด๋” ์•ˆ์—์„œ [๋งˆ์šฐ์Šค ์šฐํด๋ฆญ] - [New Folder]๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

     

    ์ƒˆ ํด๋” ๋งŒ๋“œ๋Š”์ค‘

      ์—ฌ๋Ÿฌ๋ถ„์ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ํด๋” ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์—ฌ [ํ™•์ธ]์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

     

    ๋งŒ๋“ค์–ด์ง„ ํด๋” ํ™•์ธ

     

      /home/pi ํด๋” ์•ˆ์— [robot] ํด๋”๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ Thonny Python IDE์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๊ฒฝ์šฐ์—๋Š” ์œ„ [robot] ํด๋” ์•ˆ์— ์ €์žฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

     

     

     ๋ผ. ํŒŒ์ผ ์ €์žฅํ•˜๊ธฐ

     

       Thonny Python IDE์—์„œ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ํด๋”์— ์ €์žฅํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ํ”„๋กœ๊ทธ๋žจ ์ €์žฅ

     

    ํŒŒ์ผ์„ ์ €์žฅํ•  ํด๋” ์„ ํƒ

     

    ์ €์žฅํ•  ํŒŒ์ผ ์ด๋ฆ„ ์ž‘์„ฑ

     

    ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

     

     

    2. ์ „์žํšŒ๋กœ

     ๊ฐ€. Vcc, Gnd

     

      ์œ„ ๊ทธ๋ฆผ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŽ์ด ๋ณด๋Š” AA ๊ฑด์ „์ง€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” RC์นด๋‚˜ ์žฅ๋‚œ๊ฐ, ๋ฆฌ๋ชจ์ปจ ๋“ฑ์—๋Š” ํฌ๊ธฐ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๊ฑด์ „์ง€๋ฅผ ๋„ฃ์–ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฑด์ „์ง€์—๋Š” +๊ทน๊ณผ -๊ทน์ด ์žˆ์–ด ๊ทธ ๋ฐฉํ–ฅ์— ๋งž์ถ”์–ด์„œ ๋„ฃ์–ด์ฃผ์–ด์•ผ ๊ธฐ๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

      Vcc  +๊ทน์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์—์„œ๋Š” 3.3v๋‚˜ 5v๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

      Gnd  -๊ทน์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 0v๋ฅผ ๋œปํ•˜๋ฉฐ ๊ธฐ๊ธฐ๊ฐ€ ๋™์ž‘ํ•˜๋ ค๋ฉด Vcc์™€ Gnd๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

     

     ๋‚˜. Pin Numbering

      

      GPIO๋Š” ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์—์„œ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ์žฅ์น˜์ธ ์˜จ๋„์„ผ์„œ, ์ดˆ์ŒํŒŒ ์„ผ์„œ์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ LED. ์„œ๋ณด๋ชจํ„ฐ ๊ฐ™์€ ์ถœ๋ ฅ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์ถœ์ฒ˜ : https://www.raspberrypi.org/documentation/usage/gpio

     

    ์ถœ์ฒ˜: https://gpiozero.readthedocs.io

      ์ „์••  2๊ฐœ์˜ 5Vํ•€๊ณผ 2๊ฐœ์˜ 3.3Vํ•€, 8๊ฐœ์˜ 0V GNDํ•€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

             ๋‚˜๋จธ์ง€ ํ•€์€ ๋ชจ๋‘ 3.3V ์ž…์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•œ GPIO ํ•€์ž…๋‹ˆ๋‹ค.

     

      ์ถœ๋ ฅ  ์ถœ๋ ฅ ํ•€์œผ๋กœ ์ง€์ •๋œ GPIO๋Š” ๋†’์Œ(HIGH, 3.3V) ๋˜๋Š” ๋‚ฎ์Œ(LOW, 0V)์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

      ์ž…๋ ฅ  ์ž…๋ ฅ ํ•€์œผ๋กœ ์ง€์ •๋œ GPIO๋Š” ๋†’์Œ(HIGH, 3.3V) ๋˜๋Š” ๋‚ฎ์Œ(LOW, 0V)์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

              (GPIO2 ๋ฐ GPIO3์—๋Š” ๊ณ ์ • ํ’€์—… ์ €ํ•ญ์ด ์žˆ์Œ)

     

      PWM  ๋ชจ๋“  ํ•€์—์„œ ์†Œํ”„ํŠธ์›จ์–ด PWM ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

               (ํ•˜๋“œ์›จ์–ด PWM์€ GPIO12, GPIO13, GPIO18, GPIO19)

     

     

    3. LED ์‹ค์Šต  

     ๊ฐ€. LED

     

    LED

      LED๋Š” ์ „๊ธฐ ์—๋„ˆ์ง€๋ฅผ ๋น› ์—๋„ˆ์ง€๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐ˜๋„์ฒด์ž…๋‹ˆ๋‹ค. LED๋Š” ๋ฐฑ์—ด์ „๊ตฌ๋‚˜ ํ˜•๊ด‘๋“ฑ์— ๋น„ํ•ด ์†Œ๋น„์ „๋ ฅ์ด ์ ๊ณ , ์ˆ˜๋ช…์ด ๊ธด ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

     

    LED +-๊ทน

      ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  LED๋Š” ๋‹จ์ƒ‰ LED๋กœ ๋‹ค๋ฆฌ๊ฐ€ ๊ธด ์ชฝ์ด +๊ทน, ์งง์€ ์ชฝ์ด -๊ทน์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. LED์— ๊ณผ๋„ํ•œ ์ „๋ฅ˜๊ฐ€ ํ๋ฅด๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. 1.8~2V์˜ ์ „์••์—์„œ ์ž‘๋™ํ•˜๋ฉฐ, ๊ทธ ์ด์ƒ์˜ ์ „์›์„ ๊ฐ€ํ•  ๊ฒฝ์šฐ ๊ณ ์žฅ์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      ๋”ฐ๋ผ์„œ ์ง๋ ฌ๋กœ ์ €ํ•ญ์„ ์—ฐ๊ฒฐํ•ด์„œ ํฐ ์ „๋ฅ˜๊ฐ€ ํ๋ฅด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ €ํ•ญ์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์œผ๋ฉด LED์— ํฐ ์ „๋ฅ˜๊ฐ€ ํ˜๋Ÿฌ์„œ ํƒ€๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

      LED์—๋Š” ๋‹ค๋ฆฌ๊ฐ€ ๋‘ ๊ฐœ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ LED๋ฅผ ์ผœ๋ ค๋ฉด ๊ธด ์ชฝ ๋‹ค๋ฆฌ์— Vcc๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ์งง์€ ์ชฝ ๋‹ค๋ฆฌ์— Gnd๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ˜•ํƒœ๋กœ ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์˜ 5V๋‚˜ 3.3V์— ์ €ํ•ญ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์ง์ ‘ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด LED๋Š” ์ „๊ธฐ๊ฐ€ ๊ณต๊ธ‰๋˜๋Š” ํ•œ ๊ณ„์† LED๊ฐ€ ์ผœ์ ธ ์žˆ์–ด LED๋ฅผ ์ œ์–ด(๋ถˆ์„ ์ผœ๊ฑฐ๋‚˜ ๋„๋Š” ๊ฒƒ)ํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

     

      ์ด๋•Œ GPIO๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด LED๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LED์˜ ๊ธด ๋‹ค๋ฆฌ๋ฅผ GPIO์— ์—ฐ๊ฒฐํ•˜์—ฌ ์—ฐ๊ฒฐ๋œ GPIO์— ์‹ ํ˜ธ(3.3V)๋ฅผ ๋ณด๋‚ด๋ฉด ๋ถˆ์„ ์ผœ๊ฑฐ๋‚˜ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

     

     

     ๋‚˜. Vcc, Gnd ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ, LED๊ทน ์‹คํ—˜

     

        ์ฝ”๋ธ”๋Ÿฌ๊ฐ€ ์—ฐ๊ฒฐ๋œ ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ์— Vcc์™€ Gnd ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ „์„ ์„ ์ด์šฉํ•˜์—ฌ ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์™ผ์ชฝ์—๋Š” 3.3V์˜ ์ „์›๊ณผ Gnd๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ฃผ๊ณ , ์˜ค๋ฅธ์ชฝ์—๋Š” 5V์˜ ์ „์›๊ณผ Gnd๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ค๋‹ˆ๋‹ค.

     

    3.3V์™€ GND ์—ฐ๊ฒฐ ํšŒ๋กœ
    5V์™€ GND ์—ฐ๊ฒฐ ํšŒ๋กœ


    3.3V์™€ GND, 5V์™€ GND ์—ฐ๊ฒฐ ํšŒ๋กœ
    3.3V์™€ GND, 5V์™€ GND ์—ฐ๊ฒฐ ํšŒ๋กœ


      ์ด์ œ LED๋ฅผ ํ•˜๋‚˜ ์ค€๋น„ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค. ์•„๋ž˜ LED๋ฅผ ์ž์„ธํžˆ ๋ณด๋ฉด ํ•œ์ชฝ ๋‹ค๋ฆฌ๊ฐ€ ๋” ๊ธด ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์‚ดํŽด๋ณธ ๋‚ด์šฉ์—์„œ ๊ธด ์ชฝ ๋‹ค๋ฆฌ๊ฐ€ +๊ทน์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‚˜์š”? ์ด์ œ LED๋ฅผ ํšŒ๋กœ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ์ดˆ๋ก LED

     

      LED๋ฅผ ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ์— ์—ฐ๊ฒฐ๋œ 3V์™€ GND์— ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฐ๊ฒฐํ•˜์—ฌ LED๊ฐ€ ์ผœ์ง€๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋ด…๋‹ˆ๋‹ค. ์ €ํ•ญ์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•„ LED๊ฐ€ ๊ณ ์žฅ์ด ๋‚  ์ˆ˜๋„ ์žˆ์ง€๋งŒ 3V์— ์—ฐ๊ฒฐํ•˜์˜€์œผ๋ฏ€๋กœ ๊ณ ์žฅ๋ฅ ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์˜ค๋ฅธ์ชฝ 5V์—๋Š” ์ €ํ•ญ ์—†์ด ์—ฐ๊ฒฐํ•˜์ง€ ๋งˆ์„ธ์š”.

     

    LED ๋ถˆ ์ผœ๊ธฐ


      LED๊ฐ€ ์ „์›์— ๋ฐ”๋ฅด๊ฒŒ ์—ฐ๊ฒฐ๋˜์—ˆ์œผ๋ฉด ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด LED๊ฐ€ ์ผœ์ง‘๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” LED๋ฅผ ๋ฐ˜๋Œ€๋กœ ๊ธด ์ชฝ ๋‹ค๋ฆฌ๋ฅผ Gnd์— ๊ฝ‚๊ณ  ์งง์€ ์ชฝ ๋‹ค๋ฆฌ๋ฅผ 3.3V์— ๊ฝ‚์•„ ๋ถˆ์ด ์ผœ์ง€๋Š”์ง€ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค.

     

    ๊ทน์„ ๋ฐ˜๋Œ€๋กœ ๊ฝ‚๊ธฐ

      ์œ„ ๊ทธ๋ฆผ๊ฐ™์ด LED๊ฐ€ ์ผœ์ง€์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. LED๊ฐ€ ์ผœ์ง„๋‹ค๋ฉด ํšŒ๋กœ์˜ Vcc์™€ Gnd๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    GPIO์™€ ์—ฐ๊ฒฐ

      LED์˜ ๊ธด ์ชฝ ๋‹ค๋ฆฌ๋ฅผ ์ด๋ฒˆ์—๋Š” GPIO 5๋ฒˆ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š”์ง€ ๊ด€์ฐฐํ•˜์—ฌ ๋ด…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ GPIO 5๋ฒˆ์— ๋ถˆ์„ ์ผœ๋„๋ก ํ•˜์ง€๋„ ์•Š์•˜๋Š”๋ฐ ์•ฝํ•˜๊ฒŒ ๋ถˆ์ด ์ผœ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด GPIO์— ์•ฝํ•œ ์ „๋ฅ˜๊ฐ€ ํ๋ฅด๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     ๋‹ค. ํšŒ๋กœ ๊ตฌ์„ฑ

      

      LED๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

      ์ค€๋น„๋ฌผ  LED, ์ „์„ , ์ €ํ•ญ(์—ฌ๊ธฐ์„œ๋Š” 330โ„ฆ)

     

     

      LED์—๋Š” ๋‹ค๋ฆฌ๊ฐ€ ๋‘ ๊ฐœ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ LED๋ฅผ ์ผœ๋ ค๋ฉด ๊ธด ์ชฝ ๋‹ค๋ฆฌ์— Vcc๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ์งง์€ ์ชฝ ๋‹ค๋ฆฌ์— Gnd๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ˜•ํƒœ๋กœ ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” LED๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์ผœ๊ณ  ๋Œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธด ์ชฝ ๋‹ค๋ฆฌ๋ฅผ GPIO 13๋ฒˆ์— ์—ฐ๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ์ค€๋น„๋ฌผ


    LED ํšŒ๋กœ ๊ตฌ์„ฑ#1 GPIO 13๋ฒˆ์— ์—ฐ๊ฒฐ
    LED ํšŒ๋กœ ๊ตฌ์„ฑ#2 ์ „์ฒด ํšŒ๋กœ ๊ตฌ์„ฑ

      ์ „์„ ์„ GPIO 13๋ฒˆ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋‹ค๋ฅธ ์ชฝ ์„ ์„ LED ๊ธด ์ชฝ ๋‹ค๋ฆฌ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ €ํ•ญ์€ Gnd์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ•œ์ชฝ์„ LED์˜ ์งง์€ ๋‹ค๋ฆฌ์— ์—ฐ๊ฒฐ๋˜๋„๋ก ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

     

    LED ํšŒ๋กœ ๊ตฌ์„ฑ#3 ํšŒ๋กœ ์™„์„ฑ
    LED ํšŒ๋กœ ๊ตฌ์„ฑ#4 ํšŒ๋กœ ์™„์„ฑ

      ์œ„ ์‚ฌ์ง„์€ ์™„์„ฑ๋œ ํšŒ๋กœ์˜ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„์˜ ํšŒ๋กœ๋ฅผ ์™„์„ฑํ•ด๋ด…์‹œ๋‹ค.

     

     

     ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ

     

      GPIO.setmode(GPIO.BOARD) : ํ—ค๋” ํ•€์˜ ๋ฒˆํ˜ธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด
      GPIO.setmode(GPIO.BCM) : ์•ฝ์†๋œ GPIO ๋ฒˆํ˜ธ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ

     

      While True:                   True๋Š” ์ฐธ์ด๋ผ๋Š” ๋ง์ด๋ฏ€๋กœ ๋ช…๋ น๋ฌธ1์„ ๋์—†์ด ๋ฐ˜๋ณตํ•จ.
          ๋ช…๋ น๋ฌธ1

     

    ์˜ˆ์ œ ์†Œ์Šค(1-led1.py) ์˜ˆ์ œ ์†Œ์Šค(1-led(1).py)

    import RPi.GPIO as GPIO
    import time

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(13,GPIO.OUT)

    while True:
         GPIO.output(13,True)
         time.sleep(1)
         GPIO.output(13,False)
         time.sleep(1)

    GPIO.cleanup()

    from gpiozero import LED
    from time import sleep

    led = LED(13)

    while True:
        led.on()
        sleep(1)
        led.off()
        sleep(1)





    -

    ์˜ˆ์ œ ์†Œ์Šค(1-led2.py) ์˜ˆ์ œ ์†Œ์Šค(1-led(2).py)

    import RPi.GPIO as GPIO
    import time

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(13,GPIO.OUT)

    for i in range(3):
        GPIO.output(13,True)
        time.sleep(1)
        GPIO.output(13,False)
        time.sleep(1)

    GPIO.cleanup()

    from gpiozero import LED
    from time import sleep

    led = LED(13)

    for i in range(3):
        led.on()
        sleep(1)
        led.off()
        sleep(1)





    -

    ์˜ˆ์ œ ์†Œ์Šค(1-led3.py) ์˜ˆ์ œ ์†Œ์Šค(1-led(3).py)

    import RPi.GPIO as GPIO
    import time

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(13,GPIO.OUT)

    for i in range(0,50):
        GPIO.output(13,True)
        time.sleep(i/20)
        GPIO.output(13,False)
        time.sleep(i/20)

    GPIO.cleanup()

    from gpiozero import LED
    from time import sleep

    led = LED(13)

    for i in range(0,50):
        led.on()
        sleep(i/20)
        led.off()
        sleep(i/20)





    -

    ์˜ˆ์ œ ์†Œ์Šค(2-led_blink.py)

    from gpiozero import LED
    from signal import pause

    led = LED(13)

    led.blink()

    pause()

    -

    ์˜ˆ์ œ ์†Œ์Šค(3-led_PWM_pulse.py) ์˜ˆ์ œ ์†Œ์Šค(3-led_PWM_value.py)

    from gpiozero import PWMLED
    from signal import pause

    led = PWMLED(13)

    led.pulse()

    pause()





    from gpiozero import PWMLED
    from time import sleep

    led = PWMLED(13)

    while True:
        led.value = 0
        sleep(1)
        led.value = 0.5
        sleep(1)
        led.value = 1
        sleep(1)

    -

    ์˜ˆ์ œ ์†Œ์Šค(4-led1.py) ์˜ˆ์ œ ์†Œ์Šค(4-led(1).py)

    import RPi.GPIO as GPIO
    import time

    GPIO.setwarnings(False)

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(13,GPIO.OUT)

    p=GPIO.PWM(13,50)
    p.start(0)

    while True:
        for i in range(0,101,5):
            p.ChangeDutyCycle(i)
            time.sleep(0.1)
        for i in range(100,-1,-5):
            p.ChangeDutyCycle(i)
            time.sleep(0.1)

    p.stop()
    GPIO.cleanup()

    from gpiozero import PWMLED
    from time import sleep

    led = PWMLED(13)

    while True:
        i=0
        while i<=1:

            led.value = i
            sleep(0.1)
            i = i+0.05
        i=1
        while i>=0:

            led.value = i
            sleep(0.1)
            i = i-0.05





     

     

    ์‹ค์Šต) ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ LED๋ฅผ ์ผœ๊ณ  ๋„๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.