<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>http://lhdangerous.godohosting.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ServoTimer2</id>
		<title>ServoTimer2 - 편집 역사</title>
		<link rel="self" type="application/atom+xml" href="http://lhdangerous.godohosting.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ServoTimer2"/>
		<link rel="alternate" type="text/html" href="http://lhdangerous.godohosting.com/wiki/index.php?title=ServoTimer2&amp;action=history"/>
		<updated>2026-04-20T08:48:15Z</updated>
		<subtitle>이 문서의 편집 역사</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://lhdangerous.godohosting.com/wiki/index.php?title=ServoTimer2&amp;diff=218&amp;oldid=prev</id>
		<title>Doguin: 새 문서: # ServoTimer2 언제필요한가?  아두이노의 기본 servo 라이브러리가 pwm신호를 만들기 위해 내부적으로 AVR칩의 timer1 타이머를 사용하는데, 가끔...</title>
		<link rel="alternate" type="text/html" href="http://lhdangerous.godohosting.com/wiki/index.php?title=ServoTimer2&amp;diff=218&amp;oldid=prev"/>
				<updated>2018-06-12T02:02:00Z</updated>
		
		<summary type="html">&lt;p&gt;새 문서: # ServoTimer2 언제필요한가?  아두이노의 기본 servo 라이브러리가 pwm신호를 만들기 위해 내부적으로 AVR칩의 timer1 타이머를 사용하는데, 가끔...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# ServoTimer2 언제필요한가?&lt;br /&gt;
 아두이노의 기본 servo 라이브러리가 pwm신호를 만들기 위해 내부적으로 AVR칩의 timer1 타이머를 사용하는데, 가끔 timer1 타이머를 필요로 하는 다른 라이브러리와 충돌을 일이키는 경우가 있다. ( 특히 인터럽트, 타이머 사용시... )&lt;br /&gt;
 이럴 때에 충돌을 피하면서 servo를 사용하기 위해 AVR칩의 timer2타이머를 사용해 서보를 사용토록 하자.&lt;br /&gt;
&lt;br /&gt;
# ServoTimer2 라이브러리 설치&lt;br /&gt;
아래 servotimer2 라이브러리 프로젝트 페이지의 [Repository](https://github.com/nabontra/ServoTimer2/blob/master/ServoTimer2.cpp)에서 .zip파일을 다운받은 후,&lt;br /&gt;
아두이노 메뉴 &amp;gt; 스케치 &amp;gt; 라이브러리 포함하기 &amp;gt; .zip 라이브러리 포함 을 선택해 라이브러리 설치한다.&lt;br /&gt;
&lt;br /&gt;
[ServoTimer2 라이브러리](https://platformio.org/lib/show/1305/ServoTimer2)&lt;br /&gt;
&lt;br /&gt;
# 예제&lt;br /&gt;
```C&lt;br /&gt;
//&lt;br /&gt;
// 서보의 작동범위를 테스트해보자.&lt;br /&gt;
// 0~5까지 시리얼 입력에 따라 servopin에 연결된 서보가 특정한 각도로 움직인다.&lt;br /&gt;
//&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;ServoTimer2.h&amp;gt;&lt;br /&gt;
#define servopin 8&lt;br /&gt;
&lt;br /&gt;
ServoTimer2 myservo;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Serial.println(&amp;quot;ServoTimer2 Test&amp;quot;);&lt;br /&gt;
  myservo.attach(servopin);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
  if (Serial.available()){&lt;br /&gt;
    int val = 0;&lt;br /&gt;
    int selection = Serial.read();&lt;br /&gt;
    switch(selection){&lt;br /&gt;
      case '0':&lt;br /&gt;
        val = 0;&lt;br /&gt;
        break;&lt;br /&gt;
      case '1':&lt;br /&gt;
        val = 500;&lt;br /&gt;
        break;&lt;br /&gt;
      case '2':&lt;br /&gt;
        val = 1000;&lt;br /&gt;
        break;&lt;br /&gt;
      case '3':&lt;br /&gt;
        val = 2000;&lt;br /&gt;
        break;&lt;br /&gt;
      case '4':&lt;br /&gt;
        val = 2300;&lt;br /&gt;
        break;&lt;br /&gt;
      case '5':&lt;br /&gt;
        val = 2500;&lt;br /&gt;
        break;&lt;br /&gt;
      &lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(val);&lt;br /&gt;
    myservo.write(val);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
기본적인 사용법은 기본 servo 라이브러리와 동일하다.&lt;br /&gt;
그런데 write() 함수에 들어가는 값은 각도가 아니라 1000~3000 사이의 값. &lt;br /&gt;
값을 조정해가며 테스트를 통해 상한과 하한을 찾아내자.&lt;br /&gt;
&lt;br /&gt;
* 참고&lt;br /&gt;
https://platformio.org/lib/show/1305/ServoTimer2/examples&lt;br /&gt;
&lt;br /&gt;
[[category:Interrupt]]&lt;/div&gt;</summary>
		<author><name>Doguin</name></author>	</entry>

	</feed>