WAT-LED

전자 키트 2013. 4. 8. 16:15
 


WAT-AVR128 모듈과 연결하여 LED ON/OFF 실험을 할수 있는 모듈입니다.

 

 

 



 

 

LED 를 타원 형태로 배치하여 LED 회전(정방향, 역방향), 이동 등의 다양한 실험을 할 수 있습니다.

 

 

 

 

/*

  EX_01_01.c

 

  PORTE에연결된LED 무한히 회전하기

 

  Main Clock : 11.0592Mhz 

 

  AVRStudio  4.18

  2012-01-08

 

  홈페이지:  http://whiteat.com

  쇼핑몰:    http://kit128.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()

{

         DDRE = 0xFF; // ALL OUTPUT

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

 

         while(1)

         {

                  Delay();

 

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

                  {

                           // 처음LED ON 되게

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

                  }

                  else                               // 그렇지않다면

                  {

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

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

                  }

         }

}

 

 


Posted by WhiteAT
,

 

WAT-CURRENT 매뉴얼: 다운로드



제품 소개

   

 

 

 

WAT-LED Driver 2 모듈은 0 ~ 2A 사이의 전류를 제어할 수 있는 모듈입니다. 주로 파워 LED 밝기 제어, DC 모터 속도 등에 사용되며 MCU의 PWM으로 제어됩니다. 본 제품의 가장 큰 장점은 타 제품에 비해 열이 거의 발생하지 않는 것입니다.

 

 

항목

내용

출력 전류

0 ~ 2 A

최대 입력전압

35V

크기

50 mm x 40 mm

커넥터

3.5mm 터미널 단자

 

 

 

 

구조

    

 

 

 

 

 

크기

 

 

 

 

 

 

 

 

 

파워 LED 제어

 

 

ATEMGA128의 PWM 듀티비를 변경하여 파워 LED 밝기를 정밀하게 제어할 수 있습니다. ATMEGA128와 정전류 모듈 입력 커넥터를 아래와 같이 연결합니다.

 

 

번호

핀명

설명

1

VCC

ATMEGA128 의 5V에 연결

2

PWM

ATMEGA128 PORTB.5(OC1A) 에 연결

3

OE

ATMEGA128 PORTB.4 에 연결

4

GND

ATMEGA128 그라운드

5

VCC_LED

LED 전원(12V 별도 전원)

6

GND_LED

LED 그라운드

 

 

듀티(duty)를 변경하면 파워 LED 밝기의 변화를 확인 할 수 있습니다. Duty 비를 10% 로 하면 출력 전류는 200 mA 가 됩니다.

 

< 듀티비 10% (약 200mA)일 때의 밝기 >

 

 

 

 

< 듀티비 30% (약 600mA)일 때의 밝기 >

 

 

 

 

 

< 듀티비 100% (약 2A)일 때의 밝기 >

 

 

'정전류 모듈' 카테고리의 다른 글

정전류 모듈, WAT-CURRENT VER1  (0) 2011.12.23
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
,

 

PORTC0 -> PORTC7 -> PORTC0 에 연결된 LED 를 무한히 좌우/상하로 이동하는 예제입니다.

 

< 시작화면: PC0 LED 를 ON 합니다. >

 

 

 

 

 

< 100mS경과: PC1 의 LED 를 ON 합니다. >

 

 

 

 

< 200mS경과: PC1 의 LED 를 ON 합니다. >

 

 

 

 

 

< 700mS경과: PC7 의 LED 를 ON 합니다. >

 

 

전체 소스 CodeVision 1.24.0 용

 

 

/*********************************************

LED 좌우(상하)로이동하기

 

PC0 -> PC1 -> PC2 -> PC3 -> PC4 -> PC5 -> PC6 -> PC7

-> PC6 -> PC5 -> PC4 -> PC3 -> PC2 -> PC1 -> PC0 순으로

무한이이동하는예제

 

 

PORTC ==> LED 연결

 

 

 

Tools : Codevision

 

http://avr128.com

*********************************************/

 

 

#include <mega128.h>

 

// time delay for us

void Delay_us(char time_us)        

{

    register char i;

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

    {

    #asm

         PUSH R0 ;         // 2 cycle +

         POP R0 ;         // 2 cycle +

         PUSH R0 ;         // 2 cycle +

         POP R0 ;         // 2 cycle +

 

 

    #endasm

    }

}

 

// time delay for ms

void Delay_ms(unsigned int time_ms)    

{

    register unsigned int i;

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

    {

        Delay_us(250);

        Delay_us(250);

        Delay_us(250);

        Delay_us(250);

    }

}

 

void main(void)

{

    unsigned char byteData=0xFE;

    char bUp= 1; // 1:UP, 0: DOWN

 

    // 포트C 를출력으로설정

    DDRC=0xFF;

      

    // PB0 LED ON

    PORTC = byteData;

 

 

    while (1)

    {

    Delay_ms(100);

         if(byteData == 0x7F)

         {

             bUp = 0; // up -> down

        }

        else if(byteData == 0xFE)

         {

             bUp = 1; // down -> up

        }        

        if(bUp)

        {

        byteData <<= 1;

        byteData |= 1;

    }

    else

    {

    byteData >>= 1;

        byteData |= 0x80;

      

    }

      

      

         PORTC = byteData;

           

 

         

 

 

    }     

}

 

 

 

 

 

 

 

주요 부품

ATMEGA128 - 1EA

LED – 8EA

POWER 5V/1A

 

 

 



실행파일 다운로드

이번 예제가 추가되면서 실행파일이 업데이트 되었습니다.

이 예제를 사용하기 위해서는 최신 버전(0.2.1.2 이상)으로 패치 하시기 바랍니다.

 

실행파일:   

 

 

프로젝트 파일(소스 포함):  

 

 

 

 

 

 

 

 

Posted by WhiteAT
,

  

PORTB0 ~ PORTB7 에 연결된 LED 를 교차 ON/OFF 하는 예제입니다.

 

< 시작화면: PB1, PB3, PB5, PB7 의 LED 를 ON 합니다. >

 

 

 

 

 

< 100mS경과: PB0, PB2, PB4, PB6 의 LED 를 ON 합니다. >

 

 

 

 

전체 소스 CodeVision 1.24.0 용

 

 

/*********************************************

LED 교차 점소등하기

 

PA0, PA2, PA4, PA6 이 점등되면

PA1, PA3, PA5, PA7 이 소등되어

교차 점소등 함

 

PORTB ==> LED 연결

 

 

 

Tools : Codevision

 

http://avr128.com

*********************************************/

 

 

#include <mega128.h>

 

// time delay for us

void Delay_us(char time_us)        

{

    register char i;

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

    {

    #asm

         PUSH R0 ;         // 2 cycle +

         POP R0 ;         // 2 cycle +

         PUSH R0 ;         // 2 cycle +

         POP R0 ;         // 2 cycle +

         PUSH R0 ;         // 2 cycle +

         POP R0 ;         // 2 cycle +

 

    #endasm

    }

}

 

// time delay for ms

void Delay_ms(unsigned int time_ms)    

{

    register unsigned int i;

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

    {

        Delay_us(250);

        Delay_us(250);

        Delay_us(250);

        Delay_us(250);

    }

}

 

void main(void)

{

 

    // 포트 B 를 출력으로 설정

    DDRB=0xFF;

      

    // PB1, PB3, PB5, PB7 의 LED 를 ON

    PORTB = 0x55;

 

 

    while (1)

    {

    Delay_ms(100);

        // PB0, PB2, PB4, PB6 의 LED 를 ON

         PORTB = 0xAA;

         

        Delay_ms(100);

        // PB1, PB3, PB5, PB7 의 LED 를 ON

         PORTB = 0x55;

    }     

}

 

 

 

 

 

 

주요 부품

ATMEGA128 - 1EA

LED – 8EA

POWER 5V/1A

 

 

 



실행파일 다운로드

이번 예제가 추가되면서 실행파일이 업데이트 되었습니다.

이 예제를 사용하기 위해서는 최신 버전(0.2.1.2 이상)으로 패치 하시기 바랍니다.

 

실행파일:

 

 

프로젝트 파일(소스 포함):

 

 

 

 

 

 

Posted by WhiteAT
,