# 제목: 가변저항(INPUT) - 아두이노 - LCD1602(OUTPUT)으로
# 내용: 가변저항을 사용해서 사용자가 직접 특정값을 입력해서 원하는 기능을 하도록 해보자.
일단 가변저항으로 어떻게 신호를 입력할 수 있을까?
이는 "전압분배법칙"을 사용해서 가능합니다.
법칙 자체를 설명하면 너무 복잡해질 것 같아서... 간단한 원리만 설명합니다.
가변저항은 총 3개의 핀으로 구성되어있고 좌/우측 끝 핀을 연결하면 전체저항값이 나오고,
끝단 중 하나와 가운데 핀을 연결하면 회전량만큼의 저항에 대한 값만 나오게 됩니다.
이걸 사용해서 좌/우끝단에 각각 +5V / GND 를 연결하고 가운데를 analog 입력에 넣으면 회전한 만큼 전압을 넣게되어
0~ 1023의 값을 입력할 수 있습니다. (analogRead() 메소드를 사용합니다)
# 코드:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 16, 2); // I2C LCD 객체 선언 const int resistorPin = A0; //아두이노 A0 I/O에 가변저항을 연결합니다. int sensorValue = 0; void setup() { lcd.begin(); // lcd를 사용을 시작합니다. lcd.clear(); // lcd를 전부 지웁니다. lcd.home(); // 첫번째 줄 첫번째(좌측) 위치로 이동한다. pinMode(resistorPin, INPUT); //resistorPin 을 입력으로 설정합니다. } void loop() { lcd.home(); lcd.print("Resistor(0~1023)"); lcd.setCursor(0,1); // LCD 에 한자리 ~ 네자리가 표시될 때 lcd.print(" "); // 네자리 표시 후에 한자리~세자리 표시로 바뀌면 lcd.setCursor(0,1); // 마지막자리 숫자가 그대로 남아있게 되어 표기오류가 생긴다. // 그래서 이 방법을 사용해서 해당 LCD칸을 초기화해준다. sensorValue = analogRead(resistorPin); //analogRead()를 사용해서 아날로그 입력을 받는다. lcd.print(sensorValue); //lcd에 0~1023 값을 출력한다. lcd.setCursor(4,1); lcd.print("value"); } | cs |
# 회로도(Fritzing):
# 실행결과:
# 비고:
이 방법을 사용하여 가변저항입력값 (0~1023)에 범위를 주어 특정값에 특정한 액션을 취하게 할 수 있습니다. 가변저항 입력을 사용하여 구현할 수 있는 예제를 다음 글에 써보도록 할게요~
'Arduino > # Studies' 카테고리의 다른 글
2N3904 트랜지스터를 사용한 스위칭 예제 - 1 (0) | 2018.07.13 |
---|---|
[아두이노] 가변저항(Potentiometer) 활용 예제 (0) | 2018.06.09 |
[아두이노] 토글 스위치를 사용해보자 (0) | 2018.06.09 |
[아두이노] LCD1602 IIC 로 특수문자 만들기 (0) | 2018.06.08 |
[아두이노] LCD1602 IIC 기본 (0) | 2018.06.08 |