에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기

묻고답하기

상품 게시판 상세
제목 아두이노 소프트웨어 하드웨어 시리얼 관련 질문 드립니다!
작성자 1827003861@k (ip:)
  • 작성일 2021-09-13
  • 추천 추천하기
  • 조회수 95

소프트웨어 시리얼과 하드웨어 시리얼에 각각 마스터모드, 슬레이브모드의 HC-06모듈을 연결해서 아두이노 간 연결되어서 서로 센서값을 주고 받으며 명령을 실행하는 회로를 구상 중인데 배선할 때 하드웨어 시리얼을 사용할 블루투스 모듈은 아래 그림처럼 브레드보드에 꽂고 각각 RXD, TXD만 0번, 1번에 꽂으면 될까요? 그리고 아두이노 우노에 블루투스 모듈 두 개를 사용하는데 코드 상 문제도 있을까요..? +추가로 조도센서 모듈과 pir센서를 함께 사용할 때 배선할 때 유의할 점이 있나요?
ps.  구상 중인 회로의 코드는 아래 첨부하였습니다! 항상 도움이 되는 답변 감사합니다^^



#include <SoftwareSerial.h>  //수신용 블루투스는 TX,RX핀에 연결

SoftwareSerial blue2(10, 11); //블루투스의 Tx, Rx핀을 설정 (송신용 블루투스)


int cds = A0; // 조도센서를 아날로그 A0핀으로 설정

int led = 3;  // LED를 디지털 3핀으로 설정

int pir = 7;  // pir센서를 디지털 7핀으로 설정


int state = 0;  // LED ON/OFF 명령 설정(0: LOW, 1: HIGH)

int fadeAmount = 5; //불 서서히 켜기를 위한 값 설정

int brightness = 50; // 기본 밝기값


char INBYTE; // 블루투스 통신용 함수 설정


void setup() {

  Serial.begin(9600);  // 시리얼모니터(수신블루투스) 통신속도를 9600으로 설정

  

  blue2.begin(9600); // 2번 블루투스(송신블루투스) 통신속도를 9600으로 설정


  pinMode(3, OUTPUT);   // LED 핀을 OUTPUT으로 설정

  

  pinMode(7, INPUT);   // 인체감지센서 입력담당으로 설정

  

  digitalWrite(3, LOW);   // 초기 LED값을 0FF로 설정해주기


  while (!Serial) {

    ; //블루투스가 연결되지 않았다면 코드 실행을 멈추고 무한 반복

  }  

}


void loop() { 

  int cdsValue = analogRead(cds); // 조도센서값 입력 받음


  if (cdsValue < 50) {          //조도센서 측정값이 일정 수치 이하일 때

    analogWrite(3, 50);        // LED 출력 50 (총 255 중에)

    state = digitalRead(7);   // PIR 센서값 입력 받음


    if (state == HIGH) {             // pir센서에서 인식된다면

       analogWrite(led, brightness); 

  brightness = brightness + fadeAmount;

          if (brightness <= 0 || brightness >= 200) {

            brightness = 200; //빛을 200까지  천천히 출력

          }

       blue2.write( '1' );

    }

    else { while (Serial.available()); //pir센서에 인식이 안될 때 

         INBYTE = Serial.read();      //블루투스 1에 입력된 문자 출력

          if( INBYTE == '1' ){ //입력된 문자가 1이라면 빛 밝기 높이기

            analogWrite(led, brightness);

            brightness = brightness + fadeAmount;

              if (brightness <= 0 || brightness >= 200) {

               brightness = 200;

              }

             blue2.write( '0' );//불 끄라는 신호 보냄

              delay(300); // 빛 서서히 높이기 위해 설정한 값

          }

          else if( INBYTE == '0' ) { //입력된 문자가 0이라면 빛 밝기 낮추기

            analogWrite(3, 50) ; 

          }

    }

  }

  

  else {  

    digitalWrite(led, LOW); //조도센서 측정값이 일정 수치 이상일 때 LED off

  }

}


평점 0점
첨부파일
비밀번호 삭제하려면 비밀번호를 입력하세요.
  • 아두이노짱 2021-09-13 0점
    수정 삭제 댓글
    스팸글 블루투스에 TX라고 적힌 부분을 아두이노 보드의 RX라고 적힌 부분에 연결하면 돼요

    다른 센서들 연결에 지장은 없고, 0,1번 핀에 연결되는 모듈은 시리얼통신처럼 쓰면 됩니다

    2개 연결하기 구글링해보면 사료 있을 거에요 찾아보고 참고하면서 진행하세요
    pc와 통신 포기하면 디버깅할 때 힘들 수 있거든요

스팸신고 스팸해제

댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

댓글달기이름 :비밀번호 : 관리자답변보기

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

관련 글 보기

관련글 모음
no item title name date hit
26968 비밀글 펌웨어 업데이트가 안됩니다. 파일첨부 최진영 2024-05-11 4
26966 비밀글 센서관련 질문드립니다 ooaa1535 2024-05-10 5
26965 Lcd 파일첨부 lkj 2024-05-10 17
26958 비밀글 아두이노 부품 관련 문의 파일첨부 LSJ 2024-05-10 37
26955 서보모터 MG996R 김영완 희몽무역 2024-05-09 26
«
»