BASIC4MCU | 질문게시판 | 아두이노 블루투스 통신 질문
페이지 정보
작성자 날따라 작성일2020-06-12 16:08 조회3,004회 댓글0건본문
#include <Servo.h>
#include <Stepper.h>
#include <SoftwareSerial.h> //블루투스
#define rainpin A0
#define cdspin A1
#define servoPin 13
static bool before_cds = 0;
static bool moter_flag = 0;
Servo window;
int angle=180;
const int stepsPerRevolution = 2048;
SoftwareSerial BTSerial(3, 4); // 블루투스
Stepper myStepper(stepsPerRevolution,11,9,10,8);
void setup() {
Serial.begin(9600);
window.attach(servoPin);
pinMode(cdspin,INPUT);
myStepper.setSpeed(16);
BTSerial.begin(9600); //블루투스
}
void rain() { //빗물
int readingSensor = analogRead(rainpin);
if(readingSensor < 600)
{
Serial.println("no rain ");
Serial.println(readingSensor);
for(angle; angle < 180; angle++)
{
window.write(angle);
delay(20);
}
}
else
{
Serial.println("rain ");
Serial.println(readingSensor);
for(angle; angle > 0; angle--)
{
window.write(angle);
delay(20);
}
}
}
void cds_up() { // 조도
int cds = analogRead(cdspin);
Serial.print("CDS = ");
Serial.println(cds);
cds = cds / 650;
if(before_cds != cds)
{
before_cds = cds;
moter_flag = 1;
}
else if(before_cds == cds)
{
moter_flag = 0;
}
if(moter_flag)
{
if(cds)
{
for(int i = 0; i<2 ; i++) {
myStepper.step(stepsPerRevolution);
}
}
else
{
for(int i = 0; i<2 ; i++) {
myStepper.step(-stepsPerRevolution);
}
}
}
}
void cds_down() {
int cds = analogRead(cdspin);
Serial.print("CDS = ");
Serial.println(cds);
cds = cds / 650;
if(before_cds != cds)
{
before_cds = cds;
moter_flag = 1;
}
else if(before_cds == cds)
{
moter_flag = 0;
}
if(moter_flag)
{
if(cds)
{
for(int i = 0; i<2 ; i++) {
myStepper.step(stepsPerRevolution);
}
}
else
{
for(int i = 0; i<2 ; i++) {
myStepper.step(-stepsPerRevolution);
}
}
}
}
void loop() {
/*
int cds1 = analogRead(cdspin);
cds1 = cds1 / 650;
if(before_cds != cds1)
{
cds_down();
}
else if(before_cds == cds1)
{
cds_up();
}
delay(1500);
rain();
delay(1500);
*/
////////////////////////////
//블루투스 테스트
////////////////////////////
if (BTSerial.available()) {
Serial.write(BTSerial.read());
}
if (Serial.available()) {
BTSerial.write(Serial.read());
}
}
제가 서보모터하고 스테퍼모터를 빗물, 조도센서로 통해 값을 읽으면 모터가 돌아가게끔 어찌저찌 만들었습니다.
이제 블루투스 HC-06으로 연결하여 스마트폰에서도 모터를 돌릴 수 있도록 만들려고합니다.
그래서 먼저 블루투스만 따로 장치명, 페어링 비밀번호, 통신속도 9600으로 변경하고 스마트폰과 통신까지 확인 다 했습니다.
다 확인해서 이제 지금까지 만든 코드에 블루투스를 연결을 하려고 하는데 컴파일, 업로드는 다 잘 되는데 블루투스에 연결이 안되네요ㅠㅠ 기존 코드에 loop부분을 주석처리(/* */) 하고 작동해도 마찬가지였습니다
어쩔때는 HC-06에 불이 들어와서 스마트폰이랑 연결이 되는것처럼 보이다가 통신 메세지도 안보내지고 AT명령어도 무응답이고...
불이 안들어올때도 있어 아예 스마트폰에 블루투스 검색 목록조차도 뜨지 않습니다.
대체 무슨 문제인지 도저히 모르곘어서 이곳에 올립니다ㅠㅠ
위에 코드는 블루투스 부분만 빼면 정상적으로 작동은 잘 됩니다, 뭐가 문제일까요?
댓글 0
조회수 3,004등록된 댓글이 없습니다.