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를 사용한 것입니다.


  1. 디지로그(digilog)란

  2. No Image 16Aug
    by JE
    2017/08/16 by JE
    Views 0 

    KAIST "AI World Cup 2017"

  3. No Image 16Aug
    by JE
    2017/08/16 by JE
    Views 0 

    머신러닝 좋은 정리 사이트 및 정부 3.0 api를 이용한 식당 맞집 관련 정보

  4. No Image 11Aug
    by JE
    2017/08/11 by JE
    Views 1 

    graphviz PATH 에러 날 경우

  5. No Image 04Aug
    by JE
    2017/08/04 by JE
    Views 2 

    파이썬 라이브러리를 활용한 머신러닝 github주소

  6. No Image 24Jul
    by JE
    2017/07/24 by JE
    Views 1 

    교육과정

  7. No Image 17Jul
    by JE
    2017/07/17 by JE
    Views 11 

    인공지능 알고리즘 :의사결정 나무

  8. 디지로그(digilog)란

  9. No Image 11Jul
    by JE
    2017/07/11 by JE
    Views 20 

    TensorFlow

  10. 3.6 데이타베이스 지정

  11. No Image 07Jun
    by JE
    2017/06/07 by JE
    Views 12 

    코딩 에디터 Atom 설치

  12. 3.4 Django 설치 및 첫화면 실행

  13. No Image 05Jun
    by JE
    2017/06/05 by JE
    Views 17 

    파이썬 시작

  14. 인공지능을 개발하고 싶다면 아마존으로 오라

  15. No Image 16May
    by JE
    2017/05/16 by JE
    Views 10 

    파이썬 matplotlib.pyplot import 시,FileNotFoundError 해결 방법

  16. 밑바닥부터 시작하는 딥러닝

  17. 블루투스 테스트

  18. 가변저항으로 LED 밝기 조절

  19. 아날로그값 읽기 (볼륨사용)

  20. PWM을 통한 LED제어

  21. Input Pullup Serial

Board Pagination Prev 1 2 Next
/ 2
TOP:9678(댓글에만),자유게시판:23302,전시실:10236,TOP:9678,기타:7501,디지로그:7153,앰프자작:4521,회로도:23715, 제이칼럼:25476,진공관정보:30555

sketchbook5, 스케치북5

sketchbook5, 스케치북5