아트메가/이론

아트메가128 usart통신하기(2) 블루투스

원원 2017. 7. 3. 16:24

 

 

 

안녕하세요. 오늘은 아트메가와 핸드폰 앱을통해서 블루투스로 LED를 제어해보겠습니다.

 

아트메가128 usart통신하기(1) 여기 글에 usart에 대한 설명이 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h> 
#define F_CPU 16000000UL 
volatile unsigned char flag;
ISR(USART0_RX_vect)
{
    flag=UDR0;
}
void init() 
{
    DDRA=0xff;
    UCSR0A=0x00;
      UCSR0B=0x98;
      UCSR0C=0x06;
      UBRR0H=0;
      UBRR0L=103
    SREG=0x80;
}
int main(void)
    init(); 
    while(1)
    {
        if(flag=='G')
        {
            PORTA=0x01;
        }
        if(flag=='Q')
        {
            PORTA=0x00;
        }
    }
}
cs
 

5번째줄 - 데이터를 수신받아서 저장할 받을 변수입니다.

6번~9번째줄 - 수신인터럽트가 발생하면 flag변수에 수신값저장

12번째줄 - LED

13~18번째줄 - USART레지스터 설정

20~34 'G'가 수신되면 LED키고 'Q'가 수신되면 LED끄기

 

블루투스 모듈은 HC-06을 사용했고

어플은 블루투스RC카컨트롤러를 사용했습니다. ↑버튼을 누르면 'G'가 전송되고 손을 때면 'Q'가 전송됩니다.

 

 

 

 

 

블루투스모듈을 사용할 때 

****** 블루투스모듈 : RX 아트메가 TX

****** 블루투스모듈 : TX 아트메가 RX

 

이런식으로 연결해야합니다. RX-RX, TX-TX 같은걸로 연결하면 안돼요..

RX : 받는쪽, TX : 보내는쪽