준비물
아두이노 nano ble 33 sense 보드 (약 5만원)
5pin 데이터케이블 (5천원)
보드매니저에서 아두이노 나노 33 ble sense 보드 설치하기.
기기 테스트
아두이노 나노 33 ble sense에 있는 센서
1. 가속도계
2. 자이로스코프
3. 자력계
4. 압력
5. 온도 습도
6. 근접 센서
7. 마이크로폰
처음 센서코드를 입력하고 컴파일하면 라이브러리가 없다고 나오는데 라이브러리 관리에서 센서라이브러리를 각각 추가해주면 된다.
센서작동 코드
#include <Arduino_LSM9DS1.h> //Include the library for 9-axis IMU
#include <Arduino_LPS22HB.h> //Include library to read Pressure
#include <Arduino_HTS221.h> //Include library to read Temperature and Humidity
#include <Arduino_APDS9960.h> //Include library for colour, proximity and gesture recognition
void setup(){
Serial.begin(9600); //Serial monitor to display all sensor values
if (!IMU.begin()) //Initialize IMU sensor
{ Serial.println("Failed to initialize IMU!"); while (1);}
if (!BARO.begin()) //Initialize Pressure sensor
{ Serial.println("Failed to initialize Pressure Sensor!"); while (1);}
if (!HTS.begin()) //Initialize Temperature and Humidity sensor
{ Serial.println("Failed to initialize Temperature and Humidity Sensor!"); while (1);}
if (!APDS.begin()) //Initialize Colour, Proximity and Gesture sensor
{ Serial.println("Failed to initialize Colour, Proximity and Gesture Sensor!"); while (1);}
}
float accel_x, accel_y, accel_z;
float gyro_x, gyro_y, gyro_z;
float mag_x, mag_y, mag_z;
float Pressure;
float Temperature, Humidity;
int Proximity;
void loop()
{
//Accelerometer values
if (IMU.accelerationAvailable()) {
IMU.readAcceleration(accel_x, accel_y, accel_z);
Serial.print("Accelerometer = ");Serial.print(accel_x); Serial.print(", ");Serial.print(accel_y);Serial.print(", ");Serial.println(accel_z);
}
delay (200);
//Gyroscope values
if (IMU.gyroscopeAvailable()) {
IMU.readGyroscope(gyro_x, gyro_y, gyro_z);
Serial.print("Gyroscope = ");Serial.print(gyro_x); Serial.print(", ");Serial.print(gyro_y);Serial.print(", ");Serial.println(gyro_z);
}
delay (200);
//Magnetometer values
if (IMU.magneticFieldAvailable()) {
IMU.readMagneticField(mag_x, mag_y, mag_z);
Serial.print("Magnetometer = ");Serial.print(mag_x); Serial.print(", ");Serial.print(mag_y);Serial.print(", ");Serial.println(mag_z);
}
delay (200);
//Read Pressure value
Pressure = BARO.readPressure();
Serial.print("Pressure = ");Serial.println(Pressure);
delay (200);
//Read Temperature value
Temperature = HTS.readTemperature();
Serial.print("Temperature = ");Serial.println(Temperature);
delay (200);
//Read Humidity value
Humidity = HTS.readHumidity();
Serial.print("Humidity = ");Serial.println(Humidity);
delay (200);
//Proximity value
if (APDS.proximityAvailable()) {
Proximity = APDS.readProximity();
Serial.print("Proximity = ");Serial.println(Proximity);
}
delay (200);
Serial.println("_____________________________________________________");
delay(1000);
}
코드출처 : 1)
센서가 정상적으로 작동하면 시리얼모니터를 통해 각 센서값이 출력된다.
참고
1)
https://fishpoint.tistory.com/4419?category=626454
반응형
'만들기 > 아두이노' 카테고리의 다른 글
[아두이노] B10K 가변저항 사용하기 (0) | 2022.07.04 |
---|---|
릴레이와 온도센서를 이용한 히팅 플레이트 온도제어 (0) | 2022.07.02 |
트렌지스터, MOSFET 연결 (0) | 2022.05.23 |
아두이노 시리얼 모니터 0 자동 입력 오류 (0) | 2022.04.15 |
아두이노 무선데이터통신 HC-05 블루투스 연결하기 (2) (0) | 2022.04.14 |