정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

초음파 led,블루투스 모듈 질문이 있습니다!!
lini0125 | 2017-12-02

안녕하세요~~아두이노를 이용해서 초음파센서로 특정거리를 측정해서 불을 켜고 블루투스 모듈을 사용해서 무드등 기능까지 포함하는 제품을 만들고자 합니다.!!

 

제가 제품을 만들면서 생긴 문제는 앱인벤터로 블루투스 어플을 만들고 실행까지 가능한데 무드등기능 off을 하면 초음파를 이용한 조명이 켜지질 않습니다ㅠㅠ 네오픽셀 led 8개를 사용해서 스탠드를 만들 생각입니다!!

 

블루투스 무드등 on --> 초음파 스탠드 기능 off(사용불가)

블루투스 무드등 off --> 초음파 스탠드 기능 on(사용가능)

 

초음파 소스코드 따로, 블루트스 무드등 기능 소스코드 각각을 실행하면 작동은 잘 되는데 두가지 기능을 합치면

작동이 되지않습니다ㅠㅠ 뭐가 문제일까요???ㅠㅠㅠ도와주세요ㅠㅠ

 


#include <SoftwareSerial.h>
#include <Adafruit_NeoPixel.h>
#define TRIG           4//2                               //초음파센서
#define ECHO           5//3                               //초음파센서
#define PIN            A0                              // 제어 신호핀
#define NUMPIXELS       8                              // 제어하고 싶은 LED 개수


Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
SoftwareSerial bluetooth(2,3); //TX,RX***********************

int delayval=0 ;      
 
void setup() {
   pixels.begin();   // This initializes the NeoPixel library.
   pixels.setPixelColor(0, pixels.Color(0,0,0));
   pixels.show();
   bluetooth.begin(9600);
 //-------------------------------------------------------BT  
   Serial.begin(9600); 
   pinMode(TRIG,OUTPUT);  // 초음파센서의 송신부로 연결된 핀을 OUTPUT으로 설정합니다.
   pinMode(ECHO,INPUT);   // 초음파센서의 수신부로 연결된 핀을 INPUT으로 설정합니다.
   }
byte r = 0, g = 0, b = 0;

void loop() {
  digitalWrite(TRIG,LOW);  //**
  digitalWrite(ECHO, LOW);
  delayMicroseconds(2);    
  digitalWrite(TRIG,HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG,LOW);

  int i = analogRead(A0);    // 정수형 변수 a를 선언하고 A0핀에 입력되는 신호를 대입
  unsigned long duration = pulseIn(ECHO, HIGH);
  float distance = duration / 29.0 / 2.0;
  Serial.print(distance);
  Serial.println("cm");

//-------------------------------------------초음파  
  if (bluetooth.available()){
    char data = bluetooth.read();
   
    if(data=='b'){
    Serial.write(data);
    
    r = bluetooth.read();
    g = bluetooth.read();
    b = bluetooth.read();
    bluetooth.flush(); 
    
    pixels.setPixelColor(0, pixels.Color(r,g,b));
    pixels.setPixelColor(1, pixels.Color(r,g,b));
    pixels.setPixelColor(2, pixels.Color(r,g,b));
    pixels.setPixelColor(3, pixels.Color(r,g,b));
    pixels.setPixelColor(4, pixels.Color(r,g,b));
    pixels.setPixelColor(5, pixels.Color(r,g,b));
    pixels.setPixelColor(6, pixels.Color(r,g,b));
    pixels.setPixelColor(7, pixels.Color(r,g,b));
    pixels.show();
  }
  
//------------------------------------------------BT    

    if(data=='a'){
       data = bluetooth.read();
       Serial.write(data);
       Serial.println("000000");
          if(distance < 100.0){
            for(int j=0;j<8;j++){
              pixels.setPixelColor(j,pixels.Color(255,255,255));
            }
          }
          else if (distance > 100.0){
            for(int j=0;j<8;j++){      
              pixels.setPixelColor(j,pixels.Color(0,0,0));
            }
          }
          pixels.show();
       }
    }
}


 

이전글   |    터치센서 네오픽셀 on/off 2017-12-02
다음글   |    gps 를 활용한 아이디어 구현 질문 있습니다.... 2017-12-02