기본 콘텐츠로 건너뛰기

가변저항과 아두이노 연결하기

가변저항(potentionmeter)는 임의 값으로 저항값의 조절이 가능한 부품이다. 이번에는 가변저항과 발광다이오드를 회로로 구성하여 동작을 테스트해보고, 이를 아두이노 UNO 보드의 아날로그 핀과 PWM 핀을 이용하여 동일한 회로구성을 해보겠다.

아두이노는 0 ~ 1023 범위의 값을 읽을 수 있는 6개의 아날로그 핀과 0 ~ 255 범위의 아날로그 값을 출력할 수 있는 6개의 PWM 핀을 가지고 있다. 여기서는 가변저항을 아날로그 핀에 연결하고 발광다이오드를 PWM 핀에 연결하여 가변저항의 동작 특성과 아두이노의 아날로그 값 처리 방법을 살펴볼 것이다.

준비물:
아두이노 UNO, 가변저항(10K) 1개, 발광다이오드(LED) 1개, 저항(220Ω) 1개, 브레스보드, 브레스보드 전원공급기, 점퍼와이어

왼쪽부터 시계방향으로 가변저항용 노브, 가변저항,
브레스보드와 브레스보드 전원공급기,
고정저항, 발광다이오드

아두이노 UNO
실습 영상에서는 첫 번째로 가변저항과 발광다이오드만을 연결한 회로와 두 번째로 아두이노를 이용한 회로를 동작시키기고 이때 입력값을 시리얼모니터로 표시한다.

아두이노 소스:

// PWM 9번 핀 등록
int ledPin = 9;

void setup() {
  // 시리얼모니터 9600baud 설정
  Serial.begin(9600);

  // 9번 핀 출력 지정
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // A1 핀으로부터 아날로그 값을 읽어들임
  int sensorValue = analogRead(A1);

  // 시리얼모니터에 아날로그 값 출력 (0 ~ 1023)
  Serial.println(sensorValue);

  // PWM 값 출력 (0 ~ 255)
  analogWrite(ledPin, sensorValue / 4);

  delay(1);
}

댓글

이 블로그의 인기 게시물

아두이노 미세먼지 센서 PM2008

온습도계를 달아봤으니 이참에 미세먼지까지 한꺼번에 표시되도록 기능을 추가해보기로 했다. 마침 아두이노 전용 쉴드까지 제공하는 미세먼지 센서가 눈에 띄길래 일단 구매를 해봤다. 배송받은 센서는 거의 완제품에 가깝게 제작되었다. 다만 아쉬운 점은 아두이노 전용 쉴드의 마감이 좀 지분하다는 느낌을 받았는데, 후처리에 신경을 더 써주는 센스가 부족한 듯. PC2008 미세먼지 센서 아두이노 우노 전용 PM2008 쉴드  부착한 상태는 핀 위치도 잘 맞고 비교적 깔끔한 느낌이다. 쉴드 덕분에 지저분한 배선이 줄어들어 다른 센서들을 붙이기에도 좋을 것 같다. 쉴드와 일체형으로 제작하지 않은 건 라즈베리 파이와 같은 다른 마이크로칩 보드용의 쉴드 제작을 염두에 둔 듯하다. Arduino UNO에 장착한 모습 센서의 작동 테스트를 위해 PM2008 I2C 라이브러리를 추가하여 샘플코드를 실행시켜봤다. 성공적을 테스트를 완료. 이제 공부가 남았을 뿐. Arduino library PM2008 I2C 설치

Adafuit HUZZAH ESP8266 보드를 이용한 Arduino IDE 환경설정하기

 Espressif社의 ESP8266 마이크로컨트롤러는 Arduino 보드에 사용된 AVR 마이크로컨트롤러와 같은 종류이다. 가장 큰 장점은 WiFi 통신이 가능하며, 별도의 추가적인 하드웨어 없이 펌웨어만으로 WiFi 클라이언트와 Access Point 기능을 제공한다는 점이다. 최근 중요한 이슈로 자리잡은 사물인터넷(IoT)을 구현하는데 더없이 좋은 마이크로컨트롤러라 할 수 있다. 게다가 저렴한 가격은 덤! (8,000 ~ 10,000원 정도이니 Arduino UNO 호환보드 가격이다.)  HUZZAH 보드의 특징을 간단히 살펴보면 다음과 같다. Adafruit HUZZAH ESP8266 ESP8266 칩(64KB RAM, 96KB data RAM, 4MB QIO FLASH) 리셋 버튼 프로그램을 업로드하는데 필요한 부트로딩 모드로 전환하기 위한 버튼 프로그래밍 가능한 RED UART 통신 기능 Analog 입력 1개 (최대 1V) GPIO 핀 9개 (3.3V), I2C와 SPI 이용 가능  프로그래밍을 위해 FTDI 연결이 필요하다. 프로그래밍은 Arduino IDE를 사용할 수 있으며, Arduino와 같이 C/C++ 코드를 이용하여 개발이 가능하다. 참고로 Epressif社의 ESP8266 개발보드인 NodeMCU는 루아(LUA)라는 프로그래밍언어를 기본 제공한다. Adafruit社의 HUZZAH 보드는 기본적으로 핀헤더 없이 반제품으로 판매되며 필요에 따라 핀헤더를 직접 납땜해서 부착해야한다. 핀헤더 및 USB 포트를 기본제공하는 개발보드 형태의 제품을 별도로 판매하고 있다. Arduino IDE를 이용하여 프로그래밍을 하기 위해서는 우선 라이브러리에 ESP8266 보드를 추가해야 한다. Arduino IDE에 ESP8266 애드온 설치하기 1. 환경설정에서 "추가적인 보드 매니저 URLs"에 다음 URL을 입력한다. http://arduino.esp8266.com/sta...

Eclipse + JBoss + jBPM 개발환경 설정

상용 개발환경인 JBoss Development Studio 9.0.0 GA 개발환경과 동일한 오픈소스 환경 구성을 목표 Windows 10 64bit JDK 1.8 64bit Eclipse Mars.1 64bit Wildfly 10 (JBoss Application Server) - JDK 1.8 지원 jBPM 6 1. JDK를 내려받아 설치한다. JDK 1.8 - Windows x64  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. Eclipse을 내려받아 설치한다. 1) Eclipse IDE for Java EE Developers Windows 64bit 배포판을 내려받는다. http://www.eclipse.org/downloads/ 2) 적당한 디렉터리에 압축을 푼다. Ex) d:\eclipse 3) 압축을 풀어낸 디렉터리에서 eclipse.ini를 찾아 jdk bin 디렉터리의 javaw.exe를 설정한다. [eclipse.ini] -vm C:/Program Files/Java/jdk1.8.0_65/bin/javaw.exe 3. Wildfly를 내려받아 설치한다. 1) Wildfly 10.0.0 최신버전을 내려받는다. http://wildfly.org/downloads/ 2) 적당한 디렉터리에 압축을 푼다. Ex) d:\wildfly 4. Eclipse에 JBoss Tools 4.3.0.Final 플러그인을 설치한다. Help > Install New Software... http://download.jboss.org/jbosstools/mars/stable/updates/  주소를 추가한 후 다음 소프트웨어를 설치한다. JBoss Applicastion Server Adaper JBoss Maven Int...