인기글 [10/22] (정보) 떡볶이 소스 천기누설.jpg  
검색
홈으로 |로그인 | 무료회원가입 | 포인트출석 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기

질문과답변 월간 최다답변채택 회원

  • remigius 채택답변수 (108)
  • 맹물 채택답변수 (77)
  • 치단된코멘트 채택답변수 (34)
  • 여명808 채택답변수 (17)
  • 유랑천하 채택답변수 (17)
  • donn 채택답변수 (13)
  • 페이마임 채택답변수 (11)
  • 능글이3 채택답변수 (11)
  • 나도익명 채택답변수 (11)
       
    [컴퓨터/인터넷]

    아두이노 관련 문의 드립니다

    글쓴이 : 대청 날짜 : 2018-10-12 (금) 11:26 조회 : 228

    현재 졸작으로 음주측정잠금장치를 만드는데

    저희가 만든 케이스에 잠금 장치를 만들어두고 그 위에 알콜센서를 두어 음주후 불었을때 일정수치이상이 되면 빨간불이 들어와 서브모터를 이용하여 잠금장치가 작동하지 않고 일정수치이하가 되면 파란불이 들어오고 잠금장치가 풀리는 것을 만들고 있습니다

    현재 문제는 서브모터가 맘대로 작동하지가 않네요...

    한번 봐주시고 문제점이나 해결책 좀 주세요~~


    #include <Servo.h>

    Servo myservo;     // 서보모터 객체 생성

    int mq3Pin = A0;    // MQ-3 센서핀을 아두이노 보드의 A5 핀으로 설정
    int redPin = 7;     // LED 센서의 R 핀을 아두이노 보드의 7번 핀으로 설정
    int greenPin = 6;   // LED 센서의 G 핀을 아두이노 보드의 6번 핀으로 설정
    int bluePin = 5;    // LED 센서의 B 핀을 아두이노 보드의 5번 핀으로 설정
    int val = 0;        // 에탄올 센서 전역변수 설정
    int piezo = 3;      // 부저 스피커 3번핀으로 설정
    int motor = 9;      // 서보모터 2번 핀으로 설정
    int angle = 90;     // 서보모터 초기 각도 값(90도)

    void setup(){
      myservo.attach(motor);          // 서보모터 연결
      myservo.write(angle);
      Serial.begin(9600);          // 아두이노 보드와 PC간의 통신속도 설정 
      pinMode(redPin,OUTPUT);       // LED의 R,G,B 핀을 출력으로 설정
      pinMode(greenPin,OUTPUT);
      pinMode(bluePin,OUTPUT);
      pinMode(piezo, OUTPUT);       // 부저 스피커 출력설정
      delay(1000);
    }

    void loop(){
      val = analogRead(mq3Pin); 
      Serial.println(analogRead(mq3Pin));   // MQ-3 센서 출력값을 시리얼 모니터로 출력

      if(val>=400){                  // 센서 값이 400 이상이면
        if(val == 400){
          setColor(255, 0, 0);         // RGB 빨강
          Serial.print("400임");
          tone(piezo, 494);          // 부저 스피커 특정 조건이 만족하면 "시" 음으로 울림
          servo_ON();
          delay(500);
        }
      } 
      else if(val>=200 && val<400){  // 센서 값이 200 이상, 400 미만이면
        if(val <= 399){
          setColor(255, 255, 0);       // RGB 노랑
          Serial.print("300임");
          tone(piezo, 494);
          servo_ON();
          delay(500);
        }
      }
      else if(val<=200){               // 센서 값이 200 미만 이면
        if(val <= 200){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
          setColor(0, 0, 255);          // RGB 파랑
          Serial.print("200임");
          servo_ON();
          myservo.write(angle);
          delay(500);
        }
      }
       noTone(piezo);
       servo_OFF();
    }

    // RGB 색상만들기용
    void setColor(int red, int green, int blue)
    {
      analogWrite(redPin, red);
      analogWrite(greenPin, green);
      analogWrite(bluePin, blue);
    }

    void servo_ON(){
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
      myservo.write(90);
      myservo.detach(10000);
    }

    void servo_OFF(){
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
      myservo.write(0);
      myservo.detach(10000);
    }


    요청자가 자신의 1000포인트를 걸었습니다. 답변이 채택되면 500포인트를 드립니다.

    치단된코멘트 2018-10-12 (금) 11:43
    1. int motor = 9;      // 서보모터 2번 핀으로 설정

    2. setup에서 attach했는데 밑에 servo_on, off에서 attach, detach를 왜 하는거지요?

    3. 버튼을 하나 만들어서 다시 잠글 수 있게 만드는게 좋겠네요.

    4. 입으로 불었을때에 불었는지 안 불었는지 어떻게 체크하지요? air pressure sensor를 붙여야 할거 같은데요. 일단 입으로 공기를 불었는지 안 불었는지 체크하는게 먼저일거 같네요.

    5.  else if(val<=200) 불었는지 안 불었는지 로직이 없어서 이 조건문은 항상 작동합니다.

    6. rgb led도 255가 의미가 없습니다. setColor(0, 0, 1);  해도 마찬가지입니다. high, low만 있어서요.

    - 시리얼과 led로 출력 하지 마시고 lcd나 oled로 텍스트로 보이게 하고 나중에 3d print로 하우징해서 외관으로도 있어보이게 만드는거 추천요. 전원도 충전식 배터리 붙여야 겠네요.
         
           
    글쓴이 2018-10-12 (금) 13:50
    저희도 그렇게 잘 알지 못해서 이래저래 묻고 배운거 갖다붙이고 한거 같아요 ㅎㅎ
    에어압력센서도 구입해야 하고 전원 온오프도 잡아야할꺼 같아요
    배터리는 보조배터리 분해해서 달려고 하고 있어요
    어느정도 정리해서 해보고 다시 도움부탁드립니다 ^^
    blkbird 2018-10-12 (금) 12:15
    loop문에서 if문을 처리하더라도
    if문을 벗어나 마지막에 servo_OFF()를 항상 만나게 되어 있으니
    if문내에서 servo_OFF()가 처리되도록 함이 바람직함.
       

    질문과답변 질문상태  |   | 
     
    번호 제목 글쓴이 상태 포인트 날짜 조회
    [공지]  ※ 토렌트사이트질문,자료요청 금지 (질문자,답변자 같이 제재) eToLAND
    0 08-25
    [공지]  ※ 질문과답변 게시판 이용안내 eToLAND
    0 03-28
    111161 [컴퓨터/인터넷]  게이밍 노트북 사려는데.. (3) 살자니고생
    200 16:21 42
    111160 [취미/생활]  막걸리식초 만들기 (1) 봉래산
    1000 15:34 77
    111159 [컴퓨터/인터넷]  워드프레스 블로그 복구 I0O4™
    500 15:26 30
    111158 [취미/생활]  다육이가 말라 죽어가고 있어요. (4) 스샷첨부 하이네켄☆
    500 14:33 130
    111157 [기타]  이런 농기계는 이름이랑 어디서 구매(중고)해야 할까요? (1) 스샷첨부 말보로스카이
    500 14:28 115
    111156 [기타]  영어 잘 하시는 분 영작 도움 좀 부탁 드립니다. (1) 김말석
    200 10:47 97
    111155 [교육/학문]  영어메일 번역 확인좀 부탁드립니다 (2) 후탱탱
    400 09:56 72
    111154 [컴퓨터/인터넷]  지금 htc 바이브 프로를 샀는데,,, (7) 하루살이v
    1000 09:44 176
    111153 [쇼핑]  올겨울 패딩 구입예정인데 (1) 용사자
    200 09:09 164
    111152 [기타]  실업급여에 대해 잘아시는분ㅜㅜ 답변부탁드립니다 (8) 이연찡
    500 00:50 295
    111151 [기타]  다음과 같은 내용을 갖은 연극이나 희곡을 알려주세요 (1) 섹시잇힝
    300 00:29 55
    111150 [교육/학문]  앞전의 등려군 앞부분 잘린 5초 소개 멘트 번역 부탁드립니다. (2) 토브
    1000 00:04 106
    111149 [쇼핑]  서현진씨가 드라마에서 쓴 모자 정보좀 알려주세요 (2) 스샷첨부 백삼이
    500 10-21 221
    111148 [쇼핑]  일명 홍진영 담요 구매방법 (2) 업무방법
    300 10-21 601
    111147 [교육/학문]  재료역학 관성모멘트와 관련하여 질문드립니다 (1) 스샷첨부 수학어렵
    500 10-21 65
    111146 [전자기기]  진짜 옛날 ktf핸드폰 파일 (2) 스샷첨부 32222222
    1500 10-21 209
    111145 [TV/영상]  이 개그맨 이름이 뭔가요? (1) 스샷첨부 봉선이4
    500 10-21 451
    111144 [음악]  이노래 제목을 찾습니다 (4) gwonm
    200 10-21 117
    111143 [쇼핑]  혹시 옥션 이베이로 해외 물건 사보신분 계신가요? (3) 우루나
    1000 10-21 112
    111142 [컴퓨터/인터넷]  윈도우..; (1) Slip
    300 10-21 150
    111141 [기타]  회계쪽의 신입 연봉이 얼마인가요? (7) bvla
    200 10-21 220
    111140 [경제/재테크]  대한법원경매차 저거 실 매물인가요 ? (2) 배추냥
    200 10-21 195
    111139 [취미/생활]  일본어 멘트 번역 좀 부탁드리겠습니다. (7) 토브
    5000 10-21 93
    111138 [건강/의학]  갱년기에 정관장 제품 좋나요? 아프리카TV
    200 10-21 60
    111137 [기타]  수도꼭지 교체 방법좀 알려주세요 (7) 조포스
    300 10-21 159
    111136 [컴퓨터/인터넷]  고클린 하드검사 "점검이 필요한 상태" 문제가 있는 건가요? (3) 스샷첨부 내가니다
    500 10-21 138
    111135 [기타]  이런경우는 어떻게 이해 해야 하나요.;; (4) 토깽㉧i
    200 10-21 130
    111134 [전자기기]  자동차 블랙박스에 삽입 돼있는 sd카드 질문 드려요 ^^ (2) 스샷첨부 소프트버터링
    500 10-21 120
    111133 [취미/생활]  서울 런닝머신 매장 큰 곳 찾아요~~~ (4) 곰나라탱
    1000 10-21 130
    111132 [건강/의학]  전남대학교병원에서 진료받을때 필요한서류 아시는분? (6) 배추경찰
    500 10-21 116
     1  2  3  4  5  6  7  8  9  10  다음