인기글 [02/21] (기타) 류지혜 사건 결말.. (103)  
검색
홈으로 |로그인 | 무료회원가입 | 포인트출석 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기
알뜰공간
 업체정보  | 핫딜정보
 컴퓨터견적  | 보험상담실
 공동구매  | 나눔쿠폰
포인트공간
 포인트배팅  | 포인트퀴즈
 포인트선물  | 홍보포인트
 가위바위보 | 자동차경주
 포인트슬롯 | 포인트복권
 이벤트/충전소 | 포인트순위
이토공간  

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

  • 아치미슬 채택답변수 (144)
  • drury 채택답변수 (30)
  • 여자와아이는놔줘 채택답변수 (12)
  • 빅장스타일러 채택답변수 (11)
  • 겨울숲 채택답변수 (10)
  • 금기자 채택답변수 (10)
  • cusp 채택답변수 (10)
  • 페이마임 채택답변수 (10)
  • 능글이3 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

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

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

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

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

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


    #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
    114587 [컴퓨터/인터넷]  Goodbyedpi gui 사용후 인터넷 막힘 (2) 이스란트
    1000 04:01 72
    114586 [TV/영상]  라푼젤이나 겨울왕국 같은 애니메이션 추천 부탁드립니다!! (5) SCR1
    1000 03:10 48
    114585 [컴퓨터/인터넷]  기가인터넷 랜선 사용 문의 (1) suseke
    1000 02:33 52
    114584 [컴퓨터/인터넷]  윈도우 10 모니터 3개 설정 중에 궁금 한게 있어서 질문 드립니다. 류마시
    1000 01:29 63
    114583 [TV/영상]  스마트티비로 3d 영상 질문입니다 (4) 라임한잔
    500 02-20 51
    114582 [건강/의학]  말라리아, 장티푸스 진단 시약 제조사 (1) Halva
    1000 02-20 52
    114581 [컴퓨터/인터넷]  그래픽카드 교환하려고 하는데 뭘 선택하는게 좋을까요? (4) 누런올빼미
    500 02-20 89
    114580 [컴퓨터/인터넷]  크롬을 대신할 것을 추천부탁드립니다. (3) 게시판xyz
    200 02-20 157
    114579 [TV/영상]  동영상촬영 결과물에서 데이터속도와 총비트 전송률이란 무엇인가요? (1) baldiz
    200 02-20 45
    114578 [경제/재테크]  부동산 경매 관련 잘아시는분 (2) Gnayn
    5000 02-20 59
    114577 [컴퓨터/인터넷]  달마부장 웹툰 (1) 카본스틸맨
    200 02-20 267
    114576 [컴퓨터/인터넷]  페이스북 개인계정을 페이지로 전환 할 때 친구들은 어떻게 되나요? (2) 타라수
    200 02-20 28
    114575 [기타]  물리치료사 될려면? (2) 주짓수초보자
    200 02-20 136
    114574 [기타]  Kist 인턴연구원은 어떤가요? (1) 행인1
    200 02-20 77
    114573 [기타]  유튜브 관련 질문 (3) wall
    500 02-20 83
    114572 [쇼핑]  자동차 리스 어떤가요? 장점 단점 및 주의점 및 업체 소개 등 (3) 안심
    500 02-20 98
    114571 [컴퓨터/인터넷]  엑셀 레퍼런스 고정 질문요 (1) 고추냉이
    200 02-20 59
    114570 [음악]  2017 한화그룹 홍보영상 뒤에 깔리는 첼로 음악 알려주세요 ㅠㅠ 카라이프
    5000 02-20 84
    114569 [건강/의학]  헬스 하는 형들에게 질문요~~ 용준형이다
    200 02-20 107
    114568 [TV/영상]  mkv파일을 티비로 자막을 보면서 보는건 불가능한가요? (11) 지킬dl
    5000 02-20 114
    114567 [교육/학문]  이과황님들 상경 조무레기가 편미분 질문하나 올리겠습니다! ㅠ.ㅠ (1) 스샷첨부 암리
    200 02-20 47
    114566 [컴퓨터/인터넷]  total commander 질문있습니다 (1) 재즈잭래빗
    200 02-20 48
    114565 [건강/의학]  치과보철재료에 대해서 궁금한 점이 있습니다. (10) 미공개
    500 02-20 75
    114564 [전자기기]  아이폰 카카오톡 복원 (1) apples
    200 02-20 193
    114563 [기타]  영화좀찾아주세요(사진첨부) (2) 스샷첨부 older4
    1000 02-20 184
    114562 [컴퓨터/인터넷]  video 태그 말고 webm 영상을 올릴 수 있나요? (3) 묘이
    1000 02-20 38
    114561 [기타]  택배 운전 하고싶은데 (3) 주짓수초보자
    200 02-20 162
    114560 [기타]  자동차 담보대출 (5) 걸린듯
    200 02-20 129
    114559 [건강/의학]  올해 39살입니다. 몸이 예전 같지 않네요.. (22) 유부남초밥
    200 02-20 455
    114558 [경제/재테크]  신용카드 연체랑 카드론에 대한 질문입니다. (14) 박배치씨
    600 02-20 143

     1  2  3  4  5  6  7  8  9  10  다음