본문 바로가기

[INTERFACE]/Bluetooth

(39)
[nRF52 xBee EVM] Arduino BLE HID Keyboard Test BLE테스트를 위한 기본 설정은 [nRF52 xBee EVM] Arduino BLE UART Test 를 참고로 해서 설정해 주면 되고 BLE 라이브러리는 BLEPeripheral 을 사용 할 수 있다. BLE HID Keyboard 예제를 이용해서 키 입력에 따른 Key값이 전송 되도록 했다. #include #include // define pins (varies per shield/board) #define BLE_REQ 6 #define BLE_RDY 7 #define BLE_RST 4 //#define ANDROID_CENTRAL // create peripheral instance, see pinouts above BLEHIDPeripheral bleHIDPeripheral = BLEHIDPe..
[nRF52 xBee EVM] Arduino BLE UART Test nRF52의 BLE기능을 Arduino에서 사용하기 위해 소프트디바이스 설정과 BLE 라이브러리 설치를 해야 한다. 소프트디바이스 설정은 [nRF52 xBee EVM] BLE 테스트 - BLE UART(IAR) 를 참고 해서 설정하고 Arduino IDE에서 사용여부를 설정해 주면 된다. BLE 라이브러리는 BLEPeripheral 을 설치 해 주면 된다. 기본 으로 제공되는 BLE UART 예제를 수정해서 앱에서 전송되는 UART 값에 따라 LED On/Off 하는 예제를 작성해 보았다. #include #include "BLESerial.h" // create ble serial instance, see pinouts above BLESerial BLESerial(BLE_REQ, BLE_RDY, BL..
[nRF52 xBee EVM] Arduino SPI 테스트 - W5500 Ethernet Webserver [nRF52 xBee EVM]보드를 이용하여 SPI 테스트를 하기위해 이더넷 모듈은 W5500 EVM보드를 이용하여 테스트 해 보았다. W5500 EVM 모듈의 CS핀은 IO27에 연결되어 있다. 이더넷 모듈의 라이브러리는 Ethernet2를 사용하였다. void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.print("server is at "); // start the Ethernet connection and the server..
[nRF52 xBee EVM] Arduino 테스트 - 내장 온도 측정하기 nRF5 SDK에 온도 센서관련 예제가 있다. /examples/periphera/temperature ([nRF52 xBee EVM] 기본 동작 테스트 - temperature 테스트 (IAR) 참고) 하지만 아두이노 코드에 뒤져봐도 nrf_temp.h 파일이 없다. 예제 폴더에서 복사해서... #include "nrf_temp.h" void setup() { Serial.begin(115200); } int32_t get_temperature(void) { int32_t temp; NRF_TEMP->TASKS_START = 1; /** Start the temperature measurement. */ /* Busy wait while temperature measurement is not finis..
[nRF52 xBee EVM] Arduino 테스트 - SSD1306 OLED 에 ADC값 출력하기 [xBee-S EVM] 보드를 이용하면 I2C 인터페이스의 OLED를 연결해서 테스트 가능하다 Engineer's LAB nexp.tistory.com Arduino에서 SSD1306 OLED제어를 위한 라이브러리를 사용하면 쉽게 LCD에 출력 할 수 있다. SSD1306 라이브러리 기본예제를 수정해서 OLED에 nRF52 ADC값을 출력하는 예제를 구동하면 정상 동작하는 것을 확인 할 수 있다. void loop() { char buf[32]; sensorValue = analogRead(A1); sprintf(buf,"adc:%d",sensorValue); Serial.println(sensorValue); display.clearDisplay(); display.clearDisplay(); disp..
[nRF52 xBee EVM] Arduino - ADC 테스트 [nRF52 xBee EVM] 보드로 ADC테스트 하려고 Arduino 코드를 실행했는데 ADC값이 계속 0으로 나온다. nRF52 Arduino는 왜 이렇게 문제가 많지? 아무튼 하나씩 또 해결 해 가보자 ADC를 P1로 할당 했는데... 지원을 하지 않는다. P0.2 부터 SAADC를 지원한다. 표준 핀맵으로 ADC 핀을 할당 했는데... 아무래도 하드웨어 수정이 필요 할 것 같다. nRF52 핀맵을 A2로 연결 해서 테스트 하니 정상적으로 동작 한다. void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(115200); } // the loop routine runs over and over ag..
[nRF52 xBee EVM] Arduino 테스트 - PCF8574 I2C nRF52 xBee EVM 보드로 I2C IO확장 PCF8574보드를 테스트를 하려고 Arduino 코드를 실행 했는데 I2C가 동작 하지 않는다 nRF5 SDK 의 IAR 툴을 이용하여 I2C 테스트할 때는 문제가 없었는데... Wirte 함수에서 멈춰 있다. 왜 그렇지? 옵션중에 -DNRF52 가 있는데... -DNRF52를 DNRF52810으로 해 주어야 하는 것 아닐까? 플래그 설정을 -DNRF52810_XXAA 로 변경하니 에러가 많이 발생한다. 다시 DNRF52로 설정하면 컴파일은 잘 되지만 I2C가 정상 동작 하지 않는다. Generic_nRF52810.build.extra_flags=-DNRF52 NRF_TWIM1 를 0으로 바꾸면 어떨까? I2C쪽 코드를 살펴보니 TowWire 설정이 N..
[nRF52 xBee EVM] ARDUINO 성능 측정 nRF52를 이용하여 Arduino에서 제공하는 digitalWrite()함수를 이용해서 GPIO 제어 속도를 측정 해 보았다. 600ns정도로 측정된다. 역시 많이 느리군... #define LED_PIN1 17 void setup() { Serial.begin(115200); pinMode(LED_PIN1, OUTPUT); } void loop() { digitalWrite(LED_PIN1, 1); digitalWrite(LED_PIN1, 0); } GPIO 직접 제어 하면 더 빠른데 직접 제어 함수가 어디에 정의 되어 있을까? digitalWrite() 함수를 보면 아래와 같이 제어 하고 있다. void digitalWrite( uint32_t ulPin, uint32_t ulVal ) { if (..

반응형