본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 아날로그 슬라이드 포텐셔미터 모듈 Slide Sensor 사용해 보기

by 오마이엔지니어 2019. 8. 15.
반응형

Arduino Uno 로 아날로그 슬라이드 포텐셔미터 모듈 Slide Sensor 를 사용하는 방법을 알아보고
간단하게 LED 와 SG90 마이크로 서보모터를 제어해 보는 프로젝트 입니다

10K Ohm 의 슬라이드 포텐셔미터가 장착 되어 있는 슬라이드 센서 입니다
슬라이드 위치에 따라 변하는 아날로그 저항 출력값을 확인 할수 있습니다
3.3~5V, 10K 옴의 포텐셔미터 구성으로 아두이노 등 그밖의 마이크로 컨트롤 보드와 연결해서 간단하게 테스트 하고 사용할 수 있습니다


<슬라이드 포텐셔미터 모듈 이미지>

사실 센서라기 보다는 슬라이드 형식의 10K 옴의 포텐셔미터라고 하는게 맞는 것 같습니다
슬라이드 센서, 슬라이드 위치 센서 라고도 하는것 같습니다


인터페이스 설명을 보면 알수 있듯이 모듈은 편의상 2개의 VCC,GND 전원핀과
2개의 OTA 와 OTB 
아날로그 출력핀을 사용할 수 있게 되어 있습니다 (둘중에 아무 쪽이나 사용해도 무방합니다)


사용된 부품

Arduino Uno R3 (Italy)
미니브래드보드
아날로그 슬라이드 포텐셔미터 모듈

점퍼케이블(숫놈-암놈)
점퍼케이블(숫놈-숫놈)

5mm LED 블루 - 1개
막대저항 220 Ohm - 1개
SG90 마이크로 서보모터 - 1개

 

구성 배선도-시리얼 모니터로 슬라이드 위치에 따른 출력값 변화 확인해 보기




구성 배선도-슬라이드 위치를 변경해서 LED 밝기 제어해 보기



구성 배선도-슬라이드 위치를 변경해서 SG90 마이크로 서보모터 제어해 보기



사용된 예제소스

example code.txt

example code2.txt

example code3.txt


주의사항
별도 라이브러리 설치는 필요 없으며 위 예제소스를 다운로드해서 스케치 업로드 해주고 테스트 하면 됩니다
example code시리얼 모니터로 슬라이드 위치에 따른 출력값 변화 확인해 보기

example code2슬라이드 위치를 변경해서 LED 밝기 제어해 보기
example code3슬라이드 위치를 변경해서 SG90 마이크로 서보모터 제어해 보기
입니다


첫번째 예제코드를 살펴보면

const int potIn = A0;
슬라이드 포텐셔미터 A0번 핀 아날로그 출력핀 세팅 입니다

void loop(){ 
  RawValue = analogRead(potIn);
  Voltage = (RawValue * 5.0 )/ 1024.0; // scale the ADC
아날로그 출력값이므로 당연히 최대 1024 그리고 5V 까지의 출력값을 확인할 수 있습니다

  Serial.print("Raw Value = " );  // shows pre-scaled value                   
  Serial.print(RawValue);     
  Serial.print("\t Voltage = "); // shows the voltage measured    
  Serial.print(Voltage,3); //3 digits after decimal point
  Serial.print("\t Resistance = "); // shows the voltage measured
  Serial.println(Resistance);
  delay(500);   // 1/2 sec so your display doesnt't scroll too fast
}
Serial.print 명령어가 확인되고
슬라이드 포텐셔미터로 부터 측정 된 값 스케일과 볼트를 시리얼 모니터로 출력해 줍니다

두번째 예제코드를 살펴보면

// 슬라이드 포텐셔미터 A1핀으로 설정합니다.
int potentiometer = A1;
// LED를 3핀으로 설정합니다.
int led = 3;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
  Serial.begin(9600);
  // LED가 연결된 핀을 OUTPUT으로 설정합니다.
  pinMode(led, OUTPUT);
}
// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
  // 슬라이드 포텐셔미터로 부터 측정된 값을 읽습니다.
  // 슬라이드 포텐셔미터로 부터 입력되어지는 전압의 크기(0~5V)에 따라 0~1023 범위의 값으로 변환되어 반환합니다.
  int pmValue = analogRead(potentiometer);

  // 측정된 밝기 값를 시리얼 모니터에 출력합니다.
  Serial.print("potentiometer = ");
  Serial.println(pmValue);

  // 가변저항으로부터 측정된 값 (0~1024)을 아날로그 출력 값 (0~255) 범위로 변환합니다.
  pmValue = map(pmValue, 0, 1023, 0, 255);
  // LED가 연결된 핀으로, 변환된 값 만큼의 밝기로 켜지도록 설정합니다.
  // 만일 측정된 값이 500 이라면, 디지털 핀으로 출력 할 수 있는 최대값 255의 절반에 해당되므로,
  // LED가 5V 전류로 낼 수 있는 최대 밝기의 절반으로 해석 할 수 있습니다.
  // 이는 디지털로 아날로그 신호를 보내는 펄스 폭 모듈레이션(PWM)에서 duty-cycle이 50%인 것으로 설정됩니다.
  analogWrite(led, pmValue);
  // 0.1초 동안 대기합니다.
  delay(100);
}

세번째 예제코드를 살펴보면

#include <Servo.h>
Servo myservo;
아두이노 기본 라이브러리 Servo.h 라이브러리를 사용합니다

int potpin = 0;
슬라이드 포텐셔미터 아날로그 핀 설정 0번 입니다

myservo.attach(9);
서보모터 핀 설정 9번 입니다

val = map(val, 0, 1023, 0, 179);   
0~1023 까지 변화되는 출력값에 따라서 최대 180도 까지 서보모터를 회전시킵니다 


프로젝트 동영상 - 시리얼 모니터로 슬라이드 위치에 따른 출력값 변화 확인해 보기


프로젝트 동영상 - 슬라이드 위치를 변경해서 LED 밝기 제어해 보기


프로젝트 동영상 - 슬라이드 위치를 변경해서 SG90 마이크로 서보모터 제어해 보기



example code3.txt
0.0MB
example code2.txt
0.0MB
example code.txt
0.0MB
반응형

댓글