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

총 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
,

OrCAD 란?

OrCAD 2013. 2. 1. 14:32

 

CAD의 정의

 

CAD는 Computer Aided Designed의 약자입니다.

CAD의 종류에는 크게 Electronic CAD와 Mechanical CAD가 있는데, 전자회로 설계에는 Electronic CAD가 사용되며 종류에는 OrCAD, PCAD 등이 있습니다.

 

참고로 기구, 건축 설계에는 Mechanical CAD가 사용되며 주로 AutoCAD가 사용됩니다.

 

 

 

 

CAD의 목적

 

예전에는 종이를 이용하여 제도를 하고 나서 전자회로도면이 완성되면 도면을 사진 찍어 그 필름을 인쇄회로기판에 접착하여 이를 부식시키는 과정이었습니다.

 

이러한 과정을 거치다 보니 샘플 하나를 만드는데 많은 비용과 시간이 소요되고, 많은 시행착오, 큰 오차율이 발생하였는데, 이러한 문제점을 극복하기 위해 CAD 프로그램이 사용됩니다.

 

 

 

 

Orcad Capture for Windows 특징

 

 

 

 

 

 

 

 

전자 회로를 설계할 경우 회로는 정확히 설계되어야 합니다. 이러한 회로를 직접 설계하여 제작할 수도 있지만 이럴 경우에는 회로구성 및 특성해석에 많은 시간과 비용이 발생하게 됩니다.

따라서 회로를 제작하기 전에 컴퓨터 프로그램으로 계산하고 측정, 평가하는 과정을 거쳐 시간과 비용을 절약하는 것은 요즘에 와서 필수적인 사항이 되었습니다.

 

OrCAD Capture program은 회로 분석을 쉽게 하고, 상징적인 전자회로 도면을 그려서 최종적으로 인쇄회로기판 제작하는Netlist file을 생성하는 것입니다.

OrCAD Capture program은 여러 가지 종류의 Netlist 형식을 지원합니다. 기구설계프로그램과 연계하기 위한 AutoCAD, Genertic CAD등에 필요한 DXF 파일을 Netlist 작성시에 생성할 수 있으며, EDIF, VHDL, Verilog HDL과 다른 전자회로 설계 프로그램으로도 Netlist 파일을 생성할 수 있습니다.

 

부품 Library는 약 44,000개 이상이 있으며 새롭게 부품 혹은 심볼을 생성하기 쉽습니다.

아직 데이터에 한글이 사용되면 문제가 종종 발생하는 문제가 있어 영문과 숫자만 사용하는 게 좋습니다.


원문 : http://whiteat.com/60420

 

'OrCAD' 카테고리의 다른 글

단축키, Orcad Capture  (0) 2013.05.29
Tool palette bar, OrCAD Capture for Windows  (0) 2013.05.16
OrCAD Capture for Windows [Option menu]  (0) 2013.03.30
OrCAD Capture for Windows  (0) 2013.03.18
OrCAD 파일 정보  (0) 2013.02.24
Posted by WhiteAT
,

 

실험 키트

 

WAT-AVR128 모듈 알아보기

WAT-IO&ADC 모듈 알아보기

 

 

 

 

 

 

 

ATMEGA128 모듈에 연결

 

WAT-AVR128 모듈의 PORTA는 LED, PORTB는 DIP SWITCH, PORTC는 FND SELECT, PORTE는 FND DATA, PORTE는 ADC 에 연결하여 PC 프로그램에서 제어 및 상태를 실시간으로 모니터링 하는 예제입니다.

 

 

 

WAT-AVR128 모듈

WAT-IO&ADC 모듈

PORTA

FND DATA

PORTB

 

PORTC

FND SELECT, ROTARY SWITCH

PORTD

DIP SWITCH

PORTE

LED

PORTF

ADC

 

 

ATEMGA128 펌웨어 코드

  /*

    USART0 로보드의상태PC로전송

    PC에서LED, BUZZER, FND 제어

    AVRStudio 4.18

*/

 

#include <avr/io.h>

#include "WAT128.h"

 

BYTE g_FNDData[4]={1,2,3,4};

BYTE g_BUZZER = 0;

BYTE g_LED = 0;

 

UINT16 g_adcCDS;    // CDS 값보관

UINT16 g_adcVR;    // 가변저항값보관

 

void OperDisplayFND()

{

    DisplayFND4(g_FNDData[0],g_FNDData[1],g_FNDData[2],g_FNDData[3]);

}

 

INT16 g_byteOperPCTXTimer = 0;

void OperPCTX()

{

    if(--g_byteOperPCTXTimer>0)

        return;

 

    PutChar0(0x02);                        // 0 시작신호

    PutChar0(PIND);                        // 1 DIP SWITCH

    PutChar0(GetRotaryInt());             // 2 ROTARY

    PutChar0(g_adcCDS>>8);                // 3 CDS 상위값

    PutChar0(g_adcCDS);                // 4 CDS 하위값

    PutChar0((g_adcVR)>>8 &0xFF); // 5 가변저항상위값

    PutChar0(g_adcVR&0xFF);                // 6 가변저항하위값

    PutChar0(0x03); // 7

    PutChar0(0xCC);                        // 8 체크섬

    PutChar0(0x03);                        // 9 끝신호

 

    g_byteOperPCTXTimer = 20;

 

}

 

// 가변저항, CDS 값을ADC로읽기

void OperReadADC()

{

    INT16 uiTemp; // 임시변수

 

    g_adcCDS = 0;

    // 노이즈를생각해서값을번읽어평균을낸다.

 

    for(uiTemp = 0; uiTemp<16;uiTemp++)

    {

        ADMUX=0x40 | 0x00;

        ADCSRA = 0xD7;

        while((ADCSRA & 0x10) != 0X10);

        g_adcCDS += ADCL + (ADCH*256);

    }

 

    g_adcCDS>>=4;

 

    g_adcVR = 0;

    // 노이즈를생각해서값을번읽어평균을낸다.

 

    for(uiTemp = 0; uiTemp<16;uiTemp++)

    {

        ADMUX=0x40 | 0x01;

        ADCSRA = 0xD7;

        while((ADCSRA & 0x10) != 0X10);

        g_adcVR += ADCL + (ADCH*256);

    }

 

    g_adcVR>>=4;

}

 

int main()

{

 

    BUZZER_INIT; // BUZZER 초기화

    OpenSCI0(115200);    // USART 0 열기 

    InitFND4(); // FND 초기화 

    InitADC();    // ADC 초기화

 

    DisplayFND4(3,4,5,6);

    InitRotary();

    

    DDRD = 0x00; // 딥스위치를입력으로설정

    DDRE = 0xFE; // LED

 

 

    while(1)

    {

        BUZZER_OFF;

        OperDisplayFND();

        OperReadADC();

        

        OperPCTX();

 

        if(0x02 ==GetByte0())

        {

            UINT16 uiData = 0;

            uiData = GetByte0(); //1

            uiData<<=8;

            uiData += GetByte0(); //2

 

            //buzzer

            g_BUZZER = GetByte0();

 

                

            g_LED =    GetByte0(); //4

            GetByte0(); //5

            GetByte0(); //6

            GetByte0(); //7

            if(0xCC == GetByte0() && 0x03 == GetByte0() )

            {

                if( g_BUZZER)

                {

                    BUZZER_ON;

                    DelayMS(2);

                }

 

                // PC에서받은LED 값을출력

                PORTE =~((g_LED)&0xFC);

 

                // FND 표시

                g_FNDData[0]=((uiData/1000)%10);

                g_FNDData[1]=((uiData/100)%10);

                g_FNDData[2]=((uiData/10)%10);

                g_FNDData[3]=(uiData%10);

            }

        }    

    }

} 

 

윈도우 코드(통신 처리 부분)

try

{

        // 이번에 수신된 데이터 m_byteArray(QUEUE) 에 넣기

        for( int i=1; i<=nRcvSize; i++ )

        {

            m_byteArray.Add(m_CommPort.m_byRcvBuf[i]);

        }

        

        // 시작 신호 체크

        while(m_byteArray.GetSize()>0)

        {

            if(m_byteArray.GetAt(0) != 0x02)

            {

                m_byteArray.RemoveAt(0);

                continue;

            }

            else

            {

                break;

            }

        }

        

        CString strData;

        CString strTemp;

        if(m_byteArray.GetSize()>=10)

        {

            if(m_byteArray.GetAt(0) == 0x02 && m_byteArray.GetAt(9) == 0x03)

            {

                // DIP SWITCH 체크

                byteTemp = m_byteArray.GetAt(1);

                

                UpdateData(TRUE);

                m_bDIP8 = ((byteTemp & 0x80)!=0x80);

                m_bDIP7 = ((byteTemp & 0x40)!=0x40);

                m_bDIP6 = ((byteTemp & 0x20)!=0x20);

                m_bDIP5 = ((byteTemp & 0x10)!=0x10);

                m_bDIP4 = ((byteTemp & 0x08)!=0x08);

                m_bDIP3 = ((byteTemp & 0x04)!=0x04);

                m_bDIP2 = ((byteTemp & 0x02)!=0x02);

                m_bDIP1 = ((byteTemp & 0x01)!=0x01);

                

                // 로터리 스위치 값 읽기

                m_strRotary.Format("%d",m_byteArray.GetAt(2));

                

                // CDS 값 읽기

                uiTemp = m_byteArray.GetAt(3);

                uiTemp <<=8;

                uiTemp += m_byteArray.GetAt(4);

                m_prgCDS.SetPos(1023 - uiTemp);

                

                // 가변저항 값 읽기

                uiTemp = m_byteArray.GetAt(5);

                uiTemp <<=8;

                uiTemp += m_byteArray.GetAt(6);

                m_prgVR.SetPos(1023 - uiTemp);

                

                // 화면 갱신

                UpdateData(FALSE);                

            }

            

            // 마지막에 처리한 데이터 보기

            for(int i=0;i<10;i++)

            {

                strTemp.Format( "%02X ", m_byteArray.GetAt(i) );

                strData+=strTemp+ " ";

            }

            strData+= "\n";

            

            m_byteArray.RemoveAt(0,10);            

        }        

        

        m_ReceiveData = strData;        

        UpdateData(FALSE);

        

}

catch (CException* )

{

        

}

 

 

윈도우 프로그램에서 FND에 5634, LED 모두 OFF 값을 전송하며 ATMEGA128 보드에서 딥 스위치4번 OFF, CDS값 최대, 가변저항 값 최소, 로터리 스위치 값 3을 전송되면 아래와 같이 됩니다.

< WAT-IO&ADC에 연결한 윈도우 프로그램 >

윈도우 프로그램에서 FND에 5667, LED 3,5,7번 ON 값을 전송하며 ATMEGA128 보드에서 딥 스위치1,3,5,7,번 ON, CDS값 최대, 가변저항 값 최대, 로터리 스위치 값 9을 전송되면 아래와 같이 됩니다.


 

 

다운로드



매뉴얼: pdf.gif WAT-IO_ADC매뉴얼.pdf

펌웨어EX_09_03.zip

윈도우 프로그램(MFC 6.0):실행파일.EXE

윈도우 프로그램(C# 2008): 실행파일.EXE
(
실행파일의 소스코드는 제품과 함께 제공됩니다.)

 


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


Posted by WhiteAT
,