본문 바로가기
아두이노

Mega328 마이크로컨트롤러 아두이노 다운로드(1/2)

by 모빌리티키즈 2023. 12. 19.
728x90

안녕하세요,
모빌리티키즈입니다.
아래는 Mega328 마이크로컨트롤러와 LCD, 키패드, FTDI를 이용한 인터넷 프로그래밍에 대한 정보입니다.

심도 있는 취미로서의 관심을 가진 사람으로서, 저는 여러 종류의 주변 기기를 마이크로컨트롤러 프로젝트에 사용하는 방법에 대한 세부 사항을 연구하는 데 상당한 시간을 소요해왔습니다. 이 정보는 흩어져 있으며 종종 불완전하며 대부분은 단일 기기에 대한 정보만을 다루고 있습니다. 지난 프로젝트를 완료한 후에는 주요한 취미 관련 장애물을 하나의 장소에 모아둔 훌륭한 자습서 플랫폼을 가지게 되었다는 것을 깨달았습니다.

이 프로젝트는 약간의 노력이 필요하지만, 최종적으로는 LCD 화면, I2C 키패드, EEPROM 메모리 읽기/쓰기 및 FTDI 인터넷 프로그래밍을 포함한 독립형 마이크로컨트롤러 플랫폼을 갖게 될 것입니다. 5V 프로그래밍 케이블을 사용하여 프로젝트를 컴퓨터에 직접 연결하여 코드를 업로드할 수 있습니다.

여기에는 두 개의 스케치(동작 코드)가 포함되어 있습니다. KPD_LCD_tutorial이라는 스케치는 여러 기기가 협업하여 동작하는 것을 보여주는 큰 스케치입니다. LCD 프롬프트와 다른 시각적인 신호를 통해 키패드 프로그래밍 시퀀스를 사용자에게 안내하는 방법을 볼 수 있습니다. 코드에는 EEPROM 메모리 쓰기 및 읽기, 자동 LCD 밝기 조절, 키패드 버튼의 소리와 시각적인 피드백, 장치를 더 스마트하게 만드는 다른 방법도 포함되어 있습니다.

다른 스케치인 KPD_LCD_basic은 기능하는 키패드, LCD, 사용자 피드백 루틴 및 데이터의 EEPROM 저장/검색을 위해 필요한 최소한의 코드입니다.



이 프로젝트는 로켓 과학이 아닙니다. 브레드보드에 회로도를 재현하고 5V FTDI 프로그래밍 케이블을 연결하고 스케치를 업로드하기만 하면 됩니다. 스케치 주석을 따라가면서 무슨 일이 일어나고 있는지를 빨리 파악할 수 있을 것이며, 어떻게 하면 이 프로세스를 자신의 목적에 맞게 적용할 수 있는지를 보게 될 것입니다.

필요한 기술과 도구: 초급 수준의 납땜 기술이 필요하며, 물론 납땜기가 필요합니다. 납땜기로 추천하는 것은 캐나다의 SolarBotics에서 구할 수 있는 Hakko FX-888D입니다. 이 제품은 제 작은 실험실에서 거의 휴식을 취하지 않는 훌륭한 납땜기입니다.

회로도와 지시사항을 따르면 전자공학에 대한 기본적인 이해만 있으면 됩니다. 

1단계: 부품 수집.

자재 명세서

회로도는 모든 부품의 값을 기록합니다(DigiKey는 매우 유용한 소스임). 모든 것은 스루홀 패키지(기존 와이어 리드 및 핀)로 제공되어야 합니다. 빵 보딩의 경우 .01"의 핀 피치가 잘 작동합니다.

부품 번호와 공급업체에 대한 링크는 저항기 및 커패시터와 같은 것을 쉽게 구할 수 있기 때문에 모든 부품이 아닌 대부분의 부품에 대해 표시됩니다.

5-.1uF 세라믹 커패시터 - (DigiKey BC1084CT-ND)

2-10uF 알루미늄 커패시터 (DigiKey 493-12772-1-ND)

1-4.7uF 알루미늄 커패시터 (DigiKey 493-12781-3-ND)

2 - 22pf 커패시터(Sparkfun 22pf 캡)

1 - 1N914 DO35-4 고속 스위칭 다이오드(DigiKey 1N914ATR-ND)

1 - 트라이 컬러 RGY LED 5mm 공통 음극(DigiKey 67-2184-ND) - 또는 저항기가 있는 3개의 개별 LED

1 - R-78C5.0-1.0 DC/DC 컨버터 1.0AMP SIP3 단일 출력(DigiKey 945-1395-5-ND) 또는 동급.

1 - MEGA328-P DIL28-3 마이크로컨트롤러(Sparkfun Mega328) - (부트 로더 포함)

DIL1 I16C 버스 원격 2비트 I/O 확장기 PCF8PN(DigiKey 8574-568-1075-ND) 5개

1 - TC7HC14 CMOS 슈미트 인버터 DIP14(DigiKey TC74HC14APF-ND)

  • 참고 : 이 칩에는 실제로 6개의 인버터가 있습니다. 그 중 하나만 사용합니다.

1 - 40개의 헤더 핀(Sparkfun .1" 헤더)의 분리 섹션)

노란색 1mm LED 3개(DigiKey 511-1265-ND)

빨간색 1mm LED 3개(DigiKey 511-1255-3-ND)

빨간색 1mm LED 5개(DigiKey 67-1105-ND)

1 - 녹색 5mm LED(DigiKey 67-1101-ND)

1 - AT-2440 PIEZO 변환기(Digi Key 부품 # 668-1103-ND)

1 - Q1 16MHz XTAL/S QS 크리스탈(Sparkfun 크리스탈)

1 - Q2 BC547B TO92 NPN 트랜지스터 - 또는 2N3904 또는 2N2222. 많은 세대 목적 NPN이 작동합니다.

8 - 10K 저항기 - 참고: 모든 저항기는 1/4W, 탄소 필름, +/- 5%, 스루홀 유형(DigiKey)입니다.

1 - 100R 저항기

2 - 1K 저항기

3 - 560R 저항기

2 - 150R 저항기

2 - KSA-TACTILE-SWITCH KSA 시리즈(Sparkfun 순간 ON 촉각 스위치) - 또는 모든 순간 스위치

1 - 미니어처 SPST 스위치 - 또는 모든 켜기/끄기 스위치

1 - 8옴 스피커. (100 - 200mW 미니어처 스타일 제안, 그러나 모든 8옴 스피커가 가능)

1 - 키패드 4X3(Sparkfun KPD)

1 - 직렬 지원 LCD(검은색 LCD 바탕에 Sparkfun 16X2 흰색)

1 - LCD용 와이어 하니스(Sparkfun 센서 하네스)

1 - 5V FTDI 프로그래밍 케이블(Sparkfun FTDI 케이블) - 참고: 5V 버전이어야 합니다.

부품에 대한 몇 가지 추가 참고 사항;

  • 브레드보드의 회로를 배선할 방법이 필요합니다. 한 가지 유용한 방법은 Sparkfun의 이와 같은 와이어 키트 및/또는 Sparkfun의 30개 점퍼 와이어 세트입니다. 저렴하고 편리하며 영원히 지속됩니다. 연선(땜납으로 주석 도금하지 않는 한)은 브레드보드와 잘 작동하지 않습니다.
  • .01" 헤더 핀의 분리 스트립은 FTDI 헤더용 6핀 세트와 키패드용 7핀 스트립으로 분리해야 합니다. 나머지는 적절하다고 생각되는 테스트 및 연결 지점으로 사용할 수 있습니다.
  • 이 모든 것을 장착하려면 적당한 크기의 브레드보드가 필요합니다. 이것은 내 연구실에서 가장 많이 사용되는 것입니다
  • 마지막으로, 나열된 공급업체는 물건을 찾는 데 도움을 주기 위한 것일 뿐이며 결코 유일한 출처가 아닙니다. 젠장, 납땜 인두를 사용하면 정크 회로 기판에서 많은 부품을 청소할 수 있습니다.

2단계: 회로도 이해

  • 회로 설명브레드보드에 공급이 필요합니다. 벤치 전원 공급 장치가 있는 경우 8-12V로 다이얼을 맞추고 가능한 경우 전류 출력을 약 .8암페어로 제한합니다(배선이 잘못될 경우를 대비하여). 벤치 공급 장치가 없는 경우 전용 브레드보드 전원 공급 장치(Sparkfun 또는 SolarBotics에서 사용 가능)를 고려하십시오. 둘 다 사용할 수 없으면 간단한 9V 배터리가 잠시 동안 작동합니다.참고 : Mega328과 LCD는 모두 깨끗한 5V 소스가 필요하므로 9V 배터리를 사용하는 경우에도 일종의 DC/DC 레귤레이터를 사용해야 합니다전압 조정가공참고 : Mega328을 주문할 때 직접 수행하는 방법을 모르는 경우 부트 로더가 설치된 상태로 제공되는지 확인하십시오.AtMega328은 회색 영역이 없는 99과 13의 디지털 세계에 살고 있습니다. 즉, 1%의 경우 코드가 제대로 작동하려면 입력 또는 출력 핀을 HIGH 또는 LOW로 읽어야 합니다. 우리의 경우 프로그램은 헤더 K<>에 연결된 스위치로 제어되는 핀 <>의 HIGH / LOW 상태를 지속적으로 확인합니다.디바운스 회로는 핀 13이 상태 간 진동 없이 안정적인 HIGH 또는 LOW 신호를 볼 수 있도록 합니다. 작동 방식은 아래에 설명되어 있습니다.커패시터 C1은 HIGH/LOW 상태 간의 보다 부드러운 전환을 제공합니다.오디오/비주얼 피드백MCU의 핀 8에 연결된 11옴 스피커는 프로그램 작동 중에 가청 표시를 제공합니다. 생성된 톤은 시작, 색상 전환 및 프로그램 종료와 같은 프로그램 단계를 알립니다.JP12에 연결된 4버튼 3X1 키패드는 회로도의 칩 IC2에 연결됩니다. PCF8574P Port Expander는 MCU의 2 핀, 즉 SDA 및 SCL (MCU 핀 7 및 2)로 27 핀 키패드를 제어 할 수있는 I28C (Two Wire Interface) 장치입니다.포트 확장기의 핀 4, 6 및 9는 10K 저항 R4, R5 및 R6으로 풀업됩니다.컨트롤러의 회로 내 프로그래밍은 FTDI 헤더 J1과 5V FTDI 프로그래밍 케이블을 통해 수행됩니다. 이것은 Arduino IDE에서 코드를 업로드하는 매우 안정적인 방법이지만 FTDI 케이블은 단순한 전선 이상입니다. 자체 프로세서가 내장된 USB-직렬 변환기입니다(연결 주의).
    • 주: 업로드하는 동안 LCD를 보드에서 분리하여 직렬 LCD 자체의 손상을 방지하는 것이 좋습니다.
    • 회로에 LED 1이 포함되어 있으면 업로드 프로세스 중에 컨트롤러가 코딩 IDE와 통신할 때 빠르게 깜박이는 것을 볼 수 있습니다.
    원격 시뮬레이터순간 신호를 제공하기 위해 10K 저항을 ORIDE 핀의 접지에 연결하고 반대쪽에 5V가 연결된 순간 푸시 버튼 스위치에 연결하기만 하면 됩니다. 버튼을 누르면 ORID에 전달된 5V가 트리거로 필요한 HIGH 신호를 제공하여 무선 리모컨에서 제공하는 동일한 기능을 대체합니다. 버튼에서 손을 떼면 핀이 즉시(버튼 바운스를 제외하고) 저항을 통해 접지됩니다. 바운스를 처리하기 위한 스케치 코드가 있습니다.직렬 지원 LCD는 2x16자 액정 디스플레이로, MCU에 핀 하나만 있으면 작업을 수행할 수 있습니다. 이 특정 장치는 자체 프로세서 회로 기판으로 완성됩니다. LCD 헤더 K8의 회로 배선은 부품 목록의 LCD 와이어 하니스와 일치합니다.
  • 회로는 여기까지입니다. 지나치게 복잡하지 않으며 올바르게 배선하면 다음 단계에서 다룰 빵 보드에서 매우 잘 작동합니다.
  • 액정 디스플레이
  • 회로도에서 MCU의 핀 17을 ORIDE라고 하는 것을 볼 수 있습니다. ORIDE 핀의 전압이 일시적으로 HIGH로 올라가면 코드에 의해 모든 작동을 중지하는 일시 중지 신호로 해석됩니다. 다음에 HIGH가 되면 재개 신호로 처리됩니다.
  • FTDI 헤더 J1에는 5V 핀(회로도에 VCC로 표시됨)이 있습니다. 이것은 프로그래밍 케이블이 업로드를 위해 MCU에 전원을 공급할 수 있도록 하는 출력 핀입니다. 케이블을 연결하기 전에 다른 전원을 분리했는지 확인하십시오. 칩에 FTDI를 업로드하는 모든 마법은 핀 2(RXD) 및 4(TXD)에서 발생합니다. 부트 로더는 MCU 핀 1(RESET)이 DTR에 의해 일시적으로 접지될 때 '업로드 대기' 신호를 받습니다.
  • 인서킷 프로그래밍
  • 회로도에 적힌 칩 주소(0x20)를 확인합니다. 이 주소는 접지 핀 A0, A1 및 A2에 의해 할당됩니다. 장치의 주소가 스케치의 주소와 일치해야 하며 그렇지 않으면 컨트롤러가 이를 찾을 수 없기 때문에 이러한 특정 핀을 접지에 연결하는 것은 필수입니다.
  • 포트 확장기 및 키패드
  • 핀 5, 6 및 14에 연결된 단일 삼색(RGY) LED와 MCU의 핀 12에 있는 트랜지스터 제어 압전에 의해 LCD 프롬프트 프로그래밍 시퀀스 중에 사용자에 대한 오디오 및 시각적 피드백이 제공됩니다. '잘못되었습니다'라는 경고음과 깜박이는 빨간색 또는 노란색 LED만큼 당신이하는 일에 대해 두 번 생각하게 만드는 것은 없습니다. 반대로, 녹색 LED와 (더 행복한?) 소리는 일이 잘 진행되고 있음을 알려줍니다. RGY 대신 3개의 LED와 저항을 사용할 수 있지만 부품 수를 늘리는 이유는 무엇입니까?
  • 참고 : TC7HC14(IC3)에는 실제로 6개의 개별 인버터가 포함되어 있습니다. 우리는 하나만 사용할 것이지만 나머지는 나중에 이 프로젝트를 자신의 목적으로 전환할 때 깨끗하고 긍정적인 트리거를 제공하는 데 사용할 수 있습니다.
  • 어떤 방식으로든 변경을 트리거할 때까지 알려진 상태가 존재하는지 확인하기 위해 핀을 HIGH 또는 LOW로 당깁니다. 핀을 위아래로 당기는 것만으로는 충분하지 않지만 트리거 펄스가 안정적이지 않고 스위치만으로는 안정적인 트리거 펄스를 전달할 수 없습니다. 저항 R15는 핀 13을 접지 전위(디지털 LOW)로 유지하여 일부 표유 효과로 인해 높아지지 않도록 합니다. 슈미트 인버터 IC3(핀 1)의 입력 핀은 K2와 저항 R1에 연결된 스위치가 핀 3을 LOW로 당기는 접지 경로를 제공할 때까지 저항 R1을 통해 HIGH 상태로 유지됩니다. 이 경우 핀 1에서 LOW를 감지하는 인버터는 핀 2에서 반대를 출력합니다(따라서 인버터라는 이름). MCU 핀 13은 5볼트로 타격을 받지만 신호 진동 없이 uA의 전류만 발생합니다.
  • 불행히도 모든 스위치는 던져지면 '바운스'되며, 이는 신호가 새로운 상태로 안정될 때까지 빠르게 켜졌다 꺼졌다 함을 의미합니다. 이것은 스위치가 던져질 때마다 수십 개의 HIGH/LOW 상태를 목격할 수 있기 때문에 밀리초 단위로 코드를 반복하는 프로세서와 잘 맞지 않습니다.
  • 디바운스
  • 우리 벤처의 핵심은 물론 부트 로더가 있는 독립형 MEGA328P입니다. (이 MCU는 이를 지원하기 위해 특별히 제작된 회로에 연결하기 때문에 독립형이라고 합니다.) SCK(핀 1)에 부착된 노란색 LED7 및 R19은 칩이 활성 상태일 때 간단히 알 수 있도록 도와줍니다. 업로드 중에 칩이 재설정되거나 통신할 때 잠시 깜박입니다. 회로의 특정 부분은 MCU의 독립형 작동에 반드시 필요한 것은 아니지만 좋은 기능입니다. 핀 16 및 1의 22MHz 크리스털, Q9 및 10pf 커패시터는 발진기를 제공합니다. 칩, 내부 8MHz 발진기 및 베어 본을 더 많이 사용할 수 있지만 권장하지 않습니다. 스케치의 적절한 작동은 정확한 타이밍을 기반으로하며 8MHZ는 그것을 자르지 않습니다 (시도했습니다).
  • 회로 전원은 K1을 통해 레귤레이터 DC1의 핀 7에 도입됩니다. 이 레귤레이터는 Recom의 5V/1A 스위칭 DC/DC 컨버터입니다(DigiKey에서 R-78C5.0 제공). 여기에 표시된 변환기에 대한 입력 공급은 12V이지만 입력 볼륨tage 범위는 8-28볼트입니다. 이 컨버터는 91%의 효율로 작동하고 냉각되며 브레드 보드에 쉽게 연결됩니다. 임계 전압은 조정된 5V 출력입니다. 전원 ON 표시는 빨간색 LED4로 제공됩니다.
  • 회로도가 포함된 PDF 파일을 다운로드하여 인쇄하는 것이 가장 좋습니다. 회로 설명을 읽는 동안 참조로 사용하십시오. 회로도의 커넥터(K1, K2 등)는 브레드 보드에 필요하지 않으며 BOM에 포함되어 있지 않습니다.
  • 플러그 인 셀 충전기와 같은 벽면 사마귀 스타일 전원 공급 장치는 주 AC 전원에서 충분히 절연되지 않는 경우가 많으므로 보드에 직접 전원을 공급하지 마십시오.
  • BOM을 낮추기 위해 작업을 단순화하려고 노력했습니다. 예를 들어, 원래 회로는 한 쌍의 X-Bee 무선 트랜시버를 사용하도록 설계되었지만 궁극적으로 프로그램에 영향을 미치는 핀 상태 변경은 간단한 순간 스위치와 리모컨을 사용하여 시뮬레이션하는 저항으로 수행할 수 있습니다.

3단계: 키패드 헤더 핀 납땜

키패드는 수행할 수 있는 유일한 납땜 비트입니다. .7" 피치 브레이크 어웨이 헤더 핀에서 단일 01핀 섹션을 조심스럽게 부러뜨려 키패드 헤더를 만듭니다. 사진과 같이 짧은 끝을 키패드 PCB에 놓고 제자리에 납땜합니다.

알림: 이 지시 사항은 납땜 기술 등에 들어가지 않고도 충분히 큽니다. 도움이 필요한 경우 납땜 방법에 대한 지침이 있습니다. 그림으로 이동합니다.

4단계: 브레드보드 배치

브레드보드에 주요 구성 요소를 배치하는 것으로 시작하겠습니다. 와이어를 연결하고, 구성 요소를 배치하고, 손가락을 넣을 공간이 필요하므로 물건을 함께 모으려고 하지 마십시오. 좋은 품질의 핀셋 세트는 부품 작업에 사용할 수 있는 훌륭한 도구입니다.

중요: 정전기는 일부 집적 회로를 손상시키거나 파괴할 수 있습니다. 민감한 부품을 취급할 때는 항상 예방 조치를 취하십시오. 다음은 시작할 수 있는 링크입니다. 그러나 기본적인 정전기 안전으로 충분할 것입니다 (예 : 양말을 신고 카펫을 가로질러 MCU를 집어 들지 마십시오.이 프로젝트의 물건과 함께 정전기 방지 매트를 사용할 필요는 없습니다.

사진과 같이 부품을 배치하십시오. 화살표는 각 부품의 핀 1을 나타냅니다. 대부분의 칩은 몸체 상단에 U자형 움푹 들어간 곳이 있습니다. 이 표시의 왼쪽에 있는 핀은 일반적으로 핀 1입니다. 다른 장치에는 핀 1 옆에 작은 원형 들여쓰기가 있을 수 있습니다. 확실하지 않은 경우 데이터 시트를 확인하십시오.

참고 : 브레이크아웃 헤더는 8개의 브레이크 어웨이 핀을 사용하여 만들 수 있습니다. 반드시 필요한 것은 아니지만 이 헤더는 나중에 MCU 핀에 대한 쉬운 액세스 포인트로 사용할 수 있습니다.

참고 : LCD로 표시된 헤더는 LCD 하니스 와이어를 LCD 회로 기판에 납땜하기로 결정한 경우에만 사용됩니다.

5단계: 전원 공급 장치 배선 및 테스트

참고 : 이것은 DC-DC 변환기입니다. AC 볼륨을 적용하지 마십시오TAGE 이 장치에

사진과 같이 변환기를 배선합니다. 긴 주황색 와이어는 상단의 12V DC 전원 레일에 연결됩니다. 핀 2의 갈색 와이어는 주 DC 접지입니다.

빨간색 선은 주 5V 버스의 양극에 연결되고 녹색 선은 버스 접지입니다.

빨간색 LED 중 하나를 가져와 그림과 같이 양극(일반적으로 가장 긴 와이어 리드)을 컨버터 핀 3 브레드보드 트랙에 연결하고 음극을 접지에 연결하는 560옴 저항으로 회로를 완성합니다. 이것은 '전원 켜기' 표시입니다.

마지막으로 그림과 같이 10V 레일에 5uF 커패시터를 배치하고 양극 및 음극 리드의 방향이 올바른지 확인합니다.

8-12V(권장) 볼트 DC 전용 전원 공급 장치를 상단 레일에 연결하여 양극과 음극이 올바른지 확인합니다. 모든 것이 올바르게 배선되면 전원 켜기 LED가 켜집니다.

멀티 미터가 있는 경우 DC/DC 컨버터의 출력을 확인하십시오. 5V의 밀리볼트 이내여야 합니다.

12V 전원을 분리합니다.

6단계: 5볼트 레일 연결

그림과 같이 보드에 추가 5볼트 레일을 생성하고, 실수로 고전압 레일에 연결하지 않도록 각별히 주의합니다. 올바른 전압에 대해 모든 새 레일을 테스트하십시오.

7단계: AtMega 328 배선 1단계

참고 : 쉬운 배치를 위해 그림과 같이 일부 저항의 와이어 리드를 구부려야 할 수도 있습니다.

배선 절차를 완전히 이해하려면 회로도를 따르십시오.

MCU의 핀 1(노란색 화살표로 표시)에서 시작합니다.

  1. FTDI 헤더 핀 1(DTR)과 MCU 핀 6(RESET) 사이에 .1uF 캡을 연결합니다. 이 커패시터는 칩 부트 로더에 트리거 신호(일시적인 LOW 신호)를 보내 보류 중인 업로드를 찾도록 지시하기 때문에 성공적인 업로드에 매우 중요합니다.
  2. 1V와 MCU 핀 914 사이에 5N1 다이오드를 연결하고 다이오드 블랙 라인이 5V 레일을 향하도록 합니다.
  3. 10V의 5K 풀업 저항을 MCU 핀 1에 연결합니다.
  4. MCU 핀 1에서 리셋 스위치의 한쪽으로 와이어를 연결합니다.
  5. 리셋 스위치의 다른 쪽을 접지에 연결합니다.

8단계: AtMega 328 배선

사진과 같이 배선을 완료하십시오. (회로도에서 LED1로 표시된 그림의 LED는 당시 노란색이 없었기 때문에 녹색입니다.)

  • FTDI 핀 5(TXD)에서 MCU 핀 3 와이어가 올바른지 확인하십시오.
  • MCU 핀 10(RXD)과 FTDI 헤더 핀 2 사이에 4K 저항을 연결합니다.
  • 16MHz 크리스털은 핀 9와 10에 걸쳐 연결되며 두 핀 모두 22pF 커패시터를 사용하여 접지에 연결됩니다.

회로도에 대해 수행한 모든 배선을 다시 확인하십시오.

보드에 전원을 공급하고 재설정 버튼을 누릅니다. 핀 1이 낮게 당겨지면 노란색 LED가 여러 번 깜박이는 것을 볼 수 있습니다.

그렇지 않은 경우 ;

  • 핀 5에서 1V를 테스트합니다. 리셋 버튼을 누르면 이 핀에 전압 강하가 표시되어야 합니다. 그렇지 않으면 리셋 스위치가 잘못되었거나 잘못 배선된 것입니다.
  • 3V 버튼 셀을 사용하여 LED를 테스트합니다(양극에서 양극으로)).
  • LED가 올바르게 설치되어 있고 저항 값이 올바른지 확인하십시오.
  • 모든 배선이 정확한지 다시 확인하십시오.

9단계:첫 번째 FTDI 업 로드 수행

중요 : 브레드 보드의 모든 전원을 제거하십시오. FTDI 케이블은 보드에 전원을 공급합니다.

직렬 기능에 USB를 추가하는 것은 대부분의 독립형 MCU 프로젝트가 수행하는 것보다 한 단계 더 발전한 것입니다. Mega 328에 코드를 업로드할 방법이 없으면 스케치를 업로드하려면 회로에서 코드를 꺼내 Adruino 보드 또는 이와 동등한 장치에 연결해야 합니다. 이 프로젝트에서 FTDI 변환기(프로그래밍 케이블에 있음)는 USB 프로토콜을 처리하고 회로에서 제거하지 않고도 MCU에 새 스케치를 업로드할 수 있도록 합니다. 회로를 인쇄 회로 기판으로 전송할 때 쉽게 액세스할 수 있도록 배선된 FTDI 핀을 사용하여 MCU를 영구적으로 설치할 수 있습니다. 노트북을 새 장치에 연결하기만 하면 현장에서 프로그래밍 업데이트를 수행할 때의 모습을 상상해 보십시오.

그림과 같이 5V FTDI 프로그래밍 케이블을 연결합니다. 헤더 핀을 식별하기 위한 어떤 종류의 표시도 제공되지 않습니다(이것이 내가 접지 핀에 레이블을 붙인 이유입니다).

USB 끝을 컴퓨터에 연결하면 노란색 LED가 즉시 몇 번 깜박이는 것을 볼 수 있습니다.

Arduino IDE(Ver 1.8.1) 및 Sparkfun의 5V 프로그래밍 케이블을 사용하는 경우:

  • 도구 - 보드를 클릭하고 Arduino/Genuino Uno를 대상으로 선택합니다.
  • Tools - Programmer(도구 - 프로그래머)를 클릭하고 AVRISP mkII를 선택합니다.
  • Tools - Port(도구 - 포트)를 클릭하고 자동으로 선택되지 않은 경우 포트를 선택해야 할 수 있습니다.

업로드하기에 좋은 첫 번째 스케치는 간단한 Arduino Blink 스케치입니다.

업로드가 시작되면 회로의 노란색 LED가 몇 번 빠르게 깜박입니다.

모든 것이 작동하면 IDE에서 쓰기/읽기 프로세스를 볼 수 있으며 이제 작동하는 회로 내 프로그래밍 가능한 마이크로 컨트롤러가 있습니다. 축.

참고: 이 시점에서 I/O 핀은 유해하게 연결되어 있지 않으므로 무엇을 업로드하든 상관없지만 스케치를 업로드하기 전에 항상 생각하십시오. MCU 핀이 어떻게 연결되는지, 그리고 이것이 새 프로그램에 어떤 의미가 있는지 알고 있어야 합니다.

중요: FTDI 헤더가 제자리에 납땜되어 있지 않기 때문에 케이블을 분리하려고 할 때 브레드 보드에서 나오는 경향이 있습니다. 헤더를 브레드 보드에 올바르게 재설정했는지 확인하십시오.

 

10단계: MCU에 포트 확장기 연결

포트 확장기(IO 확장기라고도 함)는 프로젝트에 입력/출력 핀을 추가하는 방법입니다. 이는 일반적으로 I2C 통신으로 알려져 있으며 MCU의 직렬 클록(SCL) 및 직렬 데이터(SDA) 핀만 필요합니다. 이를 통해 키패드와 같은 핀 집약적 장치를 추가할 수 있습니다. 실제로 이러한 디바이스 중 16개(모두 주소가 다름)를 I2C 버스에 추가하여 다수의 IO 핀을 만들 수 있습니다. 프로젝트에 시간 표시가 필요합니까? 이것은 그것을하는 한 가지 방법입니다.

상기 포트 익스팬더를 추가하는 단계;

칩 주소를 올바르게 설정하는 것이 중요합니다. 우리 코드에는 주소 0x20가 필요하며 이를 위해 핀 1, 2, 3을 접지합니다. (주소 및 설정 방법은 각 칩 데이터 시트에서 찾을 수 있습니다.)

다음으로 MCU와 포트 확장기 사이에 I2C SDA(직렬 데이터 라인)와 SCL(직렬 클록 라인)을 연결합니다. 이들은 각각 익스팬더 핀 27 및 28에 대한 MCU 핀 15 및 14입니다. 이것은 칩 간의 통신 링크입니다.

VDD 핀 16을 5V에 연결하고 .1uF 바이패스 커패시터를 접지에 연결합니다. 마지막으로 핀 8을 접지에 연결합니다.

참고 : 커패시터 C2 및 C3은 원치 않는 AC 신호를 접지로 션트하는 바이패스 커패시터입니다. 빵 보드는 머리 위 조명 등과 같은 인근 AC 소스에서 소음을 포착하는 것으로 유명합니다.

 

11단계: 키패드를 포트 확장기에 연결

Port Expander 칩의 핀 10, 4, 5에 있는 6K 풀업 저항 R4, R6 및 R9를 연결합니다. 이 저항은 5V 레일에 연결됩니다.

** 사진의 핀 9에 있는 저항이 잘못(접지) 연결되었습니다.

키패드를 포트 확장기에 연결하려면 7개의 와이어가 필요하므로 사진의 혼동을 피하기 위해 두 단계로 수행합니다.

  1. 키패드 핀 5, 6 및 7을 포트 확장기 핀 9, 10 및 11에 첫 번째 사진과 같이 순서대로 연결합니다
  2. 키패드 핀 1, 2, 3 및 4를 포트 확장기 핀 4, 5, 6 및 7에 사진 키패드와 같이 순서대로 연결합니다.

12 단계 : 가청 피드백 설치

피에조

사진 1 : 키패드 아래에서 실행되는 레일(갈색 및 흰색 전선)에 표시된 대로 양극 및 음극 전선을 실행하여 피에조에 대한 12V 전원을 생성합니다. 9볼트만으로도 잘 작동하지만 12볼트는 좋은 긍정적인 사운드를 제공합니다.

사진 2 : 다음으로 1K 저항의 리드를 구부려 피에조 핀의 피치와 일치시킵니다. 리드선이 브레드 보드에 완전히 삽입되도록 충분히 허용하십시오.

사진 3 : 키패드 아래의 투명 브레드보드 영역에서 그림과 같이 피에조 회로를 배치합니다. 가지고 있는 NPN 트랜지스터의 데이터 시트를 확인하고 콜렉터, 베이스 및 이미터 리드가 그림과 같이 연결되도록 보드에 배치합니다. 사진 속의 것은 일반적인 BC547B입니다. 동등한 NPN 유형을 사용할 수 있습니다.

MCU 핀 12에서 트랜지스터 베이스 리드까지 와이어를 연결합니다.

사진 4 : 마지막으로 피에조를 설치하여 핀이 저항을 가로질러 연결되고 양극 핀이 양극 와이어에 연결되어 있는지 확인합니다.

저항기 베이스에 전압을 가하여 트랜스듀서 피에조를 간단히 테스트할 수는 없습니다. 희미한 딸깍 소리만 납니다. 이 피에조를 실행하려면 PWM(펄스 폭 변조) 신호가 필요합니다. 이를 테스트하려면 MCU에 로드된 KPD_LCD_tutorial 스케치(또는 신호 발생기와 같은 PWM 신호를 생성하는 다른 방법)가 필요합니다.

스케치를 업로드하고 보드에 전원을 공급하면 키를 누를 때마다 깨끗한 신호음이 울려야 합니다.

그렇지 않은 경우 재설정 버튼을 누르고 MCU가 재부팅될 때까지 몇 초 동안 기다리십시오.

참고: MCU 핀 13 및 17은 레이아웃의 이 지점에서 부동 상태(연결되지 않음)입니다. 브레드 보드의 표유 환경 영향 또는 커패시턴스는 코드에서 HIGH 또는 LOW 핀 상태를 번갈아 가며 해석할 수 있습니다. 이로 인해 피에조에서 간헐적으로 신호음이 울릴 수 있습니다. 이 핀에 10K 풀다운 저항 R15 및 R16을 설치하면 이를 방지할 수 있습니다.

스피커(사이렌)

핀 11에서 보드의 편리한 지점으로 점퍼를 실행하고 그림과 같이 스피커를 연결하여 4.7uF 커플링 커패시터의 극성이 정확하도록 주의합니다. 거의 모든 소형 8옴 스피커가 가능합니다. 그림에 있는 것은 테스트 목적으로 가지고 있는 작은 100mW입니다(브레드 보드용으로 납땜된 리드가 있음).

13단계: 시각적 피드백 제공

피에조의 가청 피드백 외에도 삼색 RGY LED는 색상(예: 성공적인 작동의 경우 녹색, 부분 고장의 경우 노란색, 더 심각한 정보의 경우 빨간색)을 기반으로 사용자에게 몇 가지 시각적 신호를 제공합니다.

회로도를 보면 회로가 '공통 음극' 유형 LED용으로 설계되었음을 알 수 있으며, 이는 장치의 3개 다이오드가 모두 공통 접지를 공유한다는 것을 의미합니다. 이를 통해 단일 저항을 사용하고 <>개의 양극을 모두 MCU 출력 핀에 직접 연결할 수 있습니다.

팁: LED와 저항이 제자리에 있으면 점퍼 와이어를 사용하여 색상과 관련된 양극을 빠르게 식별할 수 있습니다. 보드에 전원을 공급하고 점퍼의 한쪽 끝을 5V 레일에 연결하고 다른 쪽 끝을 양극에 터치하여 연결된 LED를 켭니다.

테스트: LED를 완전히 테스트하려면 KPD_LCD_tutorial 스케치를 MCU에 로드해야 합니다. 그렇다면 알려진 입력을 입력하여 테스트할 수 있습니다. 스케치 주석을 읽으면 이것이 어떻게 작동하는지 배우게 될 것입니다.

참고: 다음 테스트를 위해 KPD_LCD_tutorial 스케치를 업로드해야 합니다.

  1. 재설정 버튼을 눌러 칩을 재부팅합니다. 몇 초간 기다립니다.
  2. 55*를 누르면 빨간색 LED가 저음/저음으로 두 번 깜박여야 합니다.
  3. 100* 누르기 - 노란색 LED가 저음/저음으로 한 번 깜박여야 합니다.
  4. 1# 누르기 - 녹색 LED가 저음/고음으로 한 번 깜박여야 합니다.

어떤 단계에서든 색상이 잘못되거나 소리가 나지 않으면 배선을 확인하십시오.

계속하기 전에 브레드 보드 전원을 제거하십시오.

14단계: LCD 연결

Sparkfun의 와이어 하네스는 한쪽 끝에 JST 스타일 커넥터가 있고 다른 쪽 끝에는 주석 도금 와이어가 있습니다. LCD 모듈을 보면 하니스를 연결할 수 있는 두 곳이 있음을 알 수 있으며 둘 다 전기적으로 동일합니다. 하니스를 LCD에 연결하고 프로젝트에서 주석 도금 와이어를 사용하거나 주석 도금 와이어를 LCD에 납땜하고 브레드 보드에서 플러그를 사용할 수 있습니다.

우리의 목적을 위해 하네스를 LCD에 연결하고 브레드보드의 주석 도금 끝을 사용하는 것이 가장 간단합니다. 보여진 바와 같이.

회로도를 따라 사진을 참조하여 LCD를 배선합니다. 브레드 보드의 전원을 켜면 LCD 공장 시작 화면이 "KPD_LCD_tutorial 버전 1.0.01"로 대체되고 스케치의 첫 번째 프로그램 프롬프트가 표시됩니다. (스케치가 업로드되었다고 가정합니다.)

시작 화면을 개인화하려면 스케치의 설명을 따르십시오.

참고 : 손상을 방지하려면 MCU에 코드를 업로드하기 전에 항상 브레드 기판에서 전원을 제거하고 LCD 모듈의 플러그를 뽑으십시오.

 

15단계: 슈미트 인버터 배선

회로도와 사진을 참조하여 인버터와 디바운스 회로를 배선하십시오. 우리는 '액티브 로우' 회로를 구축하고 있는데, 이는 '트리거 이벤트'가 저전압 상태가 되기를 원한다는 것을 의미합니다. 스위치를 닫으면 접지 경로가 생성됩니다.

일시적인 유형이 아닌 경우 모든 스타일 스위치를 사용할 수 있으며 일정한 상태를 제공하는 켜기/끄기 스위치여야 합니다. 이 스위치를 RUN/STBY라고 하며 STBY는 스위치 열림 위치입니다.

회로도에 표시된 인버터는 IC1의 6개 인버터 중 3개입니다. 우리는 하나만 사용하고 있지만(1핀 칩의 핀 2과 14에 연결됨) 나중에 자신의 프로젝트에서 여러 MCU 핀에서 유사한 방식으로 나머지를 사용하는 것을 막을 수 있는 것은 없습니다.

메모: 이 칩에서 사용되지 않는 입력은 VCC 또는 GND에 연결되어야 하며 부동 상태로 남아 있지 않아야 합니다. 다른 것이 연결되어 있지 않기 때문에 빵 보드의 이 지점에서는 거의 차이가 없지만 최종 회로 설계에서 이를 수행해야 합니다.

테스트: KPD_LCD_tutorial 스케치가 로드되어 있으면 테스트가 간단합니다. RUN/STBY 스위치가 STBY 상태인지 확인하고 보드에 전원을 공급합니다. 시스템이 부팅될 때까지 일시 중지한 다음 RUN을 선택합니다.

이중 신호음이 들리고 빨간색 LED가 몇 초마다 3번 깜박이는 것을 볼 수 있습니다. 매개 변수를 입력하지 않은 실행 명령을 받았으므로 계속 진행할 수 없음을 알리는 코드입니다. 또한 스위치를 다시 대기 모드로 이동하라는 LCD 프롬프트가 표시되어야 합니다. STBY를 선택하면 첫 번째 LCD 프로그래밍 프롬프트가 나타나며 이미 스마트 회로입니다.

 

16단계: 원격 입력 시뮬레이션

사진과 같이 순간(푸시 버튼) 스위치를 배선합니다.

디바운스 회로는 코드에서 처리되므로 여기에 필요하지 않습니다. 여기서 목적은 원격에서 올 수 있는 입력을 시뮬레이션하는 것입니다. 버튼을 누르기만 하면 MCU가 HIGH로 해석하는 핀 17을 5V에 연결하기만 하면 됩니다.

스케치는 모든 루프(초당 수백 번)에서 이 핀을 보고 첫 번째 푸시에서 일시 중지 루틴을 입력하고 두 번째 푸시에서 일시 중지 루틴을 유지합니다. 버튼 누름 사이에 7초의 프로그래밍된 지연이 필요합니다.

참고: 이 순간적인 신호를 전달하는 방법은 말 그대로 수백 가지가 있습니다. X-Bee 무선 트랜시버 모듈 또는 수동 IR 센서는 어떻습니까?

FTZO547IYLZPQSZ.ino
0.02MB
F5Y4FWEIRXT74MZ.zip
0.00MB
FUF89WGIRXT74MY.zip
0.00MB
FSUKMW0IRXT73QV.zip
0.00MB
KPD_LCD_tutorial_1.0.03.ino
0.04MB

728x90