질문게시판 > 아두이노 코딩 두개 합치기

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

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

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

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

BASIC4MCU > 질문게시판

아두이노 코딩 두개 합치기

페이지 정보

작성자 CIE18 작성일18-06-29 06:35 조회10,050회 댓글2건

본문

LED와 적외선센서의 상호작용 코딩

(센서1에서 센서2로 물체가 이동할때 LED가 켜짐)

 

int led=12;

int sensor1=11;

int sensor2=10;

 

void setup(){

  pinMode(led,OUTPUT);

  pinMode(sensor1,INPUT_PULLUP);

  pinMode(sensor2,INPUT_PULLUP);

  digitalWrite(led,LOW);

}

 

void loop(){

  while( !digitalRead(sensor1) || !digitalRead(sensor2) );

 

  while( digitalRead(sensor1) && digitalRead(sensor2) );

 

  if( !digitalRead(sensor1) ){

    digitalWrite(led,HIGH);

  }

}

 

LED와 진동센서,스위치의 상호작용 코딩

(진동(압전)센서A0,A1,A2 중 하나라도 진동감지 > LED ON > 스위치 클릭 > LED OFF)

 

int ledPin = 53; // LED 출력 단자
 
int piezoPin = A0; // 압전센서 의 아날로그 단자
int piezoPin2= A1; // 압전센서2의 아날로그 단자
int piezoPin3= A2;
int worth = 0; // 현재 측정 된 값
int worth1 = 0; // 압전센서2의 측정된 값
int worth2 = 0;
int buttonpin = 47;

int a= 0;

void setup() {
 pinMode(ledPin, OUTPUT); // 핀 53번 LED 출력핀 설정
 pinMode(buttonpin,INPUT); //47번핀을 입력으로 설정 
 Serial.begin(9600); // PC로 전송
}

void loop() { // 셋팅후 연속적 실행
   worth = analogRead(piezoPin); // A1 핀 값을 판독
   worth1 = analogRead(piezoPin2); // A2핀 값을 판독
   worth2 = analogRead(piezoPin3); // A3핀 값을 판독
   int buttoninput = digitalRead(buttonpin);
  
   if ((worth >= 100)||(worth1 >= 100)||(worth2 >= 100)) { // 임계 값 초과시 이벤트 발생
     a= 1;
   }
  
   if(a==1){
    digitalWrite(ledPin, HIGH);
   }
  
    if(buttoninput == 1){
      a=0;
    }

    if(a==0){
    digitalWrite(ledPin,LOW);
    }
Serial.println(worth); // PC로 값 보내기
Serial.println(worth1); // PC로 값 보내기
Serial.println(worth2); // PC로 값 보내기
 delay(500);

}

 

위의 두 코딩을 합치려고 합니다.

두 코딩을 합친 코딩의 알고리즘은

물체가 적외선센서1에서 2로 지나감+진동센서에 진동감지 > LED ON > LED가 켜진 상태에서 스위치를 누를경우 > LED OFF

 

코딩을 합쳐보는것을 시도해봤는데 적외선센서 코딩의 while문 때문인지 결과가 잘 나오지 않습니다....어떻게 코딩해야하나요?

 

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

댓글 : 2

조회수 : 10,050

master님의 댓글

master 작성일

와일문 풀어서 시분할 구동으로 만들어드린 소스 참고해서 만들어보세요
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2082

CIE18님의 댓글

CIE18 작성일

int ledPin = 53; // LED 출력 단자
 
int piezoPin = A0; // 압전센서 의 아날로그 단자
int piezoPin2= A1; // 압전센서2의 아날로그 단자
int piezoPin3= A2;
int worth = 0; // 현재 측정 된 값
int worth1 = 0; // 압전센서2의 측정된 값
int worth2 = 0;
int buttonpin = 47;

int sensor1=11,sensor2=10;

int mode=0;

int a= 0;

void setup() {
 pinMode(ledPin, OUTPUT); // 핀 53번 LED 출력핀 설정
 pinMode(buttonpin,INPUT); //47번핀을 입력으로 설정 

  pinMode(sensor1,INPUT_PULLUP);

  pinMode(sensor2,INPUT_PULLUP);
 Serial.begin(9600); // PC로 전송
}

void loop() { // 셋팅후 연속적 실행
  worth = analogRead(piezoPin); // A1 핀 값을 판독
  worth1 = analogRead(piezoPin2); // A2핀 값을 판독
  worth2 = analogRead(piezoPin3); // A3핀 값을 판독
  int buttoninput = digitalRead(buttonpin);
 
  if ((worth >= 100)||(worth1 >= 100)||(worth2 >= 100)) { // 임계 값 초과시 이벤트 발생
    a= 1;
  }
 
  if(a==1){
    digitalWrite(ledPin, HIGH);
  }
 
    if(buttoninput == 1){
      a=0;
    }

    if(a==0){
    digitalWrite(ledPin,LOW);
    } 
   
    if(mode==0){

    if(digitalRead(sensor1)&&digitalRead(sensor2)){
      mode=1; } // 물체가 없으면 

  }

  else if(mode==1){

    if(!digitalRead(sensor1)||!digitalRead(sensor2)){ // 검출 되면

      if(!digitalRead(sensor1)){ // 1번 센서가 검출되면

        a = 1;

      }

      else{ // 2번 센서가 검출되면

        a = 0;
      }

      mode=0;

    }

  }
Serial.println(a); // PC로 값 보내기
Serial.println(mode); // PC로 값 보내기

 delay(500);

}

처음에 제시한 두개의 코딩을 위와 같이 합쳐보았습니다.
그런데 센서1에서 센서2로 물체가 이동할 때와 전동 센서값이 100 이상으로 나올때 LED가 켜지지 않네요...
뭐가 문제인지 알려주실수 있나요

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 코딩 결합 댓글[1] hohoje 새글 22-08-18
질문 UART통신 스위치 사용 댓글[4] 픽공부 새글 22-08-18
질문 아두이노코딩 질문사항 댓글[1] kai5439  22-08-16
질문 해석좀 해주세요 댓글[2] bubu  22-08-14
질문 lcd 1602에 특수문자를 출력하는 방법을 알고싶습니… 댓글[3] dndktn  22-08-12
질문 stm32 wifi 파일전송 댓글[3] 하리  22-08-11
질문 회로 구성 수정 댓글[2] 첨부파일픽공부  22-08-11
질문 아두이노 와이파이통신 질문 있습니다 댓글[1] 학생  22-08-11
질문 포토다이오드와의 연결 질문합니다. 댓글[7] 첨부파일박윤모  22-08-10
질문 회로 구성 댓글[4] 픽공부  22-08-10
질문 아두이노 센서, 와이파이, 블루투스 연결 댓글[1] pattern  22-08-10
질문 PIC 블루투스 연결 댓글[19] 픽공부  22-08-09
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴  22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌  22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥  22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡  22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이  22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전