질문게시판 > 방수온도센서를 이용한 네오픽셀점등

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

방수온도센서를 이용한 네오픽셀점등

페이지 정보

작성자 구퓨리 작성일18-12-20 21:09 조회3,243회 댓글0건

본문

방수온도센서를 이용해서 온도별로 네오픽셀 링타입 24구에 색을다르게 출력하고싶은데 잘 안되네요 도와주세요 ㅜㅜ

 

#include <OneWire.h>

#include <Adafruit_NeoPixel.h>

 

#define PIN 6

 

Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

 

int DS18S20_Pin = 2,ledNum;                             //온도센서를 2번 핀으로 연결                           

 

OneWire ds(DS18S20_Pin);                         //2번 핀과 연결되 OneWire 객체 생성

 

void setup(){

  Serial.begin(9600);     

  strip.begin();

                      // 시리얼 통신, 속도는 9600

 

 

 

void setBlue(int ledNum ) {

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

   strip.setPixelColor (i, strip.Color(0,0,200));

   strip.show();  

  }

}

 

void setGreen(int ledNum ) {

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

   strip.setPixelColor (i, strip.Color(0,200,0));

   strip.show();  

  } 

}

 

void setRed(int ledNum ) {

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

   strip.setPixelColor (i, strip.Color(255,0,0));

   strip.show();  

  }

}

 

void setPurple(int ledNum ) {

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

   strip.setPixelColor (i, strip.Color(102,0,102));

   strip.show(); 

  }

  

 

void loop(){

  float temperature = getTemp();                 //온도 측정 후 변수에 저장

  Serial.println(temperature);

 

if(temperature <= 12){                          //온도가 12도 이하일 때, 파란색 LED 점등

setBlue(24);  

delay(3000); 

  }

  

if(12<= temperature <=25){                          //온도가 12도 이상 25미만일 때, 초록색 LED 점등

 setGreen(24);

delay(3000); 

  } 

   

if(25<=temperature <= 30 ){                          //온도가 25도 이상 30미만일 때, 빨강색 LED 점등

setRed(24);   

delay(3000); 

  }

   

 if(30 <= temperature <=40){                          //온도가 30도 이상일 때, 보리색 LED 점등

setPurple(24); 

delay(3000); 

  }

  

}

 

 

 

 

 

float getTemp(){                                   //온도 측정 후 반환하는 함수

 byte data[12];

 byte addr[8];

 if ( !ds.search(addr)) {

   ds.reset_search();

   return -1000;

 }

 if ( OneWire::crc8( addr, 7) != addr[7]) {

   Serial.println("CRC is not valid!");

   return -1000;

 }

 if ( addr[0] != 0x10 && addr[0] != 0x28) {

   Serial.print("Device is not recognized");

   return -1000;

 }

 ds.reset();

 ds.select(addr);

 ds.write(0x44,1);                                   

 byte present = ds.reset();

 ds.select(addr);  

 ds.write(0xBE); 

 

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

  data[i] = ds.read();                                                          

 }

 

 ds.reset_search(); 

 byte MSB = data[1];

 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB); 

 float TemperatureSum = tempRead / 16; 

 return TemperatureSum;                                                                    

}

 

일단 코드는 이런식인데 업로드하면 설정해놓은 색들이 if문따라서 하나색으로 나오는게 아니라 전부나와서 반복됩니다ㅡㅜㅜ

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 3,243

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 while문 탈출 질문 yhj2644 새글 22-07-01
답변 답변 : 아두이노 while문 탈출 질문 댓글[4] master 새글 22-07-01
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의… 댓글[3] cansad 새글 22-06-30
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의 댓글[3] cansad 새글 22-06-30
질문 빵판없이 디스플레이 넣을 수 있을까요? 댓글[2] 첨부파일오소로롯  22-06-29
질문 라즈베리파이4 신형 선택문제 댓글[1] maximum  22-06-26
질문 음전압 ADC 댓글[2] 412904  22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전