loop() 기능을 사용하여 센서 데이터를 수집하고 g 힘으로 측정된 적절한 단위로 확장하고 원시 및 배율 조정된 데이터를 직렬 모니터에 모두 인쇄합니다. 먼저 센서 데이터를 읽는 방법을 살펴보겠습니다. 따라서 가속도계가 평평하고 Z축이 중력과 반대로 위쪽을 가리키는 경우 센서의 Z축 출력은 1g이 됩니다. 반면에 중력은 이러한 축에 수직이며 전혀 영향을 미치지 않기 때문에 X 및 Y 출력은 0이 됩니다. 올바른 가속도계를 선택하려면 센서가 받게 될 최대 선형 가속도를 고려하십시오. 당신은 작은 모바일 로봇에 가속도계를 추가 할 계획이라면, 당신은 가능성이 2g 가속도계를 사용합니다 (심지어 그 가능성이 과잉), 당신이 로켓에 연결하는 경우 반면, 16g 가속도계는 가능성이 더 나은 선택입니다. 10 비트 ADC에 연결하면 2g 가속도계는 2 / 1024 = 0.002g의 정확도를 가지며 16g 가속도계는 16 / 1024 = 0.0156의 정확도를 갖습니다. 따라서 2g의 범위만 필요하지만 16g 가속도계를 구입하면 전체 1024 대신 약 128 개의 가능한 판독값만 있습니다. 반대로, 16g이 필요할 때 2g 가속도계를 선택하면 가속이 “스케일에서 벗어났기 때문에 최대 (1024) 판독값”을 많이 얻을 수 있습니다. 우리는 아두 이노에 아날로그 입력 A0, A1, A2를 사용하고 몇 아날로그는 그 핀의 전압에 해당하는 0과 1023 사이의 숫자를 얻기 위해 읽습니다. 이러한 전압은 센서의 최신 가속도 측정을 반영합니다. 예를 들어 ADXL337이 X 핀에서 3.3V를 측정하는 경우 X 축에서 +3g을 측정한다는 의미입니다.
이것은 차례로 마이크로 컨트롤러에 의해 측정됩니다. 3.3V 마이크로 컨트롤러를 사용하는 경우 아날로그 읽기가 1023을 반환하고 변수 rawX에 해당 값을 저장합니다. 5V 마이크로 컨트롤러를 사용하는 경우 아날로그 읽기가 675를 반환하고 대신 동일한 변수에 해당 값을 저장합니다. 따라서 변수 micro_is_5V를 올바르게 설정하여 이러한 원시 값을 해석하는 방법을 알 수 있습니다. 스케치를 실행하면 MPU6050 센서가 방향을 추적하는 데 얼마나 좋은지 알 수 있습니다. 3D 개체는 센서의 방향을 매우 정확하게 추적하며 반응도 매우 뛰어납니다. 자, 이제 Arduino를 사용하여 ADXL345 가속도계 데이터를 읽는 방법을 살펴보겠습니다. 이 센서는 Arduino와의 통신을 위해 I2C 프로토콜을 사용하므로 연결하기 위해 두 개의 전선과 전원을 공급하기 위한 두 개의 전선이 필요합니다.