mpr121 예제

MPR121은 특히 예제 코드에서 사용하기가 매우 쉽습니다. 그러나 이전에 Arduino와 함께 일하지 않았거나 I2C 통신에 익숙하지 않은 경우 아래 자습서를 확인해야합니다. 일부 printf() 문과 PCF8574 I2C 포트 익스팬더와 함께 위의 예제 코드의 기본 기능을 빠르게 테스트하면 메인이 긴 대기 시간에 갇혀있을 때에도 인터럽트가 여러 번 감지되었습니다. 문제가 스위치 문에 없는지 확인: mpr121 키를 해제 할 때 `0`을 반환 합니다. 즉, 스위치는 매우 느린 LED 추적 (100ms 지연)인 `기본` 케이스를 호출합니다. 아무 것도 하지 않는 `0`에 대한 특수 사례를 사용하는 것이 좋습니다. 기존 데모 코드는 Sparkfun 예제를 기반으로 하며 일부 테스트 데이터를 PC의 USB 가상 컴 포트에 인쇄합니다(비디오에서볼 수 있음). 터치 패드가 작동하면 데모 코드의 추가 printf 부분을 삭제할 수 있습니다 (다른 초기화 코드는 여전히 필요합니다). 두 개의 추가 파일이 프로젝트에서 사용됩니다( mpr121.cpp 및 mpr121.h). 다음은 디버그 printfs제거와 최소한의 데모 코드입니다 : 당신은 SparkFun이미이 센서에 대한 예제 코드를 가지고 있음을 발견 할 수있다 – 실제로,이 코드는 약간 그들의 기반. 그러나 이 설정 및 코드는 한 번에 하나의 전극을 감지하는 데 만국한되지 않습니다. 또한 와이어 라이브러리를 사용하여 코드를 2 개의 파일로 단순화합니다. 및…

전극 중 하나가 놓아도 느낄 수 있습니다. 섹션 C의 설정 값을 자유롭게 변경하여 전극의 감도를 조정하십시오. TOU_THRESH와 같은 코드에서 사용되는 상수를 볼 수 있으며 이러한 값은 변경해야 하는 경우 mpr121.h에 정의됩니다. 인터럽트 처리기는 단추를 누르거나 해제할 때마다 계속 호출됩니다. 메인은 여전히 LED 추격전을 보여주는 바쁜 동안 그냥 아무것도 하지 않습니다. mpr121.read()가 왜 문제를 일으킬 수 있는지 확실하지 않습니다. 유일한 것은 별도의 i2c 시작, 중지 및 바이트 보내기 작업을 사용한다는 것입니다. 블록 읽기 또는 쓰기를 사용하는 것이 더 빠를 것입니다. 어쨌든, 나는 그 장치나 LED 스트립이 없기 때문에 그것을 테스트 할 수 없습니다. 브레이크 아웃 보드에는 통신을 얻기 위해 최소한 마이크로 컨트롤러에 연결해야하는 4 개의 핀이 있습니다 : 전력선 및 I2C 회선. 그러나, 우리의 예를 들어, 우리는 또한 더 쉽게 전극 중 하나에 변화를 감지하기 위해 IRQ 핀을 연결될 것입니다.