mpr121 예제

브레이크 아웃 보드에는 통신을 얻기 위해 최소한 마이크로 컨트롤러에 연결해야하는 4 개의 핀이 있습니다 : 전력선 및 I2C 회선. 그러나, 우리의 예를 들어, 우리는 또한 더 쉽게 전극 중 하나에 변화를 감지하기 위해 IRQ 핀을 연결될 것입니다. MPR121은 특히 예제 코드에서 사용하기가 매우 쉽습니다. 그러나 이전에 Arduino와 함께 일하지 않았거나 I2C 통신에 익숙하지 않은 경우 아래 자습서를 확인해야합니다. 키패드와 통신하려면 여기에서 사용할 수 있는 예제 스케치를 다운로드할 수 있습니다. 또는 GitHub 리포지토리에서 사용할 수 있는 최신 펌웨어를 확인할 수 있습니다. 예제 코드의 마지막 두 함수는 Arduino에게 버튼 누를 때 전극 상태를 확인하고 단추 를 누르면 인쇄할 내용을 확인합니다. 문제가 스위치 문에 없는지 확인: mpr121 키를 해제 할 때 `0`을 반환 합니다. 즉, 스위치는 매우 느린 LED 추적 (100ms 지연)인 `기본` 케이스를 호출합니다. 아무 것도 하지 않는 `0`에 대한 특수 사례를 사용하는 것이 좋습니다.

그런 다음 mpr121QuickConfig() 함수가 정의됩니다. 이 기능에서는 12개의 전극이 모두 활성화되고 모든 센서에 대한 터치 및 릴리스 임계값이 설정됩니다. 필터링 레지스터도 구성됩니다. 일부 printf() 문과 PCF8574 I2C 포트 익스팬더와 함께 위의 예제 코드의 기본 기능을 빠르게 테스트하면 메인이 긴 대기 시간에 갇혀있을 때에도 인터럽트가 여러 번 감지되었습니다. 기존 데모 코드는 Sparkfun 예제를 기반으로 하며 일부 테스트 데이터를 PC의 USB 가상 컴 포트에 인쇄합니다(비디오에서볼 수 있음). 터치 패드가 작동하면 데모 코드의 추가 printf 부분을 삭제할 수 있습니다 (다른 초기화 코드는 여전히 필요합니다). 두 개의 추가 파일이 프로젝트에서 사용됩니다( mpr121.cpp 및 mpr121.h). 다음은 디버그 printfs가 제거된 최소 데모 코드입니다: 예제 스케치의 마지막 두 함수는 irqpin의 상태를 확인하여 IC가 전극이 터치되었음을 알리는지 확인합니다. 마지막 함수 set_register는 단순히 와이어 라이브러리의 표준 단계를 통해 Arduino를 실행하여 IC에 레지스터를 작성합니다.

코드의 두 번째 섹션에서는 irqpin을 INPUT로 정의하여 Arduino에게 해당 핀 위로 들어오는 디지털 신호를 모니터링하도록 지시합니다. 직렬 통신은 또한 9600 bps, s뿐만 아니라 와이어 및 mpr121 라이브러리에서 시작됩니다. 방패가 조립되면 대화를 시작할 차례입니다! 여기에서 예제 코드를 다운로드하거나 GitHub 리포지토리에서 최신 버전을 찾을 수 있습니다. 이제 방패로 기본적인 통신을 시작하고 실행되었으므로 이를 프로젝트에 통합할 수 있습니다. 아직 전극 9, 10 및 11에 아무것도 연결하지 않은 경우 여기에 추가 버튼을 추가하는 것이 좋습니다. 또한 코드를 업데이트해야 합니다. Serial.println(숫자) 바로 앞에 예제 스케치에 다음 코드 블록을 추가하는 것이 좋습니다. 숫자 값을 변경하여 단추에서 “A”, “B” 또는 “C”가 아닌 다른 값을 출력하도록 할 수 있습니다. 인터럽트 처리기는 단추를 누르거나 해제할 때마다 계속 호출됩니다. 메인은 여전히 LED 추격전을 보여주는 바쁜 동안 그냥 아무것도 하지 않습니다.

mpr121.read()가 왜 문제를 일으킬 수 있는지 확실하지 않습니다. 유일한 것은 별도의 i2c 시작, 중지 및 바이트 보내기 작업을 사용한다는 것입니다. 블록 읽기 또는 쓰기를 사용하는 것이 더 빠를 것입니다. 어쨌든, 나는 그 장치나 LED 스트립이 없기 때문에 그것을 테스트 할 수 없습니다. 섹션 C의 설정 값을 자유롭게 변경하여 전극의 감도를 조정하십시오. TOU_THRESH와 같은 코드에서 사용되는 상수를 볼 수 있으며 이러한 값은 변경해야 하는 경우 mpr121.h에 정의됩니다. 또한 납땜 인두, 일부 연결 와이어 및 I2C 통신이 가능한 마이크로 컨트롤러를 원할 것입니다. 우리의 예에서, 우리는 아두 이노 우노를 사용하는 것입니다. 또한 정전 용량 감지 표면(전극이라고도 함)으로 작용하기 위해 일종의 재료가 필요하며, 이는 문자 전극과 혼동되지 않습니다.

This entry was posted in Uncategorized. Bookmark the permalink.