[DIY] 볼트메터 시계만들기 1-5

Analog Meter구동회로 만들기


아두이노의 아나로그 출력은 0~5V가 나옮니다.  아두이노의 아나로그 출력은 실제로는 500HZ의 PWM 으로 출력이 나오니 이 출력을 메터에 공급하면 됩니다.

아나로그 멀티 메터의 출력을 만들기 제어를 해 보기로 합니다. 


멀티메터 회로를 보기로 합시다.

afa385e6d762673f2ba09b0c7f132ad5.png
 

멀티메터의 메터부분은 homo-polar라는 모터인데 다행이 DC 전류에 비례하는 성능이 우수한 기기입니다.  우리가 사용할 메터는 1mA에 Full Scale되는 메터입니다. 외부에 저항을 붙여 1kOhm의 내부 저항을 가진 메터로 구성하기로 합니다.

      

Ra + Rb + Rm = 1kOhm입니다.

아나로그 출력이 3V가 출력되도록 한다면 R1은 2.0kOhm으로 결정되면 메터가 출력됩니다. 


3V가 출력 될 때 메터의 Full Scale로  가게 만들 예정입니다.  이 회로에 C1을 더하여 500Hz의 PWM을 DC전압을 해당하는 전압을 만들어 줍니다. 이 RC회로를 2.5Hz의 주파수 특성을 갖는 회로로 설계하도록 합니다.  이번에 회로에서 필요로하는 C1을 결정하여 보도록 합시다. 

 [너무 어려운 사람들은 그냥 통과 해도 좋습니다.]


2.5 hz의 low pass filter의 전달함수를 구하는 방법은 다음과 같습니다.


2.5Hz는 각 속도로 2 x π x 2.5 = (약) 15 radian/Sec입니다.

             15

   f(s) -------

            s + 15

이 주파수의 시간축 특성과 주파수특성(Bode Plot이라고 합니다.)을 계산하여 실험하여 봅니다. 


이 회로의 15는 어떻게 사용 될까요?


위의 수식의 주파수 특성과 스텝 파형의 출력 특성은 그림과 같습니다. 

ff782c07afe07a6764804da01601b852.png d6bc73d5d9e6f8a6a2c8458eee12645e.png 

그림에서 보여 주듯 0.2초에 목적값의 95%까지 접근하는 전류값이 됩니다. 0.4초에는 99.6%까지 도달하게 됩니다. 이러한 특성을 가진 Filter를 만들면 되는 것을 알수 있습니다. 


이 회로를 시뮬레이션 하려면 그림의 Rth는 데브닌 등가회로 값이라는 값을 가지게 됩니다. 그 값은 1KΩ//2KΩ =0.67KΩ입니다.  15 = 1/(Rth x C1)으로 Rth에 667Ω을 대입하면 C1은 98uF입니다.  즉 100uF를 사용하면 됩니다.

          e40ab006bd899534ea72b863b3f50db1.png   


       c71afb65bff70d22d2c334e71fd82a17.png   





필요한 회로는 Arduino에서 출력 되는 AnalogWrite()에 대하여 알아 보도록 합시다. 


참고로 Arduno의 Timer 3개의 용도는 다음과같다. 

 Timer0: 8bit timer

 __delay()__, __millis()__ and __micros()__

 Pins 5 and 6

 Timer1: 16bit timer

 __Servo library__

 Pins 9 and 10

 Timer2: 8bit timer

 __tone()__

 Pins 11 and 3


아두이노의 3핀을 이용하므로 정확한 시간을 위하여 회로에는 RTC Chip인 DS1307을 사용하여 시간을 외부에서 정확하게 유지하기로 합니다.  시간을 유지하는 별도의 Battery를 가져 전원이 연겨리 안된 상태에서도 정확한 시간을 유지하므로 Timer나 analogWrite를 자유롭게 이용할 수 있습니다.

  

실제로 회로는 기존의 메터를 개조하는 순서부터 진행하도록 합니다. 


메터를 뜯어 보면 내부에 AC전압을 DC전압으로 변환하는 화로가 있습니다.  이 회로를 피하고 동작하는 회로를 개조하여 보도록 하겠습니다. 


아나로그 메터 무브먼트는 그림과 같은 형태입니다.  메터 안에 어댑터 회로가 있어 900V전압을 측정하게 하여 줍니다, 무브먼트가 1.0mA가 full Sacle이므로 1V에 1mA에 맞게 회로를 변경하면 됩니다. 


8ecf38af5e24fe33c40fe4f065785f5b.png 62ccf9cd4b9b07c7d85fab9b85279be9.png 
 

아두이노 회로는 다음과 같습니다. 


e1782c1c3dd92e4d6bc4717d7579b3ad.png
 

기능을 정리하면 

1.  Analog Meter로 가는 analog 출력은 digital 핀으로 P9, P10, P11번 핀으로 출력 2. 필요한 경우 LED Display는 TM1637을 통하여 시간을 디스플레이 시킬 수 있다. 

3. 별도의 Battery로 시간이 백업되는 RTC가 연결되어 시스템에 전원이 연결 안되어도 시간을 다시 설정할 필요가 없다.


로 정리됩니다. 

그리고 시간 설정은 스위치 S1~S4로 설정되는데 이 부분은 추후 설정하기로 합니다. 


아나로그 출력을 이해 하기로 합니다. 


아나로그 출력은 회로를 만능 보드에 설치하고 오실로스코프로 파형을 보고, 또 전원메터를 연결하여 동작을 살펴 보는 것으로 하겠습니다. 


우선 동작을 실험할 회로부터 간단하게 꾸미고, 소프트웨어를 작성하도록 합시다. 

회로는 그림과 같이 간단하게 만듭니다.  위에 표시된 회로 전체는 추후 만들고 지금은 한가지만 집중하여 실험할 것이므로 간단하게 실험 회로를 꾸밉니다. 

f4a595432849aca583bfeb632c555a6b.png
 


그리고 회로실험에 사용될 오실로스코프와 아두이노 나노 보드가 있으면 전체 준비 끝입니다.

6fab9a309cb5185e317fcabd3268ace0.png
 

그리고 프로그램을 작성합니다.


프로그램 내용 

a. analog Port로 1초동안 5V 출력하고 , 1초동안 0V 출력하는 프로그램 

b. analog Port로 1초동안 2.5V 출력하고, 1초동안 0V 출력하는 프로그램 

c. 0V 부터 5까지 0~59등분하여 출력하는 프로그램, 각 Step은 1초임. (초시계 구동과 유사)

  // program 1

  // analog Port로 1초동안 5V 출력하고 , 

  // 1초동안 0V 출력하는 프로그램 

  #define OutSecond 9


  void setup() {

    pinMode(OutSecond, OUTPUT);

  }


  void loop() {

    analogWrite(OutSecond, 255);

    delay(1000);

    analogWrite(OutSecond, 0);

    delay(1000);

  }


  // program 2

  // analog Port로 1초동안 2.5V 출력하고 , 

  // 1초동안 0V 출력하는 프로그램 

  #define OutSecond 9


  void setup() {

    pinMode(OutSecond, OUTPUT);

  }


  void loop() {

    analogWrite(OutSecond, 127);

    delay(1000);

    analogWrite(OutSecond, 0);

    delay(1000);

  }


  // program 3

  // analog Port로 매초 일정 전압증가 

  // 60초동안 출력하는 프로그램 

  #define OutSecond 9


  void setup() {

    pinMode(OutSecond, OUTPUT);

  }


  void loop() {

    for (byte X = 0; X < 60; X++){ 

      analogWrite(OutSecond, X*4);

      delay(1000);

    }

  }


실험 결과입니다.  


프로그램 1을 실행하여 봅니다. 


test Point의 전압을 보면 부드럽게 둥글둥글 하게 신호가 변하는 것을 볼 수있습니다. 

8de35b1d0f1a681b30cc58e797e991c0.png


전압은 1.1Volt로 다소 높게 올라가는 것을 알 수 있습니다.  


다음은 프로그램 2를 구동하여 봅니다. 


331481e7c79ff41a67b0e66df27e9447.png 


파형은 전과 아주 유사한데 파형만 50%로 변하는것을 알 수 있습니다. 거의 1초마다 신호가 변합니다.  


이때 analog 출력단자의 전압을 살펴보기로 합니다. 아나로그 출력은 사실은 해당하는 PWM으로 출력이 되어 아나로그가 아닌 것을 검증하는 단계인셈이죠. ㅎㅎㅎ

f5f8968c10a521b04c7dbecf1771afa2.png
 

  출력은 2.5volt는 사실은 50%의 5V와 0V 의 PWM입니다.


여기서 다시 보면 5V도 사실은 정확한 5V가 아니고, 4.7V정도 전압입니다. 


여러 가지 생각할게 많은 사항을 한꺼번에 가져 온 것 같습니다. 


일단 회로를 연결하고 메터의 음직을 살펴 보기로합시다. 

  

955ffd464cae2e209e79475cb75fa21c.png9155c858dd92977bb497731131c752ce.png

  6 STEP입니다.                                        60 sTEP 구동 
 

[잘 됩니다]

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

메이커 DIY

번호 제목 글쓴이 날짜 조회수
57 DIY [Tube] in Love - WEY20P0011 icon 청계천도사 11-20 13,077
56 DIY 인턴인 [튜브]는 라이언을 미워하지 않는다. - WEY20P0010 icon 청계천도사 11-19 16,820
55 DIY 라이언 가족중 [튜브]를 초대합니다. [19금 버전] - WEY20P0009 icon 청계천도사 11-18 14,276
54 DIY 라이언의 친구중[제이지] - WEY20P0008 icon 청계천도사 11-17 13,676
53 DIY 라이언의 친구들이 오고싶어합니다. -WEY20P0007 icon 청계천도사 11-17 13,211
52 DIY 내 친구 [미니언] 입니다. - WEY20P0006 icon 청계천도사 11-13 14,044
51 DIY 외로운 라이언에게 친구만들어주기 (Apeaxch) - WEY20P0005 icon 청계천도사 11-12 13,803
50 DIY 꽃게 철입니다. 이넘도 요리해 먹을가요? [Sebastian] - WEY20P0004 icon 청계천도사 11-11 12,231
49 DIY 오르골 기초 올렸습니다. +3 icon 청계천도사 11-09 14,289
48 DIY Thermistor 규격표 보는법 icon 청계천도사 11-06 12,478
47 DIY 곰돌이 푸우 ~~~ 가 왔습니다. - WEY20P0003 icon 청계천도사 11-05 13,502
46 DIY 라이언(카카오프렌즈) 친구 왔어요. - WEY20P0002 icon 청계천도사 11-04 13,037
45 DIY 이런 컬러링 만들기 [헬X키티] - WEY20P0001 icon 청계천도사 11-03 13,067
44 DIY 오르골 이야기 둘째 편 icon 청계천도사 06-21 14,280
43 DIY 다른 프로젝트 시작... 오르골 +1 icon 청계천도사 06-18 12,554
42 DIY 작성중 - [더미천국] 아두이노 기초편4 입니다. (이대로 따라하면 고수된다) icon 청계천도사 03-27 12,956
41 DIY [더미천국] 아두이노 기초편3 입니다. (이대로 따라하면 고수된다) icon 청계천도사 12-28 12,818
40 DIY [더미천국] 아두이노 기초편 2 입니다. (이대로 따라하면 고수된다) icon 청계천도사 12-28 15,496
39 DIY [더미천국] 아두이노 기초편 1 입니다. (이대로 따라하면 고수된다) +1 icon 청계천도사 12-16 13,425
38 DIY [더미천국] 펠티에 소자를 아시나요? icon 청계천도사 12-07 13,117