DIY - 2019/공기청정기

[공기청정기]메뉴 조작을 위한 구성

알렉스윤 2019. 3. 26. 20:57

공기청정기 조작을 위해 버튼을 달까? 터치스크린을 사용할까? 이것 저것 고심이 많던차에...

오래전 주문한 Rotary encoder가 도착했다.


알리에서 구매했는데... PIN에 대한 자세한 설명이 잆어서 애를 먹었다.



https://www.aliexpress.com/item/5PCS-LOT-Original-Rotary-encoder-code-switch-EC11-digital-potentiometer-with-switch-5Pin-handle-length-20mm/32686611614.html?spm=a2g0s.9042311.0.0.5d184c4d0aDUSt


그 외에도 다운받은 라이브러리로 동작을 하는데상당한 얘를 먹었다.

결론부터 말해서 UNO로는 잘 작동시킬 수 있으나. 내가 쓰려는 Wemos D1 mini로는 불가능했다.


UNO의 경우 PIN의 동작전압이 5V인데... D1 mini은 3.3V로 동작하지 않는다.

내가 구매한 제품의 경우 따로 전원부가 존재하지 않고 연결된 PIN의 전압을 사용해서 그런 거 같다.

아래와 같은 제품을 쓰면 D1 mini에서도 동작하지 않을까? 또 구매하고 싶으 생각은 없다.

D1 mini에서 동작 할 수 있는 방법을 찾아봐야겠다.




회로 구성은 가운데가 GND이고 2,3번 인터럽트 핀을 이용해서 연결하면 잘 동작한다.




/* Encoder Library - Basic Example

 * http://www.pjrc.com/teensy/td_libs_Encoder.html

 *

 * This example code is in the public domain.

 */


#include <Encoder.h>


// Change these two numbers to the pins connected to your encoder.

//   Best Performance: both pins have interrupt capability

//   Good Performance: only the first pin has interrupt capability

//   Low Performance:  neither pin has interrupt capability

Encoder myEnc(2, 3);

//   avoid using pins with LEDs attached


void setup() {

  Serial.begin(9600);

  Serial.println("Basic Encoder Test:");

}


long oldPosition  = -999;


void loop() {

  long newPosition = myEnc.read();

  if (newPosition != oldPosition) {

    oldPosition = newPosition;

    Serial.println(newPosition);

  }

}


이틀간 삽질한 것을 생각하면 참 허무하다.




참고로 D1 mini로 연결했을 때 010101을 계속 반복해서 출력했다.

비슷한 일로 고생하는 사람들이 있다면 참고하면 좋을 듯.


'DIY - 2019 > 공기청정기' 카테고리의 다른 글

케이스 만들기  (0) 2019.04.03
회로 구성  (0) 2019.04.02
TFT LCD 연결  (0) 2019.04.02
12V DC Fan 과 PMS 5003 연결  (0) 2019.03.20
설계 및 준비  (0) 2019.03.16