아두이노를 처음 접하는 초보자들에게 적합한 센서 세트입니다.

총 37 가지이며 

LED, 스위치 등의 간단한 센서부터

자기장을 감지하는 홀센서, 조이스틱, 불꽃감지 등의 센서가 포함되어 있습니다.









자세한 내용과 소스코드는 각 항목을 클릭하면 됩니다.

  1. XY조이스틱 모듈
  2. 릴레이 모듈
  3. 큰소리 감지 모듈
  4. 작은소리 감지 모듈
  5. 트래킹 센서
  6. 적외선 감지 센서
  7. 불꽃,화염 감지 센서
  8. 리니어 홀 자기 센서
  9. 터치 감지 센서
  10. 아날로그 온도 센서
  11. 버저/부저 모듈
  12. 패시브 버저 모듈
  13. RGB LED 모듈 – DIP
  14. RGB LED 모듈 – SMD
  15. RED,YELLOW 2LED 모듈
  16. 2LED 모듈
  17. Reed Switch 모듈
  18. Mini Reed Switch 모듈
  19. 심장박동(Heartbeat) 측정 모듈
  20. 7 color flash 모듈
  21. 레이저 출력 모듈
  22. 버턴 모듈
  23. 충격센서 모듈
  24. 로터리 인코더 모듈
  25. 매직 라이트 컵 모듈
  26. 기울기(Tilt) 스위치 모듈
  27. 기울기볼(Tilt Ball)스위치 모듈
  28. CDS 모듈
  29. DHT 디지털 온습도 센서 모듈
  30. Analog Hall Sensor 모듈
  31. Hall Magnetic 센서 모듈
  32. 18B20 온도 센서 모듈
  33. 써미스터 센서 모듈
  34. IR 송신 모듈
  35. IR 수신 모듈
  36. Knock/Tap Sensor 모듈
  37. 포토 인터럽터 센서 모듈

 

Posted by WhiteAT
,

 

먼저 서보모터에 대한 설명을 참조하세요

http://whiteat.com/58171

 

 

 

아날로그 서보 모터 제어

 

ZEO-S 모듈로 간단하게 아날로그 서보 모터를 제어할 수 있습니다.

 

 

 

 

ZEO-S 모듈에 연결

 

ZEO-S 모듈

서보 모터

3.3V (우측 1번핀)

VCC

PA0 (PWMA-1)

Control

GND (우측 20번 핀)

GND

 

서보모터 컨트롤 핀을 ZEO-S 모듈의 PA0 핀에 연결합니다.

서보모터의 VCC 핀은 ZEO-S 모듈의 3.3V에 연결하고 GND끼리 연결합니다.

 

 

 

 

C# 소스 코드

 

먼저 C#으로 작성된 전체 소스를 보면 아래와 같습니다.

 

namespace ZEO_SERVOApp

{

public partial class Form1 : Form

{

// ZEO 모듈 제어용 클래스 선언

ZeoLib ZEO = new ZeoLib();

 

UInt16 MAX_PWMA = 0;

 

public Form1()

{

InitializeComponent();

 

// 트랙바(슬라이드바)의 최소, 최대값 설정

this.trackBar1.Minimum = 700;

this.trackBar1.Maximum = 2300;

}

 

private void Form1_Load(object sender, EventArgs e)

{

// ZEO 모듈 열기

this.ZEO.Open();

 

// ZEO 모듈 초기화

this.ZEO.InitZeo(0);

 

// PWMA에 20mS 의 주기의 PWM 생성

this.ZEO.InitPWMA_US(20000, 10, 20, 20, out MAX_PWMA);

}

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

this.ZEO.Close();

}

 

private void trackBar1_Scroll(object sender, EventArgs e)

{

// 700uS 에서 2300uS 의 ON 신호 발생

this.ZEO.UpdatePWMA(1, Convert.ToUInt16((sender as TrackBar).Value));

}

}

}

 

 

윈도우 폼이 열릴 때 ZEO 모듈을 초기화해 주고 (Form1_Load 함수)

윈도우 폼이 닫힐 때 ZEO 모듈을 종료합니다. (Form1_FormClosing 함수)

그리고 트랙바(슬라이드바)를 움직일때마다 PWMA-1번 핀의 ON 값을 변경해 주면 됩니다.

 

 

 

 

서보 모터 제어 동영상

 

아래의 동영상과 같이 ON 값에 따라 -90도 ~ +90도를 회전합니다.

 

 


 

출처: http://whiteat.com/58172

 

Posted by WhiteAT
,


서보 모터 종류

 

서보 모터는 아날로그 서보 모터와 디지털 서보모터가 있습니다.

큰 차이점은 아날로그 서보 모터는 지속적인 PWM 신호를 주어야 하고 디지털 서보 모터는 해당 서보모터에서 제공하는 프로토콜에 맞게 시리얼 데이터를 줘야 하는 것입니다.

 

아날로그 서보 모터는 PWM 입력이 없을 경우 모터가 고정(Lock)되지 않고 풀리(UnLock)게 되어 힘을 받지 못하게 되고

디지털 서보 모터는 한번의 데이터 전송으로도 해당 각도를 유지하게 됩니다.

 

아날로그 서보 모터의 경우 제품 특성상 약간의 차이가 있을 수 있으나 대부분 조작 방법이 거의 동일합니다. 반면 디지털 서보 모터의 경우 공급업체에서 제공하는 프로토콜을 참조하여 작성 가능하며 업체마다 약간의 차이가 있을 수 있습니다.

 

 

 


 

아날로그 서보 모터








 

핀 명

설명

VCC

전원 (3~5V)

CONTROL

컨트롤 신호

GND

그라운드

 


 

PWM 20mS의 주기로 ON 시간을 0.7mS ~ 2.3mS로 하여 -90도 ~ +90도 까지 제어할 수 있습니다.

 

아래는 ON 시간에 따른 위치입니다.

 

ON시간: 0.7mS

축의 위치: -90도

 

서보 모터 -90 도서보 모터 -90 도 이동

 

 

 

 

ON시간: 1.5mS

축의 위치: 0도

 

서보 모터 0 도서보 모터 0 도 이동


 

 

 

 

ON시간: 2.3mS

축의 위치: +90도

 

 

서보 모터 90 도서보 모터 90 도 이동

 

 


-90도 +90도 사이의 임의의 각으로 이동하려면 ON 시간을 적당히 조절하면 됩니다. 
전체 움직이는 각도(180도)와 ON 시간의 차이(2.3mS -  0.7ms) 는 1.6mS/180도 = 0.0088888mS/1도 가 됩니다.
(즉, 펄스의 HIGH 시간을 0.0088888ms 늘릴수록 서보모터는 1도씩 더 이동하게 됩니다.)
예를 들어 30도에 위치하려면 
 1.5mS(0도 기준) + 0.26mS(30도 이동하려면  0.0088888*30 = 0.26mS ) 이니 1.76mS 만큼 HIGH 를 유지하면 됩니다.

 

 

 

 

파형은 어떻게 만드나요?

 

PWM 파형은 AVR 이나 PIC 등의 MCU으로 구현할 수 있습니다.

만약 PWM 파형 구현이 어려우시다면 Output 포트를 직접 구동할 수도 있습니다.

 

 

// -90 도 이동 예제

PORT = 1 // ON 시킵

Delay(700);// // 700uS 딜레이

PORT = 0;//

Delay(19300);// 19.3mS 딜레이







출처: http://whiteat.com/58171 



 

 

'전자/일반' 카테고리의 다른 글

빵판에서 사용 가능한 푸쉬,리셋 스위치  (0) 2016.04.20
USB2.0 MINI 5p cable 미니5핀 케이블  (0) 2016.03.31
다양한 저항 종류 – 용량  (0) 2016.03.31
체리, ON/OFF 제어 방식  (2) 2012.11.28
PID 제어  (4) 2012.11.28
Posted by WhiteAT
,

 

 

PORTA에 연결된 8개의 LED 를 순차적으로ON 하는 예제입니다. 

 

D0: ●○○○○○○○

D1: ○●○○○○○○

D2: ○○●○○○○○

D3: ○○○●○○○○

D4: ○○○○●○○○

D5: ○○○○○●○○

D6: ○○○○○○●○

D7: ○○○○○○○●

PORTA의 0 ~ 7 포트까지 LED 8개가 연결되어 있고 LED에 불이 들어오게 하려면 해당되는 포트에 '0'을 출력하면 됩니다. D0(PORTA.0에 연결된 LED)부터 D7까지 차례대로 일정시간 ON된 후 OFF 되게 만들어 보겠습니다.

단 마지막 LED 가 ON/OFF 된 후에는 다시 처음으로 되돌아가서 무한 반복해야 합니다.

 

 

 

PORTA 에 대한 실험을 해보겠습니다. 실험에 사용할 회로와 WAT보드의 연결 방법은 아래와 같습니다.

 

 

 

 

 

 

 

 

 

< WAT-AVR128_EXT 보드와 WAT-IO&ADC 보드를 연결 중 >

 

 

 

 

 

< WAT-AVR128_EXT 보드와 WAT-IO&ADC 보드 연결 완료 >

 

 

 






 

 

원문은 http://avr128.com 에 있습니다.

 

 

 

 

 

 

주요 코드

 

main.c 일부

/*

    EX_01_01.c

 

    LED 순차적으로ON 하기

    AVRStudio 4.18

    2011-08-15

 

    http://avr128.com

 

*/

 

#include <avr/io.h>

 

// 일정시간딜레이

void Delay()

{

    register unsigned long i;

    for(i = 0; i < 300000; i++)

    {

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");    

    }

}

 

int main()

{

    DDRA = 0xFF; // ALL OUTPUT

    PORTA = 0xFE;    // PORTA.0 LED ON

 

    while(1)

    {

        Delay();

 

        if(PORTA == 0x7F)    // 마지막LED 가ON 되었다면.

        {

            // 처음LED ON 되게

            PORTA = 0xFE;    // PORTA.0 LED ON

        }

        else                // 그렇지않다면

        {

            PORTA <<= 1;    // 한칸이동한후

            PORTA |= 1;        // 마지막LED 는OFF 되게

        }

    }

}

 

 

 

 

 

 

전체 소스

 

EX_01_01.zip

 

Posted by WhiteAT
,