안녕하세요. 오늘은 아트메가와 핸드폰 앱을통해서 블루투스로 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 : 보내는쪽
'아트메가 > 이론' 카테고리의 다른 글
아트메가128 센서제어하기(ADC제어) 2편 (5) | 2017.07.04 |
---|---|
아트메가128 usart통신하기(3) 컴퓨터 (1) | 2017.07.03 |
아트메가128 usart통신하기(1) (1) | 2017.07.03 |
아트메가128 센서제어하기(ADC제어) 1편 (0) | 2017.06.01 |
아트메가128의 DDRx,PORTx,PINx,포트특징 알아보기 (0) | 2017.05.24 |