질문게시판 > 아두이노 초음파센서와 HC06(블루투스)를 이용, 릴레이동작

TODAY5,162 TOTAL4,267,677
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 아두이노 초음파센서와 HC06(블루투스)를 이용, 릴레이동작

페이지 정보

작성자 나도할수있어아두 작성일2023-04-27 00:02 조회6,308회 댓글3건

본문

	

HC06블루투스를 활용하여

마스터단에서는 초음파센서로 10cm 이상이고 1M이하의 범위에 물체가 들어오면 "1" 또는 "HIGH 신호를 

슬레이브단 HC06으로 전송. 이를 슬레이브에서는 "1" 또는 "HIGH" 신호가 들어왔을때 relay를 ON 시키는 동작을 구현하려 합니다.

 

아래는 제가 직접 공부하여 코드를 작성해 보았는데

 

마스터단에서 10cm이상 1M이하의 범위를 주는 방법을 모르겠습니다..

범위를 주는 방법과 제가 작성한 코드가 정상적인 코드인지 검토한번 해주시면 너무나 감사하겠습니다.

 

혼자서 유튜브를 보고 공부하고 있는데 어려움이 많습니다.. 도움 꼭 부탁드립니다.

 

HC06(마스터코드)

 */

#include <SoftwareSerial.h>

 

#define TRIG 4

#define ECHO 5

 

SoftwareSerial HC06(2, 3); // RX, TX

 

void setup() {

  Serial.begin(9600); //PC-아두이노간

  HC06.begin(9600); //아두이노-블루투스모듈

  // put your setup code here, to run once:

  

  pinMode(TRIG,OUTPUT); //trig 발사

  pinMode(ECHO,INPUT); //echo 받기

}

int duration = 0;

void loop() {

  // put your main code here, to run repeatedly:

  

   // trigpin으로 초음파를 보낸 후 초음파가 다 보내지면, echopin이 신호를 받아들일 준비를함.

 

  digitalWrite(4,HIGH);

  delay(10);

  digitalWrite(4,LOW);

 

  //trigpin에서 low신호를 보내고 echopin으로 돌아오는 시간을 측정

  //echopin은 high에서 low로 떨어지는 시간 측정

 

  duration = pulseIn(5, HIGH);

  distance = (float)duration*0.017; 

 

  // pulsein함수는 echo핀이 high -> low로 변하는 시간을 us로 나타내주는 함수.

  //(물체까지의 거리=속도x시간/2 = 시간x 0.034/2)[cm] 즉 duration에는 echopin이 high에서 low로 변하는 시간을 저장하고 그값을 통해 측정한 거리값을  float의 형태로 distace에 저장.

  // 0.017 = 0.034/0...속도는 340m/s.

 

 

  if(duration<=10){

    digitalWrite(4,HIGH);

    Serial.println("물체감지!");

    HC06.write('1');

    // 10cm 이상의 거리에 물체 감지 = 카와 균형추의 교차점이다.

 

   }else{

    Serial.println("물체미감지");

    HC06.write('0');

    //교차점이 아닌경우

  }

  delay(200);

}


 

 

 

 

 

HC06(슬레이브코드)

 */

#include <SoftwareSerial.h>

 

#define relay 4

 

SoftwareSerial HC06(2, 3); // RX, TX

 

void setup() {

  Serial.begin(9600); //PC-아두이노간

  HC06.begin(9600); //아두이노-블루투스모듈

  pinMode(led,OUTPUT);

}

 

void loop() { // run over and over

  if(HC06.available()){

    char c = HC06.read();

    if(c == '0'){

      //relay OFF

      digitalWrite(relay,LOW);

    }else if(c == '1'){

      //relay ON

      digitalWrite(relay,HIGH);

    }

  }

}


 

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

댓글 3

조회수 6,308

master님의 댓글

master 작성일

if(duration<=10){
duration을 체크하지말고 distance를 체크하세요
  if((distance>=10)&&(distance<=100)){ // 10~100cm

나도할수있어아두님의 댓글

나도할수있어아두 작성일

감사합니다.
추가 질문이 있습니다
현재 hc06을 사용하여 무선통신을 하고있는데 lora(SX1276)를 사용하여 무선통신이 가능하다고 알게 되었습니다
통신거리는 Hc06은 최대10M 로라는 1km이상이라는데
긴 직사각형의 철판으로 둘러싸인 7~8M거리 통로안에서 통신을 하는 환경인데 hc06을 사용하는것이 유리한지 아니면 lora(SX1276)를 사용하는게 유리한지 궁금합니다
두 통신부품의 차이가 단순 통신거리의 차이 밖에는 없는지 궁급합니다.

master님의 댓글

master 댓글의 댓글 작성일

예제를 쉽게 찾을 수 있을테니 테스트 해보면 알 수 있지 않을까요?

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 분주비와 업/업다운 카운트 관련 질문 드립니다.댓글[3] 412904 24-02-18 871
질문 stm32의 task댓글[1] 라칸 24-02-07 490
질문 stm32에서 ping 같은걸 해볼수 있나요?댓글[1] 라칸 24-01-23 541
질문 (초보)atmega128 led 제어 질문드립니다댓글[1] aaa123 24-01-22 1017
질문 UART 통신을 하는데댓글[4] 라칸 24-01-10 1731
질문 트랜지스터를 2개 쓰는이유댓글[2] 이미지첨부파일 소정이 24-01-10 843
질문 ,아두이노 서보모터 블루투스 연결댓글[4] 비누 23-12-22 5064
질문 arduino 코드를 armega 128로 변환댓글[1] 이모저모 23-12-20 665
질문 MTP 주소 지정 방법댓글[1] adoui 23-12-19 711
질문 All-in-one air quality sensor Fosen 23-12-18 477
질문 Atmega128 PORTB에서 서보모터와 부저 사용 관련 질문 ynbus 23-12-17 762
답변 답변글 답변 : Atmega128 PORTB에서 서보모터와 부저 사용 관련 질문댓글[1] master 23-12-17 1258
질문 ATmega128에 MQ-3 센서를 사용하는 방법을 찾고 있습니다.댓글[1] 첨부파일 c언어초보 23-12-16 997
질문 3축 자이로센서로 진동값 계산하는 방법좀댓글[1] 라칸 23-12-15 865
질문 avr codevision에 led 교차하면서 소리나게 하는 법을 알고싶습니다.댓글[1] 주넘 23-12-14 923
질문 방금 글쓴 사람입니다!댓글[5] 이미지 범뚱 23-12-14 2448
질문 이 코드에서 절대 7세그먼트 디스플레이에 불이 들어오지 않는데 왜 그럴까요?댓글[2] 범뚱 23-12-14 981
질문 아두이노 라인트레이서 질문 있습니다. 99999 23-12-14 563
답변 답변글 답변 : 아두이노 라인트레이서 질문 있습니다. master 23-12-14 550
질문 우노는 되는데 메가가 안됩니다(초음파)댓글[3] 초두이노 23-12-13 1372
질문 atmega128 dht11 온도 센서 데이터출력댓글[4] 재효김 23-12-13 4724
질문 ATMega128a 사용한 디지털 시계 질문입니다.댓글[3] 첨부파일 moon99 23-12-13 2452
질문 서보모터 드라이버 관련 질문입니다.댓글[1] 뚱보개 23-12-13 737
질문 Atmega128 USART 질문입니다.댓글[1] dnjsjj 23-12-13 924
질문 codevision avr atmega128a 사용중입니다 범뚱 23-12-12 823
답변 답변글 답변 : codevision avr atmega128a 사용중입니다 master 23-12-13 686
질문 아두이노 주파수 변경하는법댓글[1] 파란하늘 23-12-12 844
질문 atmega 128 timer interrupt에 관한 질문 atmemem 23-12-12 676
답변 답변글 답변 : atmega 128 timer interrupt에 관한 질문 master 23-12-13 505
질문 Atmega128에서 시계코드에 스톱워치, 타이머를 추가하고 싶습니다. 주넘 23-12-11 828
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기