인기글 [10/16] (연예인) 조보아 몸매  
검색
홈으로 |로그인 | 무료회원가입 | 포인트출석 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기

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

  • remigius 채택답변수 (100)
  • 맹물 채택답변수 (84)
  • 치단된코멘트 채택답변수 (35)
  • 나도익명 채택답변수 (15)
  • 여명808 채택답변수 (14)
  • 유랑천하 채택답변수 (14)
  • 능글이3 채택답변수 (12)
  • donn 채택답변수 (12)
  • OOBERec 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

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

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

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

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

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


    #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
    110974 [기타]  돈빌려준거못받았는데 경찰에신고하면되나요? (5) 향긋한향기
    1000 05:01 199
    110973 [기타]  안녕하세요 회원게시판 글 게시관련 도움요청드립니다.. (7) 허밍베어
    200 10-15 73
    110972 [기타]  곰팡이 핀 집안(12평)에 결로, 곰팡이 제거 후 도배 견적 질문입니다~ (8) 소울워커
    500 10-15 282
    110971 [쇼핑]  편의점 택배 착불 운임 이게 맞는 건가요? (3) 토렌트신봉
    500 10-15 185
    110970 [컴퓨터/인터넷]  AMD 씨피유 질문드립니다. (3) 내맘을지켜라
    500 10-15 195
    110969 [전자기기]  샤오미 멀티탭 프리볼트인가요? (5) 양말구멍
    200 10-15 167
    110968 [컴퓨터/인터넷]  그래픽 카드 드라이버 업데이트 시 모든 게임이 안됩니다. (2) 에페
    500 10-15 161
    110967 [컴퓨터/인터넷]  마우스 좌클릭을 키보드 캡스락으로 바꿀 간편한 방법이 있을까요? (윈도우10) (4) 요시78
    1000 10-15 68
    110966 [경제/재테크]  엑셀 질문입니다. (3) 변님
    1000 10-15 67
    110965 [기타]  의자 추천좀 해주세요 (1) 복실s2
    200 10-15 105
    110964 [컴퓨터/인터넷]  크롬 ie tab 어떻게 된건가요? 실행이 안되네요... (1) 화이팅샴푸
    200 10-15 65
    110963 [기타]  GIF 링크 잘 보이나요? (3) 스샷첨부 돌고래좋아
    200 10-15 90
    110962 [게임]  빅터 브란 아이템 에디팅 되는건가요? 다른건없다
    300 10-15 87
    110961 [컴퓨터/인터넷]  작업관리자 로드율 오류 해결되나요? 스샷첨부 티토렝트
    200 10-15 66
    110960 [컴퓨터/인터넷]  그림과 같은 증상 해결 방법 좀 알려 주세요 (4) 0낭만고양이0
    3000 10-15 148
    110959 [컴퓨터/인터넷]  괜찮은 녹화 프로그램 뭐가 있을까요 (3) KM1600un
    500 10-15 111
    110958 [기타]  영어 잘 하시는 분 영작 도움 좀 부탁 드립니다. (3) 김말석
    200 10-15 98
    110957 [컴퓨터/인터넷]  윈도우10 관련 질문입니다. (2) wake
    200 10-15 160
    110956 [기타]  빈집 겨울 동파 방지 어떻게 해야하나요?...관련 업자분 계신가요?? (8) 스샷첨부 니트로이드
    5000 10-15 173
    110955 [컴퓨터/인터넷]  한글 프로그램 잘 하시는분 질문있습니다. (7) 스샷첨부 다이돌핀
    200 10-15 146
    110954 [컴퓨터/인터넷]  pc 문의 (1) smileaga
    200 10-15 104
    110953 [교육/학문]  Nintendo DS Programming PPT (2014.02.04 다운) => PPTX (2018.10.15) <한신대학교> (1) 스샷첨부 시시한너츠
    1700 10-15 102
    110952 [교육/학문]  캐드 자격증을 공부하려고 하는데 도움좀 주세요 !! (9) 테서
    200 10-15 167
    110951 [전자기기]  아이폰 무선 충전기 질문... (7) 여자와아이는…
    1000 10-14 209
    110950 [교육/학문]  비주얼베이직 for next문 (7) 스샷첨부 호로스이
    220 10-14 147
    110949 [전자기기]  전기 티포트 전기 많이 먹나요? (4) vnfmsg
    200 10-14 248
    110948 [전자기기]  사무실 화장실에 놔둘 라지에이터 추천좀 부탁합니다 (4) 릴리리아맘보
    200 10-14 173
    110947 [컴퓨터/인터넷]  3사 7만원 중저가 LTE 신규 데이터 무제한 요금제 관련 질문입니다 블레이더영혼…
    500 10-14 220
    110946 [취미/생활]  포토북 제작 사이트 추천해주세요! (2) anfaksgd
    500 10-14 97
    110945 [교육/학문]  직장인인데 오랜 꿈이었던 일본어공부를 해보고 싶은데 어떻게 시작해야 할지 막막합니다. (5) 스샷첨부 달빛바다109
    200 10-14 221
     1  2  3  4  5  6  7  8  9  10  다음