우리 학교는 하드웨어 설계 실험 과목에서 ARM칩을 이용한다. 최근에는 ARM9을 이용하고 CLCD는 8*2 크기의 8020A를 사용한다. 예전에는 ARM7에 16*2 크기의 1602 CLCD를 사용하였다. 8020A CLCD를 검색하다가 우연히 아두이노의 CLCD를 보게 되었는데 핀 구성이 8020A와 같았다. 그리고 모양새가 1602와 흡사해서 확인해보니 1602가 맞았다. 1602는 예전에 실험을 하고 아무렇게나 방치된 것들이 있었다. 그것들을 가져와서 묵혀두었던 아두이노에 장착해보았다.


 일단 스케치는 다음과 같다. 대표적인 CLCD 예제이다.

// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("softs.tistory");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Time:");
lcd.print(millis()/1000);
lcd.print("(s)");


 

1602 CLCD의 핀 구성은 위 그림과 같다. 16개의 핀이 있다.



 각 핀의 역할은 위 그림에서 확인 할 수 있다.


 조금 더 상세한 정보는 여기에 있다.


 연결은 위와 같은 형태이다. 아두이노 보드 아래에 3핀을 가지고 있는 것은 가변저항이다. CLCD의 밝기를 조절하는데 사용한다. 위와 같이 연결을 하면 글자의 밝기가 조절 가능하다.


 가변저항이 없다면 아래처럼 핀만 제대로 맞춰서 연결해도 된다.



[LCD 핀번호]                                           [ 아두이노 ]

1. Vss ------------------------------------- GND

2. Vdd ------------------------------------- 5V

3. V0 -------------------------------------- GND

4. RS -------------------------------------- D12

5. RW ------------------------------------- GND

6. E --------------------------------------- D11

7. DB0 (미사용)

8. DB1 (미사용)

9. DB2 (미사용)

10. DB3 (미사용)

11 DB4 ------------------------------------- D9

12 DB5 ------------------------------------- D8

13 DB6 ------------------------------------- D7

14 DB7 ------------------------------------- D6

15 LEDA ----------------------------------- VCC(5V에 연결)

16 LEDK ----------------------------------- GND


 이것이 실제 보드에서 이루어지는 연결의 한 예이다.


가변저항으로 글자의 밝기만 조절이 가능한 예제이므로 백라이트 밝기까지 제어하고 싶다면 가변저항을 하나 더 장착하고 가변저항의 양쪽은 5V와 GND에 연결하고 가운데는 CLCD 16번 핀과 연결하면 된다. (위의 자료들을 종합해서 생각하면 알 수 있다.)




실제로 회로를 연결하고 스케치를 업로드한 결과물이다.

'프로그래밍 > Arduino' 카테고리의 다른 글

LED 주사위  (0) 2014.08.04
아두이노 LED 점멸  (0) 2013.12.01
아두이노 CLCD 응용  (0) 2013.11.25
아두이노(arduino) 입문  (0) 2013.07.02

아두이노(arduino) 입문


어떤 아이디어가 떠올라서 그것을 구현할 방법을 수소문하다가 아두이노의 존재를 알게 되었다.

아주 흥미로운 존재였고 망설임 없이 입문자용 키트를 구입했다.


그리고 시험을 며칠 앞두고 도착한 제품으로 간단한 구현을 해보았다.

LED를 켜고 끄는 법과 근접 센서 동작법에 관한 예제를 보고 서로를 조합해보았다.


스케치는 아래와 같다.


int signal = 4; // 디지털 핀4번으로 센서값(0 혹은 1)을 읽을 변수.
int onoff; // 4번 핀에서 읽은 값이 High(1)인지 Low(0)인지 저장할 변수
int ledPin = 13; // 아두이노에 내장된 LED
int led = 6;
void setup()
{
Serial.begin(9600); // 시리얼통신을 사용하여 모니터링 할 수 있다.
pinMode(ledPin, OUTPUT); // LED는 아웃풋으로 사용.
}
void loop()
{
onoff = digitalRead(signal); // 불리언 신호(0 혹은 1)을 읽어서 onoff에 저장
Serial.println(onoff); // onoff변수값을 Serial.println을 통해 출력.
if(onoff == 0)
{
  digitalWrite(ledPin, HIGH); // LED를 켜고
  analogWrite(led, 255);
}
else // 그렇지 않으면
{
  digitalWrite(ledPin, LOW); // LED를 끈다.
  analogWrite(led, LOW);
}
}


다음은 실제 구동 영상이다.



'프로그래밍 > Arduino' 카테고리의 다른 글

LED 주사위  (0) 2014.08.04
아두이노 LED 점멸  (0) 2013.12.01
아두이노 CLCD 응용  (0) 2013.11.25
아두이노 CLCD 출력하기  (0) 2013.11.23

+ Recent posts