구름에서 날씨코드를 직접입력해서 type대로 불빛패턴을 알고싶은데 에러가 뜨네요 도와주세요~
#include "Adafruit_WS2801.h"
#include "SPI.h" // Comment out this line if using Trinket or Gemma
#ifdef __AVR_ATtiny85__
#include <stdio.h>
#include <avr/power.h>
#endif
const unsigned long requestInterval = 60000; // 요구 시간 딜레이(1 min)
uint8_t ret;
int weather=300;
int temp = 0;
uint8_t dataPin = 2; // Yellow wire on Adafruit Pixels
uint8_t clockPin = 3; // Green wire on Adafruit Pixels
int lednum = 30;
//LED strip객체 생성. LED의 개수에 따라 앞 인자값을 변경한다
Adafruit_WS2801 strip = Adafruit_WS2801(25, dataPin, clockPin);
// Optional: leave off pin numbers to use hardware SPI
// (pinout is then specific to each board and can't be changed)
//Adafruit_WS2801 strip = Adafruit_WS2801(25);
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000L)
clock_prescale_set(clock_div_1); //clock을 16Mhz로 사용
#endif
strip.begin();
strip.show();
delay(10);
}
void weatherpixel(){
float rantime = random(20,50);
//날씨 코드가 200부터 531까지 범위 안에 있다면 type3 패턴으로 led를 제어한다.
//비, 눈, 우박
if(weather>199 && weather<532){
type3();
}
else ;
//날씨 코드가 701부터 781, 또는 802부터 804까지 범위 안에 있다면 type2 패턴으로 led를 제어한다.
//흐림
if(weather>700 && weather <782){
type2();
}
else ;
if(weather>801 && weather<805){
type2();
}
else ;
//날씨 코드가 800부터 801
//흐림
if(weather>799 && weather<802){
type1();
}
else ;
}
void type1(){
rainbow(60);
}
void type2(){
uint16_t i, j;
for(j=0; j<256; j+=1) {
for(i=0; i int sum = i+j;
map(sum,0,300,120,190);
strip.setPixelColor(i, Wheel(sum),Wheel(sum),Wheel(sum));
}
strip.show();
delay(10);
}
}
void type3(){
uint16_t i, j,q;
for(q=0; q for(j=0; j<256; j+=1) {
for(i=0; i int sum = i+j;
map(sum,0,300,120,190);
strip.setPixelColor(i, Wheel(sum),Wheel(sum),0);
}
strip.show();
delay(10);
}
}
theaterChase(strip.Color(255, 255, 0), 60); //흰색 출력
}
//모든 LED를 출력가능한 모든색으로 한번씩 보여주는 동작을 한번하는 함수
void rainbow(uint8_t wait) {
uint16_t i, j;
for(j=0; j<256; j++) {
for(i=0; i strip.setPixelColor(i, Wheel((i+j) & 255));
}
strip.show();
delay(wait);
}
}
//입력한 색으로 LED를 깜빡거리며 표현한다void theaterChase(uint32_t c, uint8_t wait) {
for (int j=0; j<10; j++) {
for (int q=0; q < 3; q++) {
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, c);
}
strip.show();
delay(wait);
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0);
}
}
}
}
uint32_t Color(byte r, byte g, byte b)
{
uint32_t c;
c = r;
c <<= 8;
c |= g;
c <<= 8;
c |= b;
return c;
}
//255가지의 색을 나타내는 함수
uint32_t Wheel(byte WheelPos)
{
if (WheelPos < 85) {
return Color(WheelPos * 3, 255 - WheelPos * 3, 0);
} else if (WheelPos < 170) {
WheelPos -= 85;
return Color(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}
에러는
'type3' was not declared in this scope 이렇게 뜨네요
|