본문 바로가기

[Microchip]/PIC16F

[PIC16F723] RF 전송 테스트 - 무선으로 ACD값 그래프 표시 하기

 [PIC16F723] RF 전송 테스트 - 무선으로 ACD값 그래프 표시 하기

 

 

PIC16F723은 마아크로칩사의 저렴한 저전력  MCU(실제 쇼핑몰에서 600원대에 구매 했다)이다. 저전력으로 구동할 수 있는 어플리케이션으로 RF가 좋은데 915(433)Mhz RF 모듈로 ADC값을 전송하는 테스트를 해 보았다.

 

 

 테스트 보드는 기존에 다른 용도로 제작되었던 보드인데 핀맵이 호환되므로 PIC16F723 보드를 연결하여 사용이 가능하다.

 

 

 

RF모듈 드라이버 코드

 

//-----------------------------------------------------------------------------
#define NRF_PWR_UP                   BIT6
#define NRF_PWR_HIGH()     Sbi(PORTB, NRF_PWR_UP)
#define NRF_PWR_LOW()     Cbi(PORTB, NRF_PWR_UP)

 

#define NRF_TXEN                     BIT3
#define NRF_TXEN_HIGH()     Sbi(PORTA, NRF_TXEN)
#define NRF_TXEN_LOW()     Cbi(PORTA, NRF_TXEN)


#define NRF_TRX_CE                   BIT7
#define NRF_TXCE_HIGH()     Sbi(PORTB, NRF_TRX_CE)
#define NRF_TXCE_LOW()     Cbi(PORTB, NRF_TRX_CE)

 

#define NRF_CS_PORT      PORTC
#define NRF_CS_BIT      BIT2

#define NRF_CS_HIGH()     Sbi(NRF_CS_PORT, NRF_CS_BIT)
#define NRF_CS_LOW()     Cbi(NRF_CS_PORT, NRF_CS_BIT)

 

#define NRF_DR_BIT      BIT2
#define NRF_GET_DR()     (PORTB&NRF_DR_BIT)

#define NRF_AM_BIT      BIT3
#define NRF_GET_AM()     (PORTB&NRF_AM_BIT)

 

 

#define NRF_SendByte     SPI0_WriteReadByte
#define NRF_InitSpi()     SPI0_Init()
#define NRF_SpiSpeed_Low()    SPI0_SetSpeed(SPI_SPEED_1MHZ)
#define NRF_SpiSpeed_High()    SPI0 _SetSpeed(SPI_SPEED_4MHZ)

 

 

#define NRF_PORT_INIT()     Cbi(TRISB, (BIT6|BIT7));Sbi(TRISB, (BIT2|BIT3));Cbi(ANSELB, (BIT2|BIT3|BIT6|BIT7));\
          Cbi(TRISA, BIT3);Cbi(ANSELA, BIT3);\
          Cbi(TRISC, BIT2);
//-----------------------------------------------------------------------------

 

 

 

PIC16F723 RF테스트 동영상

저렴하게 구성한 RF모듈임에도 실제 전송되는 속도는 2ms로 아주 고속으로 전송이 가능하다.

아래는 PIC16F723 보드에서 가변저항의 ADC값을 RF로 전송하는 테스트 데모이다.

 

 

반응형