모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : programmer_23386
    작성자 : 박용
    추천 : 0
    조회수 : 1899
    IP : 123.248.***.241
    댓글 : 3개
    등록시간 : 2023/01/26 13:30:55
    http://todayhumor.com/?programmer_23386 모바일
    아두이노 코딩좀 도와주세요..

    안녕하세요 ...

    아두이노 작업중인데 ... 몇날몇일을 밤새고 머리 쥐어싸매도 답이 안나와서 도움요청드립니다 ㅠㅠㅠㅠ

     

    원래 RFID까지 적용 예정이였는데 ... RFID 불량품이 와버려서 삭제할 예정입니당..

     

     


     

    KakaoTalk_20230126_132038686.png

     

    아두이노로 EM락 2개를 제어해야함.

     - 스위치 5개 조합으로 1번 EM락, 2번 EM락 제어를 해야함

     - 스위치 조합 : 흰색 + (조합) + 흰색 / 흰색이 시작과 끝을 의미함



    문제 사항

     - 현재 테스트로 [ W R Y G B W ] 1번 EM락 해제, [ W B G Y R W ] 2번 EM락 해제로 설정해둔 상태

     - 1번 EM락 해제까지는 정상 작동 함. 이후 W (4개 스위치 아무거나) W 눌러도 1번 EM락만 해제가 됨.

     - 2번 EM락 해제가 안 됨


    조건

     1. 정답일 경우 파란색 경광등 5초간 회전

     2. 오답일 경우 빨강색 경광등 5초간 회전

     3. 경광등이 작동중일 경우 스위치를 작동 불가.

     4. 경광등 작동 종료된 후 스위치 재입력 가능상태

     4. W 스위치는 시작과 끝을 의미함.

     5. W 스위치를 누르지 않고 조합을 누를경우 무효.

     


     

     ```cpp

    int s1 = 2;  //스위치 1 흰색

    int s2 = 3;  //스위치 2 빨강

    int s3 = 4;  //스위치 3 노랑

    int s4 = 5;  //스위치 4 초록

    int s5 = 6;  //스위치 5 파랑


    int em1lock = 7;

    int emlock;


    int s1c = 0;  //스위치1 누른횟수

    int s2c = 0;  //스위치2 누른횟수

    int s3c = 0;  //스위치3 누른횟수

    int s4c = 0;  //스위치4 누른횟수

    int s5c = 0;  //스위치5 누른횟수


    int s1s;  //스위치 1 동작정의

    int s2s;  //스위치 2 동작정의

    int s3s;  //스위치 3 동작정의

    int s4s;  //스위치 4 동작정의

    int s5s;  //스위치 5 동작정의


    int timeron = 0;  //타이머 on


    int start1 = 0;  //1번방 동작 시작

    int start2 = 0;  //2번방 동작 시작


    int room1clear = 0;  //첫번째방 성공

    int room2clear = 0;  //두번째방 성공


    int act1 = 0;  //룸1 첫번째 동작 성공

    int act2 = 0;  //룸1 두번째 동작 성공

    int act3 = 0;  //룸1 세번째 동작 성공

    int act4 = 0;  //룸1 네번째 동작 성공


    int act5 = 0;  //룸2 첫번째 동작 성공

    int act6 = 0;  //룸2 두번째 동작 성공

    int act7 = 0;  //룸2 세번째 동작 성공

    int act8 = 0;  //룸2 네번째 동작 성공


    int sus = 0;   //성공

    int fail = 0;  //실패


    int rfidsus = 0;

    int rfidfail = 0;


    int red = A0;   //경광등 빨강

    int blue = A1;  //경광등 파랑

    int em1 = A2;   //EmLock 1

    int em2 = A3;   //EmLock 2


    //***************************************************************************************************************************************************************************************************************************

    void setup() {


      //스위치 1~5 입력모드

      pinMode(s1, INPUT);

      pinMode(s2, INPUT);

      pinMode(s3, INPUT);

      pinMode(s4, INPUT);

      pinMode(s5, INPUT);

      pinMode(em1lock, INPUT);


      //A0 빨강 경광등 출력

      pinMode(red, OUTPUT);

      digitalWrite(red, HIGH);


      //A1 파랑 경광등 출력

      pinMode(blue, OUTPUT);

      digitalWrite(blue, HIGH);


      //A2 EmLock1 출력

      pinMode(em1, OUTPUT);

      digitalWrite(em1, HIGH);


      //A3 EmLock2 출력

      pinMode(em2, OUTPUT);

      digitalWrite(em2, HIGH);

    }


    //***************************************************************************************************************************************************************************************************************************

    void loop()


    {


      Serial.println("s2c");

      Serial.println(s2c);

      Serial.println("s3c");

      Serial.println(s3c);

      Serial.println("s4c");

      Serial.println(s4c);

      Serial.println("s5c");

      Serial.println(s5c);

      Serial.println("act5");

      Serial.println(act5);

      Serial.println("act6");

      Serial.println(act6);

      Serial.println("act7");

      Serial.println(act7);

      Serial.println("act8");

      Serial.println(act8);

      Serial.println("emlock");

      Serial.println(emlock);


      if (digitalRead(em1lock) == HIGH) {


        emlock = 1;

      }

      else {

        emlock = 0 ;

      }


      //스위치1*******************************************************************************************************************************************************************************************************************

      if (digitalRead(s1) == LOW) {

        if (s1s == 0) {

          delay(50);

          s1s = 1;

        }

      }


      if (digitalRead(s1) == HIGH) {

        if (s1s == 1) {

          start1 += 1;

          s2c = 0;  //s2c 초기화

          s3c = 0;  //s3c 초기화

          s4c = 0;  //s4c 초기화

          s5c = 0;  //s5c 초기화


          act1 = 0;  //룸1 첫번째 성공 초기화

          act2 = 0;  //룸1 두번째 성공 초기화

          act3 = 0;  //룸1 세번째 성공 초기화

          act4 = 0;  //룸1 네번째 성공 초기화


          act5 = 0;  //룸2 첫번째 성공 초기화

          act6 = 0;  //룸2 두번째 성공 초기화

          act7 = 0;  //룸2 세번째 성공 초기화

          act8 = 0;  //룸2 네번째 성공 초기화


          delay(100);

          s1s = 0;

        }

      }


      //스위치2*******************************************************************************************************************************************************************************************************************

      if (digitalRead(s2) == LOW) {

        if (s2s == 0) {

          delay(50);

          s2s = 1;

        }

      }


      if (digitalRead(s2) == HIGH) {

        if (s2s == 1) {

          s2c += 1;

          delay(100);

          s2s = 0;

        }

      }


      //스위치3*******************************************************************************************************************************************************************************************************************

      if (digitalRead(s3) == LOW) {

        if (s3s == 0) {

          delay(50);

          s3s = 1;

        }

      }


      if (digitalRead(s3) == HIGH) {

        if (s3s == 1) {

          s3c += 1;

          delay(100);

          s3s = 0;

        }

      }


      //스위치4*******************************************************************************************************************************************************************************************************************

      if (digitalRead(s4) == LOW) {

        if (s4s == 0) {

          delay(50);

          s4s = 1;

        }

      }


      if (digitalRead(s4) == HIGH) {

        if (s4s == 1) {

          s4c += 1;

          delay(100);

          s4s = 0;

        }

      }


      //스위치5*******************************************************************************************************************************************************************************************************************

      if (digitalRead(s5) == LOW) {

        delay(50);

        s5s = 1;

      }



      if (digitalRead(s5) == HIGH) {

        if (s5s == 1)

        {

          s5c += 1;

          delay(100);

          s5s = 0;

        }

      }



      //1번룸*******************************************************************************************************************************************************************************************************************


      if (room1clear == 0 || emlock == 1) {

        //흰색 누른 후 빨간색 스위치 1번 눌렀을때

        if (start1 == 1 && s2c == 1) {

          act1 = 1;

        }


        //흰색 누른 후 노란색 스위치 1번 눌렀을때

        if (act1 == 1 && s3c == 1) {

          act2 = 1;

        }


        //흰색 누른 후 초록색 스위치 1번 눌렀을때

        if (act2 == 1 && s4c == 1) {

          act3 = 1;

        }


        //흰색 누른 후 파란색 스위치 1번 눌렀을때

        if (act3 == 1 && s5c == 1) {

          act4 = 1;

        }


        //모두 완료 후 하얀색 버튼 눌렀을때

        if (act4 == 1 && digitalRead(s1) == HIGH) {

          sus = 1;

          delay(200);

        }


        //클리어시

        if (sus == 1) {

          digitalWrite(em1, LOW);

          digitalWrite(blue, LOW);

          room1clear = 1;

          start1 = 0;

          s2c = 0;  //s2c 초기화

          s3c = 0;  //s3c 초기화

          s4c = 0;  //s4c 초기화

          s5c = 0;  //s5c 초기화


          act1 = 0;               //첫번째 성공 초기화

          act2 = 0;               //두번째 성공 초기화

          act3 = 0;               //세번째 성공 초기화

          act4 = 0;               //네번째 성공 초기화


          delay(5000);

          digitalWrite(em1, HIGH);

          digitalWrite(blue, HIGH);

          sus = 0;

        }


        //실패시 하얀색 버튼 눌렀을때

        if (act4 == 0 && start1 == 2 && sus == 0) {

          s1c = 0;  //s1c 초기화

          s2c = 0;  //s2c 초기화

          s3c = 0;  //s3c 초기화

          s4c = 0;  //s4c 초기화

          s5c = 0;  //s5c 초기화


          act1 = 0;  //첫번째 성공 초기화

          act2 = 0;  //두번째 성공 초기화

          act3 = 0;  //세번째 성공 초기화

          act4 = 0;  //네번째 성공 초기화


          delay(100);

          fail = 1;

        }


        //실패시

        if (fail == 1 || timeron == 1) {

          digitalWrite(red, LOW);

          timeron = 0;

          fail = 0;

          delay(5000);

          digitalWrite(red, HIGH);

          start1 = 0;          //스타트 초기화

        }

      }


      //2번룸*******************************************************************************************************************************************************************************************************************


      if (room1clear == 1 && emlock == 0) {

        //흰색 누른 후 파란색 스위치 1번 눌렀을때

        if (start1 == 1 && s5c == 1) {

          act5 = 1;

        }


        //흰색 누른 후 초록색 스위치 1번 눌렀을때

        if (act5 == 1 && s4c == 1) {

          act6 = 1;

        } else {

          s4c = 0;

        }

        //흰색 누른 후 노란색 스위치 1번 눌렀을때

        if (act6 == 1 && s3c == 1) {

          act7 = 1;

        }

        //흰색 누른 후 빨간색 스위치 1번 눌렀을때

        if (act7 == 1 && s2c == 1) {

          act8 = 1;

        }

        //모두 완료 후 하얀색 버튼 눌렀을때

        if (act8 == 1 && digitalRead(s1) == HIGH) {

          sus = 2;

          delay(200);

        }


        //클리어시

        if (sus == 2) {

          digitalWrite(blue, LOW);

          room2clear = 1;

          start1 = 0;

          s2c = 0;  //s2c 초기화

          s3c = 0;  //s3c 초기화

          s4c = 0;  //s4c 초기화

          s5c = 0;  //s5c 초기화


          act5 = 0;               //첫번째 성공 초기화

          act6 = 0;               //두번째 성공 초기화

          act7 = 0;               //세번째 성공 초기화

          act8 = 0;               //네번째 성공 초기화

          delay(10000);

          digitalWrite(blue, HIGH);

          sus = 0;

        }


        //rfid까지 성공

        if (sus == 2 && rfidsus == 1) {

          digitalWrite(em2, LOW);

          digitalWrite(blue, LOW);

          room2clear = 1;

          start1 = 0;

          delay(10000);


          digitalWrite(em2, HIGH);

          digitalWrite(blue, HIGH);

          sus = 0;

        }


        //실패시 하얀색 버튼 눌렀을때

        if (act8 == 0 && start1 == 2 && sus == 0) {

          s1c = 0;  //s1c 초기화

          s2c = 0;  //s2c 초기화

          s3c = 0;  //s3c 초기화

          s4c = 0;  //s4c 초기화

          s5c = 0;  //s5c 초기화


          act5 = 0;  //첫번째 성공 초기화

          act6 = 0;  //두번째 성공 초기화

          act7 = 0;  //세번째 성공 초기화

          act8 = 0;  //네번째 성공 초기화


          delay(100);

          fail = 1;

        }


        //실패시

        if (fail == 1 || timeron == 1) {

          digitalWrite(red, LOW);

          timeron = 0;

          fail = 0;

          delay(5000);

          digitalWrite(red, HIGH);

          start1 = 0;          //스타트 초기화

        }

      }


      //RFID*******************************************************************************************************************************************************************************************************************


    }  //loop문


    ```

    박용의 꼬릿말입니다
    함께의 가치를 믿습니다.

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23399
    엑셀 관련된 질문 하나만 해도 될까요?? 엑셀 찾기 및 바꾸기 창.... [3] 달콤빵맨 23/05/04 10:23 1684 0
    23397
    내가 부자가 되면 하고싶은 일~ [2] 영팔이삼촌 23/04/25 16:48 1544 0
    23393
    자바스크립트로 게임 만들고 있어요. 포커, 탄막슈팅. [7] 콩바구니 23/03/23 16:38 1860 4
    23392
    구글 검색에 노출이 잘 되는 블로그가 워드프레스 인가요? [2] 트릭즈 23/03/06 08:22 1619 0
    23391
    챗봇에게 코딩 시켜 봤어요. [6] 콩바구니 23/02/17 16:30 2660 4
    23388
    이런 프로그램을 만드려면 어떤걸 공부해야되나요? [5] 잉여류 23/02/03 11:53 2126 0
    23387
    유투브 영상 편집 해주실 분 구합니다. (초보자도 오케이) [2] 창작글 빚청산돈방석 23/02/02 08:40 1558 1
    아두이노 코딩좀 도와주세요.. [3] 박용 23/01/26 13:30 1900 0
    23385
    매일 이미지 다르게 뜨는 어플 만들기 쉬울까요? [6] 팩션마니아 23/01/26 13:11 1576 0
    23384
    3D 캐릭터 제작 공모전 얼리버드 제출 이벤트 안내 귀인서아 23/01/19 18:10 1396 0
    23383
    네이버 라인링크 vs 카카오 클레이튼 비교 창작글 요루미 23/01/09 00:34 1733 0
    23382
    [공모전 추천] 2023 3D 캐릭터 제작 / 상금 1천만원 이상 귀인서아 23/01/03 15:45 1245 2
    23381
    [기사] 대학시절 '화이트 햇' 경험이 '8년 보안 무사고' 밑거름 됐죠 블락체인 22/12/14 09:56 1317 0
    23380
    질문) 합쳐진 이미지 경계찾기 [5] 본인삭제금지 우가가 22/12/02 20:20 1476 0
    23379
    C++공부하고 싶으신분들 무료강의/자료 공유 드립니다^^ Dhsudhehdidi 22/11/30 00:58 1605 4
    23378
    프로그래밍 같이공부할수 있는공간을 소개합니다(강의전부무료,영상자료도 있음 Dhsudhehdidi 22/11/09 23:57 1437 1
    23377
    (사이드 프로젝트 홍보) AI로 매매법 교육해주는 서비스 kongsss 22/11/09 20:18 1188 0
    23376
    혹시 이력서 관련해서 조언좀 받을 수 있을까요? [1] 훗날닭집사장 22/11/04 10:42 1274 0
    23375
    [질문]C언어 공부 중에 궁금한게 있어서 질문합니다. [4] 엄빠어디가 22/10/27 18:04 1340 0
    23374
    백준 삼성 기출문제2번째 특강(강의자료 전부 무료, 회원가입 필요없음) Dhsudhehdidi 22/10/18 21:29 1156 0
    23373
    백준 온라인 강의 및 자료 공유 했습니다.(무료) Dhsudhehdidi 22/10/10 13:46 1260 0
    23372
    알고리즘 디자인패턴 CPP개념 공부하는데 좋은 사이트에요 Dhsudhehdidi 22/10/07 00:51 1240 0
    23370
    어플개발 문의좀해도 될까요? [1] 창작글 브로스윈즈 22/09/26 23:35 1269 0
    23367
    무료 개발 강의 모음 공유합니다 [4] 아리공 22/09/15 16:03 1556 4
    23365
    DB(MariaDB) 접속 없이 DB 내장함수를 호출할 수 있을가요? [11] 창작글본인삭제금지 상사꽃 22/09/06 16:41 1519 0
    23363
    개발자 취직전 꼭 보면 좋은 사이트 [1] 돌아온_탕아 22/08/23 14:03 1900 1
    23362
    혼자선 너무나 외로워~ [2] 창작글 상사꽃 22/08/23 01:09 1714 1
    23361
    (홍보) 일상 속에서 제가 불편해서 만들기 시작한 서비스에요 ! [3] 창작글 메시앙 22/08/22 00:00 1512 2
    23359
    아니? 회사에서... 아직까지 이런 기술을...? [1] EmiyaMulzom 22/08/21 21:24 2129 2
    23358
    유튜브 비디오 링크 관리앱 만들어 봤어요 고돌이님 22/08/16 15:55 1076 2
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈