반응형

 

아두이노, LCD와 조이스틱 예제

 

글. 오상문 sualchi@daum.net

 

핀 연결 방법입니다.

LCD는 4핀 드라이버가 달린 것입니다.

 

                                               <아두이노>

LCD: GND --------------------  GND

        VCC --------------------  5V

        SDA --------------------  A4

        SCL --------------------  A5

 

조이스틱: GND ---------------- GND 

              +5V ----------------- 5V

              VRX ----------------- A0

              VRY ----------------- A1

              SW -----------------  디지털 5번 핀

 

다음은 예제 코드입니다.

조이스틱 위치 값을 가져와서 디스플레이에 출력합니다.

 

 

#include <Wire.h>               // LCD I2C 통신 헤더파일
#include <LiquidCrystal_I2C.h>  // I2C 시리얼 LCD 헤더파일

 

const int AXIS_X = A0;
const int AXIS_Y = A1;
const int SW_P = 2;

 

// 0x27 주소 2열 LCD 객체 생성 (4열 LCD는 0x20 지정)
LiquidCrystal_I2C  lcd(0x27, 16, 2);

 

void setup() {      // LCD 초기화 설정 작업을 합니다.
  lcd.init();          // I2C LCD 초기화
  lcd.backlight();  // LCD 백라이트 on
  Serial.begin(9600);
  pinMode(SW_P,INPUT_PULLUP); 
}

 

void loop() {

  // 디스플레이 출력

  lcd.setCursor(0,0);    // 0번 칸 첫 줄로 이동
  lcd.print("X:     ");
  lcd.setCursor(3,0);    // 3번 칸 첫 줄로 이동 
  lcd.print(analogRead(AXIS_X));  // 디스플레이 출력
  lcd.setCursor(0,1);    // 0번 칸 둘째 줄로 이동
  lcd.print("Y:     "); 
  lcd.setCursor(3,1);    // 3번째 칸 둘째 줄로 이동 
  lcd.print(analogRead(AXIS_Y));  // 디스플레이 출력    
 
  // 시리얼 창에 출력
  Serial.print("X: ");
  Serial.println(analogRead(AXIS_X));
  Serial.print("Y: ");
  Serial.println(analogRead(AXIS_Y));
  Serial.print("SW:  ");
  Serial.println(digitalRead(SW_P));
  delay(200); 
}

 

<이상>

 

반응형

+ Recent posts