채널톡 아이콘

인프런 커뮤니티 질문&답변

REN님의 프로필 이미지

작성한 질문수 3

[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.

섹션5에 스위치 led 점등 부분

해결된 질문

작성

·

77

·

수정됨

0

섹션 5 마지막에 스위치 눌러서 led점등 하는게 안되네요..

바로 전에 0.1초 간격으로 저절로 껐다 켜지는건 잘 됬는데

스위치 버튼이 불량일수도 있나요?

코드가 긴것도 아니고 설정이 복잡한 것도 아닌데 원인을 모르겠습니다..

if(!HAL_GPIO_ReadPin(GPIO_SW_GPIO_Port, GPIO_SW_Pin)){

HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 1);

}else{

HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 0);

}
혹시나 이렇게 반대로 바꾸면 계속 불이 들어와 있지만

스위치를 눌러도 아무 변화 없습니다.

 

그리고 제가 멀티미터기 사용법은 아직 다 몰라서 바로 아래 사진에 파란색 동그라미에 각각 대고 도통시험 그쪽에 놓고 했는데 소리는 안나는데 저 두 곳에 어떻게 잘 맞춰서 대면 D2 LED에 불이 들어옵니다.(스위치 안누른 상태에서). 그리고 두 곳에 댄 상태에서 스위치를 눌러도 소리는 안나구요

image.png


image.png

 

image.png

 

image.png

 

image.png


답변 2

0

ojtube5님의 프로필 이미지
ojtube5
지식공유자

스위치를 회로도를 보면 정말 심플합니다.

image.png


멀티 미터기를 쇼트 테스트 상태로 놓으시고(이 강의에서 멀티미터기 사용법를 한번 봐보세요.), 두 쇠 막대기를 합치면 삐 소리가 나는지 봐보세요.
그리고 만약 난다면, 스위치를 양 끝단에 두 막대기를 각각 대고, 스위치를 눌러보세요.
이때 삐~ 소리가 안나면 스위치 고장이예요.

강의를 진행하다 보면 빵판에 별도 스위치를 연결하는 과정도 있고 해서, 보드 자체의 스위치 동작 여부는 사실 그렇게 중요하지는 않아요.

만약 보드 자체의 스위치 동작이 꼭 해보고 싶으시면, 제가 보드 교체 해드릴게요.
ohjiwan@gmail.com 연락주세요.

REN님의 프로필 이미지
REN
질문자

스위치 양 끝단이라는게 제가 올린 사진에서 파란색 동그라미 친 곳이 맞죠?
멀티미터 제일 마지막으로 놓고 두 막대기 합치면 삐소리 나요
그래서 제가 했던거는 보드 전원 안 넣은 상태에서 파란색 동그라미에 각각대고 스위치 버튼 눌렀는데 소리 안났구요. 옆에 리셋버튼도 마찬가지로 소리가 안나서 두버튼이 다 불량일 경우가 있나? 싶어서 제가 잘못한건가 싶었는데 보드 자체 스위치 동작 여부가 중요하지 않다면 번거로우니까 교체는 하지 않겠습니다.

ojtube5님의 프로필 이미지
ojtube5
지식공유자

제가 사무실에 있는 보드로 테스트 해보니.
그림에 표시된 부분을 대고, 버튼 누르면 삐소리 나요..
만약에 안나면 비정상이 맞아요.
둘다 고장나는건 진짜 드문일이긴 해요..

image.png


REN님의 프로필 이미지
REN
질문자

네 다시 해보니 리셋 버튼은 어떻게 잘 맞추면 소리 났다 안났다 하네요.
오른쪽 버튼은 아무리해도 소리가 안나는거 보니 고장이 맞는것 같습니다.
저는 그냥 수업이 코드도, 회로도도 엄청 간단한것이었는데 실행이 안되어서
답답해서 문의를 드린것이구요. 원인을 알았으니 속이 시원합니다.ㅎㅎ
답변 감사드립니다~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. REN님!

임베디드 시스템에서 스위치를 사용하여 LED를 제어하는 프로젝트를 진행 중이신 것 같군요. 스위치를 눌러도 LED가 점등되지 않을 때 발생 가능한 몇 가지 원인과 해결 방법을 알려드리겠습니다.

  1. 스위치 및 회로 문제:

    • 우선 스위치가 실제로 동작하는지 물리적으로 확인하는 것이 중요합니다. 스위치가 잘못된 경우 교체할 필요가 있습니다.
    • 멀티미터를 사용하여 스위치를 눌렀을 때 전기적 연결이 제대로 되는지 확인해 보세요.
  2. GPIO 설정 확인:

    • 코드 스니펫과 이미지에서 확인할 수 있듯이, GPIO_SW_PinGPIOAPIN_0에 설정되어 있습니다. 설정에서 이 핀이 입력 모드로 정상 설정되었는지, 그리고 풀업 저항이 제대로 연결되어 있는지 확인하세요.
  3. 코드 확인:

    • 코드에서 HAL_GPIO_ReadPin(GPIO_SW_GPIO_Port, GPIO_SW_Pin)이 제대로 작동하는지 확인하세요. 만약 문제라면 이 부분의 코드 로직을 다시 한번 점검하시기 바랍니다.
  4. 디버깅을 통한 문제 해결:

    • 디버거를 사용하여 스위치 입력 상태가 제대로 읽히는지 확인해 보십시오. 디버거를 통해 스위치가 눌렸을 때 코드 흐름이 어떻게 되는지 체크가 필요합니다.

임베디드 시스템에서 이런 문제는 흔하게 발생할 수 있고, 때론 작은 설정의 차이로 인해 문제가 발생할 수 있습니다. 아래 링크를 참고하시면 유사한 문제를 해결하는 데 큰 도움이 될 것입니다.

위의 리소스를 참고하여 상황에 맞는 솔루션을 적용해 보시길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.