Skip to content

제이앨범

JE
조회 수 150 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

먼저 살펴볼 예제는 아두이노 공식 홈페이지에 소개된 포텐셔미터 입력(AnalogReadSerial) 예제입니다.

http://arduino.cc/en/Tutorial/AnalogReadSerial

VL.jpg

 

 

간단하죠. 5V, GND를 포텐셔미터에 연결하고 포텐셔미터의 가운데 핀을 아날로그 0번 핀으로 연결합니다. 포텐셔미터(Potentiometer)는 동그란 손잡이를 시계, 반시계 방향으로 돌릴 때 마다 내부의 저항이 바뀌는 장치입니다. 그래서 가운데 핀(아날로그 0번 핀)으로 들어가는 전압이 바뀝니다. 즉, 아날로그 0번 핀으로 입력받는 전압이 0V ~ 5V 사이에서 변화하는데 이 값을 읽어서 입력 장치처럼 사용하는 것입니다.

 

VL1.jpg

 

 

지난 시간에는 버튼의 on/off 를 읽었기 때문에 digitalRead() 함수를 사용했죠. 이제는 0V~5V 사이에서 변화하는 값을 읽어야 하기 때문에 analogRead() 함수를 사용할 것입니다. 이름처럼 analogRead() 함수는 입력된 전압에 따라 0~1023 까지의 값을 반환해주는 함수입니다.

즉, 아두이노는 0V에서 동작전압 5V 까지를 1024등분해서 값을 알려준다는 얘기입니다. 이렇게 Analog 값(전압 입력 값)을 digital 값(0~1023)으로 변환해주는 모듈을 ADC(Analog to Digital Converter)라고 부르고 아두이노가 자체적으로 가지고 있습니다. 아두이노는 ADC 가 1024 단계(2^10)로 구분할 수 있기 때문에 10비트의 분해성능을 가지고 있다고 합니다.

analogRead() 함수로 읽은 값은 USB serial 로 출력합니다.(즉 PC로 전송해서 PC에서 확인할 수 있도록 해줌) 아두이노 개발환경이 제공하는 Serial Monitor로 확인하면 0부터 1023 사이의 값이 주르륵 나오고 포텐셔미터를 돌릴 때마다 그 값이 변화해서 나올겁니다.

이제 코드를 확인해 보겠습니다.


/*
  AnalogReadSerial
  Reads an analog input on pin 0, prints the result to the serial monitor.
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
 
 This example code is in the public domain.
 */
 
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}
 
// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}


소스코드는 매우 간단합니다. Serial monitor를 통해 포텐셔미터의 값을 출력하는 부분을  제외하면 실질적으로 아래 라인이 전부입니다.
 
   int sensorValue = analogRead(A0);

A0(아날로그 0번) 핀에서 0~1023 으로 구분된 값을 읽는 것이죠. 여기서 한가지 생각하셔야 할 점은 digitalRead 함수를 쓸 때 처럼 pinMode 함수로 read/write 모드를 설정해 주지 않았다는 점입니다. 이것은 analogRead를 사용할 수 있는 핀이 아날로그 입력핀인 A0~A5(또는 A7) 로 고정되어 있고 여기에는 Read 작업만 할 수 있어서 모드를 설정할 필요가 없기 때문입니다. 그래서 포텐셔미터를 아날로그 핀에 연결해서 analogRead를 사용한 것입니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 디지로그(digilog)란 file JE 2017.07.13 13
25 KAIST "AI World Cup 2017" http://www.... JE 2017.08.16 0
24 머신러닝 좋은 정리 사이트 및 정부 3.0 api를 이용한 식당 맞집 관련 정보 머신러닝 좋... JE 2017.08.16 0
23 graphviz PATH 에러 날 경우 graphviz로 ... JE 2017.08.11 1
22 파이썬 라이브러리를 활용한 머신러닝 github주소 https://git... JE 2017.08.04 2
21 교육과정 기계학습 개... JE 2017.07.24 1
20 인공지능 알고리즘 :의사결정 나무 [서적 Data... JE 2017.07.17 11
19 디지로그(digilog)란 디지로그에 ... file JE 2017.07.13 13
18 TensorFlow 텐스플로우 ... JE 2017.07.11 20
17 3.6 데이타베이스 지정 ch3/mysite... file JE 2017.07.07 10
16 코딩 에디터 Atom 설치 Atom Editor... JE 2017.06.07 12
15 3.4 Django 설치 및 첫화면 실행 *. Django ... 2 JE 2017.06.07 13
14 파이썬 시작 아래 인터넷... JE 2017.06.05 17
13 인공지능을 개발하고 싶다면 아마존으로 오라 http://it.d... JE 2017.05.19 9
12 파이썬 matplotlib.pyplot import 시,FileNotFoundError 해결 방법 아래와 같은... JE 2017.05.16 10
11 밑바닥부터 시작하는 딥러닝   이 책으... file JE 2017.05.14 22
10 블루투스 테스트 좋음 : htt... file JE 2017.04.07 202
9 가변저항으로 LED 밝기 조절 http://drea... file JE 2017.01.23 142
» 아날로그값 읽기 (볼륨사용) 먼저 살펴볼... file JE 2017.01.23 150
7 PWM을 통한 LED제어 우노(Uno)의... file JE 2017.01.17 180
6 Input Pullup Serial   2번핀의 ... file JE 2017.01.16 172
Board Pagination Prev 1 2 Next
/ 2
TOP:9678(댓글에만),자유게시판:23302,전시실:10236,TOP:9678,기타:7501,디지로그:7153,앰프자작:4521,회로도:23715, 제이칼럼:25476,진공관정보:30555

sketchbook5, 스케치북5

sketchbook5, 스케치북5