I'm free

[nRF] 5. WS2812-네오픽셀 RGB LED 제어 BLE400/core51822 본문

Firmware/nRF

[nRF] 5. WS2812-네오픽셀 RGB LED 제어 BLE400/core51822

freerevival 2022. 10. 25. 17:26

천천히 하려했던 네오픽셀 RGB LED 제어가. 

갑작스런 휴가와 더불어 후다닥 대충 마무리가되어 글을 쓰게됨.

 

일단 결과물....


안쪽에 WS2812 Ring Type -8LED 가 들어가 있습니다

저 제품에 포함된것은 아니고  Ring Type LED를 크기별로 구매를 했었는데. 

8개짜리가 마침 크기가 딱맞아 들었을뿐....


사진과 같이 WS2812를 연결하는 핀은 3개가 필요합니다.

전원 + 

전원 - (GND 공통)

신호 IN

//신호 OUT -  LED 추가 연결시 추가LED의 신호 IN에 연결해주면 같이 제어 가능.

 

배선 결론,

LED에 전원 5V 인가.

nrf gpio pin 1개 사용.

끝.

//참고사항 GND 공통이므로 꼭 잡아줍시다. (같은 전원이면 연결되어있으니 신경꺼도됨.,)

USB충전기를 통해 BLE400에 전원인가.

BLE400의 5V/GND를 LED전원으로 사용.

P06을 제어핀으로 사용하였음.


소스코드.

천천히 직접 제어하려했으나. 아마.?

후다닥 끝내기 위해 GitHub 방문,

https://github.com/lavallc/nrf51-neopixel.git

 

GitHub - lavallc/nrf51-neopixel: WS2812(Neopixel) library for the Nordic Semiconductor 51822 Bluetooth Low Energy ARM SoC.

WS2812(Neopixel) library for the Nordic Semiconductor 51822 Bluetooth Low Energy ARM SoC. - GitHub - lavallc/nrf51-neopixel: WS2812(Neopixel) library for the Nordic Semiconductor 51822 Bluetooth Lo...

github.com

이양반 소스를 받아다가 사용하였다,

처음에 동작을 안해서 소스를 좀 봤는데.

아쉬운 부분도 있지만 꽤나 간결하게 잘 짜여진 소스이다.

오실로스코프까지 대동해서 찍어본결과.

소스대로 아웃풋이 안나오는것을 확인하고.

컴파일러 셋팅문제였다는,..........

 

어째든 그냥 고민안하고 가져다 쓰면 된다. 잘되는 소스다.


#include "nrf_gpio.h"                   // NordicSemiconductor::nRF_Drivers:nrf_gpio
#include "nrf_delay.h"                  // NordicSemiconductor::nRF_Drivers:nrf_delay
#include "neopixel.h"

#define LED_CONTROL		6
#define LED_NUM	8

int main(void)
{
	neopixel_strip_t m_strip;
	neopixel_init(&m_strip, LED_CONTROL, LED_NUM);
	neopixel_clear(&m_strip);
    
  while(true)
  {
		for(int i=0; i<LED_NUM; i++) 
			neopixel_set_color(&m_strip, i, 255,0, 0);
		neopixel_show(&m_strip);
  }
}

간단히 설명하면,

가져온 소스 선언해주고.

// 사용할 변수 선언

// 초기화-변수-제어핀-LED갯수

// LED리셋

 

// LED RGB셋팅

// LED 동작 : 제어핀을 통해 명령 전달.

 

색을 자동으로 변하게 해려면 R,G,B 쪽에 변수를 넣고

일정시간 또는 루프 카운트 마다 수치가 변하도록 하면 된다.




설명 끝//

실제 작업 사진.

저게 다............................. 수작업..................... 한땀....한땀............

와...... 이건 다시 못하겠다,,,,,,,,,,

예~~~~~~전에 쓰던 핸드폰 배터리/충전기 뜯어서 배터리 내장///

버튼도 하나 넣어주고,

전원 스위치도 하나 달아주고.

몇가닥 안되지만 다 기억못하니까 배선도 대충 하나 그려서 연결~//

 

최종 동작 확인 및 고정 (본드칠 덕지덕지)

 

집 내부에 RGB LED등 외에 좌/우에 있는 기존 제품에서 제공하는 LED도 잘 어울리는 편인듯//

 

기본 전원 ON -> RGB 순서로 색 변동

스위치 1회 -> R 색상만 밝아졌다 어두워졌다 반복

스위치 2회 -> G 색상만 밝아졌다 어두워졌다 반복

스위치 3회 -> B 색상만 밝아졌다 어두워졌다 반복

스위치 4회 -> 처음으로.

 

마무리하고픈 마음이 급해서 이정도에서 마무리.

 

ps.

다운로드포트는 밖으로 뽑아놓을껄... 아쉽,

업데이트가 안되네....

(본드 덕지덕지 분해불가 ㅡㅡ)

 

ps2.

저거 오르골이라는 타이틀을 가진 제품인데

배터리넣느라 오르골을 빼버림. ㅋㅋㅋ 저리가.

 

ps3.

아. 사진을 안찍어놨는데.

core51822만 넣었음. BLE400은 너무크고 거추장스러우니까.>?>>??

Comments