Arduino 나노 접점 설명. 블로그 › Arduino를 배운 경험. 또 다른 게시물. 하드웨어. Arduino nano에 전원 연결하기

안녕하세요!

이 기사에서는 Arduino Nano 보드 제품군의 하드웨어 기반에 약간의 관심을 기울이고 싶습니다. 사진 아래에 하드웨어 변형을 설명했습니다.

영양물 섭취

Arduino Nano는 미니(마이크로)-USB 케이블을 통해, 조정되지 않은 전압이 6-20V인 외부 전원에서 전원을 공급받을 수 있습니다(핀 30을 통해, 이 핀에 12V 이상을 공급하는 것은 권장하지 않음). 5V의 안정화된 전압(핀 27을 통해). 장치는 전압이 가장 높은 전원을 자동으로 선택합니다.

전원은 가장 많은 소스로 자동 선택됩니다. 고전압. 또한 일부 연락처에는 특수한 기능이 있습니다. 이 핀은 낮은 값, 상승 또는 하강 에지, 값 변경 시 인터럽트를 트리거하도록 구성할 수 있습니다. 아날로그 핀 6과 7은 디지털 핀으로 사용할 수 없습니다.

또한 일부 연락처에는 특수 기능이 있습니다. 보드에 핀이 몇 개 더 있습니다. 일반적으로 보드에서 화면을 차단하는 화면에 재설정 버튼을 추가하는 데 사용됩니다. 아날로그 입력용 기준 전압. . 이 라인이 활성화되면 재설정 라인은 칩을 재설정할 수 있을 만큼 충분히 길어집니다. 이 설정은 다른 결과를 가져옵니다.

경우에만 FTDI FT232RL 칩에 전압이 공급됩니다. 아두이노 전원 공급 장치 USB를 통한 나노. 따라서 USB가 아닌 다른 외부 소스에서 장치에 전원을 공급할 때 3.3V 출력(FTDI 칩에서 생성)이 비활성화되고 그 결과 RX 및 TX LED가 깜박일 수 있습니다. 높은 수준핀 0과 1에서 신호를 보냅니다.

입력 및 출력

잘못된 데이터를 무시하도록 프로그래밍되어 있지만 연결이 열린 후 보드로 전송된 처음 몇 바이트의 데이터를 가로챕니다. 보드에서 실행되는 스케치가 처음 실행될 때 일회성 구성이나 기타 데이터를 받는 경우 다음 사항을 확인하세요. 소프트웨어연결된 은 연결을 연 후 해당 데이터를 보내기 전에 잠시 기다립니다. 유 아두이노 나노여러 가지 장점이 있습니다. 그녀가 또 무엇을 가지고 있는지 알고 싶으십니까? 이러한 핀은 5V에서 작동하며 핀당 최대 40mA 전류만 공급하거나 수신할 수 있다는 점을 아는 것이 중요합니다.

Arduino Nano의 20개(0-19, 다이어그램에서 보라색 평행사변형으로 배치됨, 동일한 다이어그램에서 마이크로컨트롤러 핀은 회색 평행사변형으로 표시됨) 디지털 핀 각각은 입력 또는 출력으로 작동할 수 있습니다. 작동 전압출력 - 5V. 최대 전류하나의 핀이 공급할 수 있는 는 40mA이지만 출력을 20mA 이상 로드하는 것은 권장되지 않습니다. 이 경우 모든 핀의 총 부하는 200mA를 초과해서는 안 됩니다. 모든 핀은 20-50kOhm의 내부 풀업 저항(기본적으로 비활성화됨)과 쌍을 이룹니다. 주요 내용 외에도 일부 Arduino 핀 Nano는 다음과 같은 추가 기능을 수행할 수 있습니다.

그러므로 이 핀에 과부하가 걸려 보드가 손상되지 않도록 주의해야 합니다. 그런 다음 회로를 설정하고 짧은 유형이 있는지 확인하십시오. 회로를 조립하고 배선하는 모든 과정이 끝나면 다음 단계는 프로그래밍과 코드 다운로드를 시작하는 것입니다.

Arduino Nano는 정말 멋지죠? 이미 또는 그녀와 함께 프로젝트에 대해 생각해 본 적이 있나요? 예를 들어 수족관의 현재 온도를 보여주는 롤러 블라인드를 떠나는 모터, 온수기 및 특정 시간의 조명이 될 수 있습니다. 우리 삶에서 살기 시작하려면 입력에 나타나는 내용에 따라 출력을 제어하는 ​​프로그램을 작성해야 합니다. 프로그램은 전체 시스템의 "두뇌"입니다. . 이것은 일부 사람들에게는 다소 신비스러워 보일 수 있지만 모든 것은 몇 줄의 코드로 요약됩니다.

직렬 인터페이스: 핀 0(RX)과 1(TX)입니다. 직렬 인터페이스를 통해 데이터를 수신(RX)하고 전송(TX)하는 데 사용됩니다. 이 핀은 FTDI의 USB-UART 변환기 칩의 해당 핀에 연결됩니다.

외부 인터럽트: 핀 2 및 3. 이 핀은 다음과 같은 경우 발생하는 인터럽트의 소스로 구성될 수 있습니다. 다른 조건: 신호 레벨이 낮을 때, 가장자리에 있을 때, 하락할 때 또는 신호가 바뀔 때. 자세한 내용은 attachmentInterrupt() 함수를 참조하세요.

입력 내용을 확인하고 측정에 따라 예를 들어 출력 중 하나에 연결된 히터를 시작하는 코드입니다. 이 언어를 다루는 사람들은 훨씬 더 쉬운 시간을 보낼 것입니다. 다른 사람 중에 의심이 있는 사람이 있나요?

컨트롤러는 자율적으로 작동하지만 설정을 변경하거나 특정 작업을 수행하려면 컨트롤러에 연결해야 하는 경우가 있습니다. 마이크로 컨트롤러로 전송된 프로그램은 작동했지만 컴퓨터와의 통신이 갑자기 중단되었습니다. 결과적으로 마이크로컨트롤러는 데이터를 수신하고 응답 시간을 보내는 대신 처음부터 프로그램을 시작합니다. 컴퓨터에 연결할 수 있는 일반적인 장치에서는 직렬 전송이 두 가지 방법으로 수행됩니다. 하드웨어 데이터 관리 없이 하드웨어 데이터 관리를 사용합니다. . 이것이 중요하고 필요한 이유가 무엇인지, 이 기사에서는 주제가 없습니다.

PWM: 핀 3, 5, 6, 9, 10, 11번. AnalogWrite() 함수를 사용하여 8비트 아날로그 값을 PWM 신호로 출력할 수 있습니다.

SPI 인터페이스: 핀 10(SS), 11(MOSI), 12(MISO), 13(SCK). 이 핀을 사용하면 SPI 인터페이스를 통한 통신이 가능합니다. 장치에는 SPI에 대한 하드웨어 지원이 있습니다.

주도의: 13번 핀. 디지털 13번 핀에 연결된 내장 LED. HIGH 값을 보내면 LED가 켜지고, LOW 값을 보내면 LED가 꺼집니다.

이 프로그램은 원시적이지만 레이아웃이 재설정되었는지 명시적으로 확인합니다. 그러면 프로그램은 다른 작업을 수행하지 않습니다. 직렬 포트 모니터를 닫았다가 다시 엽니다. 우리는 기본적인 질문에 답해야 합니다. 시스템이 실행되는 동안 컴퓨터에서 실행되는 모니터링 응용 프로그램이 계속 실행됩니까? 이 문제에 대한 많은 조언이 있습니다. 이는 일반적으로 두 신호의 교차점에서 100nF 커패시터를 제거하여 수행됩니다. 때로는 회로를 프로그래밍할 수 있도록 점퍼나 스위치를 납땜하는 것이 좋습니다.

다음 다이어그램은 저항을 회로에 연결하는 방법을 보여줍니다. 그러나 자동 프로그래밍이 불가능하다는 단점이 있습니다. 어떤 경우에는 120Ω 저항기가 필요하고 다른 경우에는 68Ω 저항기가 필요하므로 저항기 값은 실험적으로 선택해야 합니다.

I2C: 핀 4(SDA) 및 5(SCL). Wire 라이브러리(Wiring 웹 사이트의 문서)를 사용하면 이러한 핀이 I2C(TWI) 인터페이스를 통해 통신할 수 있습니다.
칠판에 나열된 것 외에도 몇 가지 결론이 더 있습니다.

AREF. 아날로그 입력용 기준 전압. AnalogReference() 함수에서 사용할 수 있습니다.

다시 놓기. 형성 낮은 수준이 핀의 (LOW)는 마이크로 컨트롤러를 재설정합니다. 일반적으로 이 핀은 확장 카드의 재설정 버튼을 작동하는 데 사용됩니다.

프로그래밍 방식으로 여러 가지 방법으로 문제를 해결할 수 있습니다. 유일한 문제는 다시 시작한 후 로딩 시간일 수 있습니다. 해결책은 컴퓨터에서 실행 중인 응용 프로그램이 포트 열기와 첫 번째 데이터 전송 사이에 적절한 시간을 가질 때까지 기다리는 것입니다. 위의 해결 방법이 허용되지 않는 경우 시스템에 대한 연결을 설정하고 유지하는 백그라운드 응용 프로그램을 실행할 수 있습니다. 우리 애플리케이션은 다른 애플리케이션의 포트에 대한 액세스를 차단하지 않는다는 점을 명심하십시오.

아날로그 입력 A0-A7: 10비트 아날로그-디지털 변환기(ADC) 입력. 아날로그 입력에 적용되는 전압(일반적으로 0~5V)은 0~1023의 값으로 변환됩니다. 이는 0.0049V의 분해능을 갖춘 1024단계입니다. 기준 전압 소스를 변경할 수 있습니다.

수요일 아두이노 프로그래밍 IDE는 마이크로컨트롤러에 포함된 모든 장치에 대한 작업을 지원하지 않습니다. 예를 들어 아날로그 비교기는 무시되었습니다. 사용할 수 있지만 레지스터에 직접 액세스해야 합니다.

오늘은 그게 전부입니다. 우리는 에 관한 짧은 기사를 계획하고 있습니다. 내부 구조 MK 및 주변기기.

모두에게 평화를.
안녕히 가세요!

추신. Megan의 구독자 수가 35,000명에 도달했습니다.

일반 정보

ATmega328(Arduino Nano 3.0) 또는 ATmega168(Arduino Nano 2.x) 마이크로컨트롤러를 기반으로 구축된 Nano 플랫폼은 작은 크기다음에서 사용할 수 있습니다. 실험실 작업. Arduino Duemilanove와 기능은 비슷하지만 어셈블리가 다릅니다. 차이점은 전원 커넥터가 없다는 것입니다. DC Mini-B USB 케이블을 통해 작업할 수 있습니다. Nano는 Gravitech에서 개발하고 판매합니다.

개략도 및 초기 데이터

연결

Arduino Nano 플랫폼에는 컴퓨터, 기타 Arduino 장치 또는 마이크로컨트롤러와 통신하기 위한 여러 장치가 포함되어 있습니다. ATmega168 및 ATmega328은 핀 0(RX) 및 1(TX)을 통해 UART TTL(5V) 직렬 인터페이스를 지원합니다. 보드에 설치된 FTDI FT232RL 칩은 USB를 통해 이 인터페이스를 라우팅합니다. FTDI 드라이버(Arduino 프로그램에 포함됨) 제공 가상 COM컴퓨터의 프로그램으로 포트를 이동합니다. Arduino의 직렬 모니터를 사용하면 플랫폼에 연결되면 텍스트 데이터를 보내고 받을 수 있습니다. 데이터가 FTDI 칩을 통해 전송될 때 플랫폼의 RX 및 TX LED가 깜박입니다. USB 연결(그러나 핀 0과 1을 통한 직렬 전송을 사용하는 경우에는 해당되지 않습니다).

SoftwareSerial 라이브러리를 사용하면 Nano의 디지털 핀을 통해 직렬 데이터 전송을 생성할 수 있습니다.

ATmega168 및 ATmega328은 I2C(TWI) 및 SPI 인터페이스를 지원합니다. Arduino에는 I2C 버스를 쉽게 사용할 수 있는 Wire 라이브러리가 포함되어 있습니다. 더 자세한 정보는 문서에 있습니다. SPI 인터페이스를 사용하려면 ATmega168 및 ATmega328 마이크로컨트롤러의 데이터 시트를 참조하세요.

프로그램 작성

플랫폼은 Arduino 소프트웨어를 사용하여 프로그래밍됩니다. 도구 > 보드 메뉴에서 "Arduino Diecimila, Duemilanove 또는 Nano w/ ATmega168" 또는 "Arduino Duemilanove 또는 Nano w/ ATmega328"(설치된 마이크로컨트롤러에 따라)을 선택합니다. 자세한 내용은 설명서와 지침에서 확인할 수 있습니다.

ATmega168 및 ATmega328 마이크로컨트롤러에는 미리 작성된 부트로더가 함께 제공되므로 외부 프로그래머를 사용하지 않고도 새 프로그램을 쉽게 작성할 수 있습니다. 통신은 원래 STK500 프로토콜을 사용하여 수행됩니다.

부트로더를 사용하지 않고 ICSP 블록의 핀을 통해 마이크로컨트롤러를 프로그래밍하는 것이 가능합니다(회로 내 프로그래밍). 자세한 정보는 본 매뉴얼에서 확인하실 수 있습니다.

자동(소프트) 재부팅

Nano는 새 코드를 작성하기 전에 플랫폼의 버튼을 누르는 대신 프로그램 자체에서 재부팅이 수행되도록 설계되었습니다. FT232RL 데이터 흐름 제어(DTR) 라인 중 하나는 100nF 커패시터를 통해 ATmega168 또는 ATmega328 마이크로컨트롤러의 리셋 핀에 연결됩니다. 이 라인의 활성화, 즉 낮은 수준의 신호를 보내면 마이크로컨트롤러가 재부팅됩니다. Arduino 프로그램은 이 기능을 사용하여 프로그래밍 환경 자체에서 업로드 버튼을 한 번만 클릭하면 코드를 업로드합니다. DTR 라인의 낮은 레벨 신호는 코드 기록 시작과 함께 조정되어 부트로더 시간 초과를 줄입니다.

이 기능에는 다른 용도가 있습니다. Nano는 연결될 때마다 재부팅됩니다. 아두이노 프로그램 Mac X 또는 Linux OS를 실행하는 컴퓨터에서(USB를 통해) 재부팅 후 다음 0.5초 동안 부트로더가 작동합니다. 프로그래밍하는 동안 플랫폼이 잘못된 데이터(코드를 제외한 모든 데이터)를 수신하는 것을 방지하기 위해 코드의 처음 몇 바이트가 지연됩니다. 새로운 프로그램). 플랫폼에 작성된 스케치에 대한 일회성 디버깅을 수행하거나 처음 실행할 때 다른 데이터를 입력하는 경우 컴퓨터의 프로그램이 데이터를 전송하기 전에 잠시 기다려야 합니다.