๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์ž๋™์ฐจ ๋’ทํŽธ์— LCDํŒ์œผ๋กœ ์ƒํ™ฉ ์ „๋‹ฌํ•˜๊ธฐ 1] ์‚ฌ์šฉํ•˜๋Š” ๋ถ€ํ’ˆ (LCD, I2C ํ†ต์‹ , joystick, LED) ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/Arduino

[์ž๋™์ฐจ ๋’ทํŽธ์— LCDํŒ์œผ๋กœ ์ƒํ™ฉ ์ „๋‹ฌํ•˜๊ธฐ 1] ์‚ฌ์šฉํ•˜๋Š” ๋ถ€ํ’ˆ (LCD, I2C ํ†ต์‹ , joystick, LED)

์ง•์ง•์•ŒํŒŒ์นด 2023. 11. 10. 11:38
728x90
๋ฐ˜์‘ํ˜•

โญ LCD

1) LCD(Liquid Cristal Display)

  • ์•ก์ •(Liquid Crystal)์ด๋ผ๋Š” ์œ ์ฒด์ด๋ฉด์„œ ๊ณ ์ฒด์™€ ๊ฐ™์€ ๊ด‘ํ•™์  ์„ฑ์งˆ์„ ๊ฐ€์ง€๋Š” ๋ฌผ์งˆ
  • ๊ณ ์ฒด ํ‘œ๋ฉด์— ์ „๊ธฐ์  ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์–ด ์•ก์ •์ด ํŠน์ •๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ๋˜๋ฉด ๋น›์„ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ํˆฌ๊ณผํ•  ์ˆ˜ ์žˆ์Œ

< ์‚ฌ์ง„ ์ถœ์ฒ˜ :&nbsp;์‚ผ์„ฑ ๋””์Šคํ”Œ๋ ˆ์ด ๋ธ”๋กœ๊ทธ>

 

2) 16X2 LCD ๋ชจ๋“ˆ

  • 16๊ฐœ ๋ฌธ์ž๋ฅผ 2์—ด๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ
  • 8bit ๋ฐ์ดํ„ฐ๋ฒ„์Šค์™€ 8๊ฐœ์˜ ์ œ์–ด ์‹ ํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์„œ ์ด 16๊ฐœ์˜ ํ•€์ด ํ•„์š”ํ•จ (I2C ๋ชจ๋“ˆ์„ ์ด์šฉ์‹œ 2๊ฐœ ํ•€๋งŒ ํ•„์š”)

                                             16*2 LCD  / ์‚ฌ์ง„ ์ถœ์ฒ˜ :   Programming Electronics Academy                         16X2 LCD ์‹ ํ˜ธ ์ธํ„ฐํŽ˜์ด์Šค

 

3) ์›€์ง์ด๋Š” LCD ํŒ

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
 
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hellow, world!");
}
 
 
void loop()
{
  for (int position = 0; position < 16; position++) {
    lcd.scrollDisplayLeft();
    delay(150);
  }
  for (int position = 0; position < 35; position++) {
    lcd.scrollDisplayLeft();
    delay(150);
  }
}

 

โญ I2C

1) I2C (Inter Integrated Circuit)

  • ์ฃผ๋ณ€์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•„๋ฆฝ์Šค์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์ง๋ ฌ๋ฒ„์Šค ํ†ต์‹ ๋ฐฉ์‹์ด๋ฉฐ, SCL,SDA ๋‘ ๊ฐœ์˜ ์‹ ํ˜ธ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅ
  • ๋งˆ์Šคํ„ฐ(์•„๋‘์ด๋…ธ) - ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ„ 1:N ๋ฐฉ์‹ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•จ(Address๋กœ ๊ตฌ๋ถ„)
  • SPI๋‚˜ Serial ํ†ต์‹ ์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋Š๋ฆฐํŽธ์ž„
  • I2C๋ฒ„์Šค๋Š” ๋ฐ˜๋“œ์‹œ Pull-up์œผ๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ์–ด์•ผ ํ•จ

 

2) I2C์˜ ํ†ต์‹ ๊ตฌ์กฐ

  • I2C ๋ฒ„์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Pull-up๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ SDA๋งŒ Low๋กœ ๋˜๋ฉด Start๊ฐ€ ๋˜๊ณ , High๊ฐ€ ๋˜๋ฉด Stop์ด ๋จ
  • Start ์ดํ›„ ํด๋Ÿญ์ด High์ผ๋•Œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ๊ฒฐ์ •๋˜์–ด ์ „์†ก๋จ
  • ๋ฐ์ดํ„ฐ๋Š” 7bit, ์ฆ‰, 128๊ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ  ๋‚˜๋จธ์ง€ 1bit๋Š” ๋‹ค๋ฅธ ์šฉ๋„(R/W๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ์— Ack ๋ฐ›์Œ
  • R/W๋Š” ๋งˆ์Šคํ„ฐ์—์„œ ๊ฒฐ์ •
  • Ack๋Š” ์Šฌ๋ ˆ์ด๋ธŒ ๋””๋ฐ”์ด์Šค์—์„œ ๋ณด๋ƒ„(์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์ˆ˜์‹ ํ–ˆ์œผ๋ฉด Low)

  • ๋งˆ์Šคํ„ฐ์—์„œ ์“ฐ๊ธฐ : Slave Address(W) -> Register Address -> Slave Address(W) -> Data(๋งˆ์Šคํ„ฐ ์”€)
  • ๋งˆ์Šคํ„ฐ์—์„œ ์ฝ๊ธฐ : Slave Address(W) -> Register Address -> Slave Address(R) -> Data(์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ์”€)

 

โญ ์‰ด๋“œ

1) ์‰ด๋“œ (Shield)

  • ์•„๋‘์ด๋…ธ์— ์ ์ธต์‹œ์ผœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ฑ ๋ณด๋“œ๋กœ์„œ ์•„๋‘์ด๋…ธ์— ๊ฒฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ณด๋“œ

 

2) ์กฐ์ด์Šคํ‹ฑ ์‰ด๋“œ

  • ์•„๋‘์ด๋…ธ ์šฐ๋…ธ ๋ณด๋“œ์— ์ ์ธต์‹ ์‰ด๋“œ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์ฃผ๋กœ ๊ฒŒ์ž„์— ์‚ฌ์šฉ๋˜๋Š” ์กฐ์ข… ๋ ˆ๋ฒ„ํ˜• ์ž…๋ ฅ์žฅ์น˜
  • ๊ฒŒ์ž„ ์ปจํŠธ๋กค๋Ÿฌ, RC์นด ๋ฐ ๋“œ๋ก  ์กฐ์ข…๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ํ™œ์šฉ
  • ์กฐ์ด์Šคํ‹ฑ ์‰ด๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•€์€ D2, D3, D4, D5, D6, D7์ด๋ฏ€๋กœ ์•„๋‘์ด๋…ธ์—์„œ ํ•ด๋‹น ํ•€ ๋ฒˆํ˜ธ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 

โญ LED

์ถœ์ฒ˜ : ์ฝ”๋”ฉ๋Ÿฐ

728x90
๋ฐ˜์‘ํ˜•
Comments