모바일 오유 바로가기
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
    조회수 : 1883
    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 초과시 해당없음)

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

    번호 제 목 이름 날짜 조회 추천
    23438
    아후 서터레스 NeoGenius 24/04/02 17:52 379 1
    23436
    로또 [3] 까망사투리 24/03/11 15:53 838 4
    23434
    copilot 기업유료버전 intelliJ에 붙여서 쓰고있는데 지리네요 안녕월드 24/02/22 00:15 875 0
    23433
    코딩마을 대나무숲 [5] cocoa 24/02/20 14:50 1010 5
    23432
    (질문) 프로그래머분들은 싱글PC게임 레벨제한 풀수 있죠?? [22] 본인삭제금지 할배궁디Lv2 24/02/13 13:36 1085 1
    23431
    Freemium NeoGenius 24/02/13 13:23 706 0
    23429
    부산에서 프로그래머 구인하는데 연봉 6천에서 8천 작은건가 [3] 폴팡 24/02/04 20:50 1258 1
    23427
    chatgpt? bard? [4] 별빛러브 24/01/25 06:24 815 0
    23426
    Next.js로 만들어봤어요~ [3] 창작글 sonnim 24/01/24 12:52 980 3
    23425
    Spring Boot 공부하기 - 한국투자증권 오픈API 호출 옐로우황 24/01/21 17:51 884 1
    23424
    파이썬 코딩 관련해서 질문드립니다. [4] 투투나 24/01/08 09:49 1105 0
    23423
    9년차 개발자의 "나만의 챗봇" 만들기 with ChatGPT [2] 아자뵤옹 23/12/10 22:35 1289 4
    23420
    이 에러가 뭘까요? [2] +.푸른바다.+ 23/11/03 15:25 1464 1
    23419
    [유니티 코리아] MWU 2023 투표하고 푸짐한 경품 받아가세요! engine1 23/10/06 18:52 1071 0
    23418
    Flutter로 만든 채팅 어플리케이션 with ChatGPT 아자뵤옹 23/09/13 22:39 1554 0
    23417
    특정 페이지 직접 접근 어떻게 막으시나요? [9] 달콤아시타 23/09/10 09:36 1591 0
    23416
    버츄얼 유튜버가 완성한 '세계 최초' 애플 실리콘 GPU 드라이버 펌글 우가가 23/09/02 23:52 1708 2
    23415
    뜨끈뜨끈한 30분짜리 삽질 [9] 창작글 상사꽃 23/08/29 16:00 1970 1
    23414
    [유니티 코리아] MWU 코리아 어워드 2023 마감 임박! mwuaward2023 23/08/26 14:01 1183 0
    23413
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/08/13 19:52 1217 0
    23412
    React.js 공부하기 - REST API 호출(CRUD) 옐로우황 23/08/05 13:13 1428 0
    23411
    영어앱을 만들었는데, 사용자들의 의견 받고 싶습니다! [2] 맑은바다13 23/08/03 18:28 1402 2
    23410
    진짜 절박해서 정말 ㅠㅠ 첫끼간절해서 도움주실분ㅠ.. [3] 명금123 23/07/17 22:28 1500 0
    23409
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/07/04 16:49 1316 0
    23407
    라즈베리파이 파이썬코드에 while문 썼는데 동작을 안해요 [3] 싱그러운햇살 23/06/17 17:18 1597 1
    23405
    라즈베리파이, 스위치 하나 누르면 다른 스위치들도 반응해요 [3] 싱그러운햇살 23/06/15 22:39 1632 1
    23403
    혹시.. 중소기업 재취업 목표.. 공부방법 및 툴 버전 질문드려도 될까요 [2] 베스트금지베오베금지외부펌금지 웃대메템 23/06/13 01:46 1678 0
    23402
    재취업 힘들까요???? [5] 베스트금지베오베금지외부펌금지 웃대메템 23/06/11 00:46 2014 2
    23401
    취미로 만든 채팅 with ChatGpt [4] 아자뵤옹 23/05/11 20:10 2029 4
    23400
    Spring Boot 공부하며 예제 CRUD 웹애플리케이션 정리 옐로우황 23/05/06 11:26 1695 2
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈