사진 왼쪽에 있는 ATTINY85 모듈 WS2812B 네이픽셀 RGB를 구동해보려고 한다. 일반적으로 연결 하는 부분은 아두이노같지만, 마지막 업로드 하는 부분에서 다르다. 이전에 이런 작업을 하지 않아도 따라하면 될 만큼 써보겠다. 왜냐면, 선 행동 후 정확하게 알기 위해서다.


엄청 자세한 내용은 https://blog.naver.com/roboholic84/220388177048에서 확인 하면 된다. 나도 이 게시물을 보고 따라 했다.


일단 대략적인 과정이다

 1)프로그램 다운로드 - 일단 소스를 작성할 수 있는 프로그램다운 받자!

 2)프로그램 실행 - 설치된 Arduino IDE - Digistump Release 프로그램실행 하자! 

 3)ATTINY85 보드 설정 - 가지고 있는 ATTINY85 모듈에 맞는 보드를  선택 하자!

 4)업로드 테스트 - 첫 업로드를 해보자!

 5)ATTINY85에 업로드 - 여기부터가 일반 아두이노업로드 하는 방법과 다르니 잘 보자.

 6)네오픽셀 연결 - ATTINY85네오픽셀연결하자

 7)네오픽셀동작할 수 있는 소스작성해보자. 



1)일단 소스작성할 수 있는 프로그램다운 받자! 

    https://github.com/digistump/DigistumpArduino/releases/download/v1.5.8C/DigistumpArduinoInstall1.5


  실행파일 이므로 다운로드 받고 설치 하자!

  

2)설치된 Arduino IDE - Digistump Release 프로그램실행 하자! 

아래 사진의 아이콘을 더블클릭하여 실행 하면 된다.

<실행 사진>


3)가지고 있는 ATTINY85 모듈에 맞는 보드를  선택 하자!

   도구 > 보드 > Digispark (Default - 16.5mhz)

<Digispark (Default - 16.5mhz 선택 사진>


4)첫 업로드를 해보자!

파일 > 예제 > Digispark_Examples > Start 순으로 클릭 한다.


5)여기부터가 일반 아두이노업로드 하는 방법과 다르니 잘 보자.

일단 보자

업로드 버튼 누르고 시간이 지나면  아래와 같은 메시지표시 된다.


Running Digispark Uploader... 

Plug in device now... (will timeout in 60 seconds)


이때 ATTINY85모듈을 컴퓨터 USB에 연결 한다.


그럼 아래와 같이 동작하고


> Please plug in the device ... 

......

>> Micronucleus done. Thank you!


Thank you!가 나오면 끝 그리고 모듈에서 빤짝빤짝 빛나고 있는 LED확인 할 수 있다


이제 목표했던 네오픽셀 RGB LED를 연결할 차례다!


6)ATTINY85네오픽셀연결하자

<ATTINY85&네오픽셀 연결 사진>


사진처럼 잘 연결해 주자.

5V    - +5V

P1    - DI -> 프로그램을 작성할때 중요한 것이므로 잘 기억하자

GND - GND


7)네오픽셀동작할 수 있는 소스작성해보자. 

아래 동영상은 예전에 만들어 놨던 하트에 ATTINY85를 연결하여 LED를 동작시킨 것이다. 예제만 살짝 바꾼것이니 그냥 따라하면 된다.


네오픽셀 사용하는 방법은  빨간색으로 강조한 부분이다. 기본 설정값(1)가지고 네오픽셀 제어할 수 있는 객체만들고(2), 초기화(3) 하고, 각각의 LED의 색을 지정(4)하고, 보여 준다(4).

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson

// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include <Adafruit_NeoPixel.h>


// Which pin on the Arduino is connected to the NeoPixels?

#define PIN            1


// How many NeoPixels are attached to the Arduino?

#define NUMPIXELS      23


// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.

// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest

// example for more information on possible values.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


int delayval = 500; // delay for half a second


void setup() {

  pixels.begin(); // This initializes the NeoPixel library.

}


void loop() {

  // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.

  for(int i=0;i<NUMPIXELS;i++){

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255

    pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.

    pixels.show(); // This sends the updated pixel color to the hardware.

    delay(delayval); // Delay for a period of time (in milliseconds).

  }

}





(1)네오픽셀에 DI를  ATTINY85 P1핀연결하기 위해서 PIN1로 한다.



(1)네오픽셀 LED수를 설정 한다. 4개면 4 20개면 20으로 해준다.




(2)네오픽셀제어하기 위해 변수에 네오픽셀 객체를 만들어 저장 한다. 기본 예제는 NEO_GRB 가 아니고 NEO_RGB로 되어 있으니 고쳐 준다.



(3)초기화 한다.






(4)setPixelColor() 함수로 원하는 위치에 원하는 색을 설정한다. (5)show()함수실행하기 전까지지정한 색으로 표시 되지 않는다.  



반응형
블로그 이미지

두리뭉실2:해피파인더그룹

레고가 좋고~ PBL 매력에 빠졌으며~ 취미로 개발하는 두리둥실

,