일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 비트 논리 연산자
- 프로그래밍 열풍
- 연산자
- ISSACMin
- 파이썬
- C++ 연습예제
- User Input Output
- Python
- using namespace std
- 앱 인벤터
- C++ Basic
- Conditional operator
- 사용자 입력
- Logic Operator
- Operator
- Python Basic
- 사용자 출력
- output
- 앱 인벤터 예시
- 앱 스토어 4월
- help 함수
- C++
- user function
- 앱 인벤터 2
- cmath
- 앱인벤터
- input
- 관계 연산자
- 파이썬을 중심으로
- 모바일 무료 게임 순위
- Today
- Total
ISSAC.Min
[Arduino 문제발생] 업로드 에러, 포트 인식 본문
아두이노 오류
Arduino IDE를 사용하면서 다양한 문제들이 발생할 때가 있는데 코드가 잘못되지 않은 이상 간단한 문제는 보드에서 포트를 뽑았다 다시 끼운다거나 Arduino IDE를 껐다 킨다거나 하는 방법으로 오류 해결이 가능하지만 더 큰 문제가 발생할 경우 당황하기 마련이다.
분명히 코드에 문제가 없는데 업로드가 안되거나 업로딩... Freezing 상태에 멈춰있다면 다른 방법으로 문제를 해결해야한다.
아두이노 오류에는 간단히 2가지가 존재하는데 컴파일 에러라고 말하는 소프트웨어적 오류, 코드에 문제가 발생할 경우 발생하며 Arduino IDE의 하단 Debugging 창에서 에러코드를 확인하고 코드를 수정하면 된다. 컴파일이란 우리가 썼던 C코드를 컴퓨터가 읽을 수 있도록 0, 1로 된 수로 변환해주는 일을 말한다. 즉 이 변환과정이 잘못됐다는 소리.
사실 컴파일 에러같은 경우 문법적 오류가 주를 이루기에 코딩적 사고를 많이 키우는게 중요하다.
남은 오류가 업로드 에러 같은 경우 컴파일을 통하여 변환된 코드를 아두이노 보드에 올리는 일을 하는데 컴파일이 끝난 시점에서 문제가 생겼단 말을 통해서 어디서 문제가 발생했는지 짐작할 수 있다.
1. 포트 인식문제
2. 보드 문제
포트 인식 문제는 간단히 말해서 컴퓨터에서 아두이노 보드로 보내는 문이 열리지 않았다는 것을 뜻한다. 당연히 문이 닫혀있으니 코드는 아두이노 보드로 보내지지 않는다.
보드 문제는 고려해야할 사항이 좀 다양한데, 보드 자체적 문제일 수도 있고 사용자가 Arduino IDE 설정을 잘못하거나 추가적인 라이브러리가 필요한 호환 보드일 수도 있다.
포트 인식 문제
포트 인식 문제는 앞에서 말했듯이 문이 잘못된 경우라고 생각하면 된다. 코드가 갈 길이 막혀있거나 끊겨있다는 소리.
막혀있다는 것은 컴퓨터가 포트 인식을 하지 못했다는 말로 들 수 있다.
또 포트 인식을 못했다는 것은 포트자체적 문제, 포트 USB 드라이버 미설치 등으로 나눌 수가 있다.
포트 자체적 문제 같은 경우 필자는 우노보드를 사용할때는 한번도 문제가 없었으나 다른 보드 pro mini, micro, nano 등 소형 보드를 사용할때 몇 번 발생한 적있다.
대부분 호환 보드의 추가 라이브러리 미설치가 문제였던 것으로 기억한다. 또 부가적으로 소형 보드같은 경우 직접 핀들을 보드와 납땜하기도 하는데 사용자의 부주의로 보드가 물리적으로 회로손상이 날 경우도 있다.
최근 구입했던 아두이노 보드들한테는 크게 발생하지 않는 것으로 보인다. 주로 중국산 호환보드를 사용하는데 예전과 다르게 뽑기운이 올라간거 같기도 하다.
포트 USB 드라이버 미설치 같은 경우 경험상 아두이노 우노 보드 사용때는 왠만하면 발생하지 않았지만 한두 번씩 컴퓨터를 포맷후 다시 설치하거나 개발 환경이 바뀌었을때 발생한다. 간단하게 USB 드라이버를 설치 후 리부팅하고 사용하면 간단히 해결될 때가 많다.
포트 인식 문제 진단
지금 문제가 포트 인식 문제인지 확인하는 방법은 간단하다. 두가지 과정이 필요한데 첫번째로 Arduino IDE에서 포트가 연결 되어있는지 확인한다. 두번째는 컴퓨터 환경설정에서 USB Serial Port를 확인한다. 과정은 아래와 같다.
1) 보드를 컴퓨터와 연결하지 않은 상태에서 포트를 확인한다.( 툴 > 포트 )
현재 연결하지 않은 상태에서 필자의 포트는 COM3, COM4 포트가 연결되어있다.
2) 보드를 컴퓨터와 연결한 상태에서 포트를 확인한다.( 툴 > 포트 )
그 다음 보드에 포트를 연결해보자. 필자는 아두이노 우노 보드를 끼워봤다.
기존의 COM3, COM4 말고 COM14 (Arduino Uno)가 생성되어있다. 물론 COM14 라고 뜨기도 하는데 뒤에 보드명이 없다는 소리가 인식이 안되었다는 소리는 아니니 무시하면된다.
아두이노 보드 말고 나노 보드도 연결해보겠다.
아두이노 나노 보드는 COM8에 배정되어있다. 하지만 보드는 "Arduino Uno"로 맞춰져있으니 사용하기 위해서는 Arduino Nano로 변경하면 된다.
3) 장치관리자에서 포트 확인
주로 1번 2번에서 문제가 없었다면 3번 문제는 잘 발생하지 않는다. 그래도 장치관리자에서 정확한 진단을 내려보자. 과정은 보드와 컴퓨터가 연결 되었을때 되지 않았을때 모두 확인한다.
내 PC 우클릭 > 속성 > 장치관리자 > 포트
연결 후에 USB-SERIAL CH340(COM8)가 생성되어있는 것을 확인 할 수 있다. 연결이 잘 되었다는 뜻.
만약 포트 인식에 문제가 발생했을 경우 이상한 언어가 적혀있거나 아무것도 나타나지 않는 경우도 발생한다. 만약 포트가 있긴한데 이상하게 표시된다면 드라이버는 설치되어있지만 드라이버의 버전이 잘못되었을 경우가 크고 만약 포트가 발생하지 않는다면 드라이버 설치가 되어있지 않았다는것을 어림 짐작할 수 있다.
포트 인식 문제 해결
포트 인식를 해결하기 위해서는 앞에서 진단한 점들을 고려한 후 또 마지막으로 확인할게 있는데 현재 컴퓨터 환경에서 아두이노 작업을 한 경험이 있을경우 포트 드라이버의 버전이 낮을 수도 있다. 만약 아두이노 작업한 적이 처음이며 사용했을때 포트 인식 문제가 발생하면 드라이버가 설치되어있지 않을 경우가 제일 크다.
1) 포트 드라이버 업데이트
포트 인식 진단때 들어갔었던 장치 관리자에서 USB Serial 항목에서 우클릭을 해주어 드라이버 업데이트를 진행해 주자.
포트(COM & LPT) 우클릭 > 설정 > 드라이버 > 드라이버 업데이트
컴퓨터에서 드라이버 소프트웨어 검색을 선택한다. 그 후 계속 다른 것을 선택하지 않고 다음으로 진행해주면 드라이버 업데이트가 완료된다.
2) 포트 드라이버 설치
우노 보드 같은 경우 Arduino IDE를 설치할때 자동으로 설치되어 지지만 경우에 따라 삭제 될 수도 있고 여러가지 문제가 발생할 수 있다. 또한 다른 보드 또는 호환 보드 등을 사용할때 추가적인 드라이버 설치가 필요할 수도 있다. 첫번째로는 기존의 포트 드라이브가 삭제되었을 경우 설치하는 방법이다.
이럴 경우 보드와 컴퓨터를 연결했을 때 포트명이 기존의 USB-Serial Port명 이 뜨는게 아니라 알수없는 기기나 물음표로 나온다. 걱정하지말고 설치하러 가자.
이번에도 장치관리자에서 진행된다.
장치관리자 > 알수없는 기기 우클릭 > 드라이버 업데이트 및 설치 > 컴퓨터에서 드라이버 소프트웨어 검색 > 해당 driver 선택
그리고 Arduino IDE이 설치된 폴더에 진입하여 drivers 폴더를 클릭하고 설치한다.
두번째로는 호환 보드 중 CH340 칩이 내장된 보드들은 추가적인 드라이버 설치가 필요한데 아래와 같은 링크로 들어가서 CH340 드라이버를 설치하면된다.
'STUDY > Arduino' 카테고리의 다른 글
[Arduino] 아두이노 푸시 버튼, 매트릭스 모듈, 이진수 LED 예제 (0) | 2020.11.24 |
---|---|
[Arduino] 아두이노 LED 켜기, 파도치기 예제 (1) | 2020.11.23 |
[Arduino] 아두이노 첫 걸음, 아두이노 설치 (0) | 2020.11.21 |