상세 컨텐츠

본문 제목

Arduino MKR 1310 배터리 연결하기 (Arduino MKR 1310 with Batteries)

embedded/IoT

by ZelKun 2023. 1. 29. 16:35

본문

반응형

[embedded/IoT] - Arduino MKR 1310 사용해보기 (with TTN)

 

Arduino MKR 1310 사용해보기 (with TTN)

Device 추가할때 From The LoRaWAN Device Repository 를 이용했는데, Gateway 설정은 KR920_TTN 이라 Manually 로 KR920 주파수로 잡아야 정상동작하는것 같아요 앱등록시 Repository대신 Manually로 진행해줍니다 Gateway

zelkun.tistory.com

 

MKR 1310 보드로 TTN에 온습도를 보내는거 까진 좋았는데

언제까지 USB에 연결해서 쓸 수는 없으니

 

배터리로 전원을 바꿔보기로 했습니다

출처: https://docs.arduino.cc

Pinmap 을 보면 Li-Po 3.7v 배터리 연결할 수 있네요

 

일단 MKR 보드는 JST 플러그를 이용해서 배터리연결이 가능합니다

저는 가지고 있던 배터리 커넥터가 안맞아서 JST 플러그 주문해서 바꿔줬습니다

https://a.aliexpress.com/_mKAttM2

 

US $0.78 25% Off | 5Pair Mini 2Pin 1.25mm / PH 2.0mm / XH 2.54mm / SM JST Male Plug Female Jack Socket DIY Electrical Wire Te

US $0.78 25% Off | 5Pair Mini 2Pin 1.25mm / PH 2.0mm / XH 2.54mm / SM JST Male Plug Female Jack Socket DIY Electrical Wire Terminal Cable Connector

star.aliexpress.com

 

하지만... 연결만 하면 되는게 아닌지

LED가 안켜지고, 테스터기로 찍어봐도 5v연결이 안되는건지

보드에 전원이 안들어가서

고생좀 했습니다;;;

 

배터리를 연결하려면 PMIC(Power Management IC) 소스를 추가해야하나봐요

라이브러리 관리에서 BQ24195 로 검색하거나 PMIC 로 검색해서

관련 라이브러리를 추가해 줍니다

https://zelkun.tistory.com/entry/012-Arduino-아두이노-library-라이브러리-추가하기

Arduino MKR 1310 배터리 연결하기 (Arduino MKR 1310 with Batteries)

라이브러리를 설치하고

예제를 보드에 업로드해서 테스트를 해줍니다

Arduino MKR 1310 배터리 연결하기 (Arduino MKR 1310 with Batteries)

4개의 예제가 있는데요

저는 첫번째 BatteryCharger 로 했습니다

 

#include <Arduino_PMIC.h>

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  if (!PMIC.begin()) {
    Serial.println("Failed to initialize PMIC!");
    while (1);
  }

  // Set the input current limit to 2 A and the overload input voltage to 3.88 V
  if (!PMIC.setInputCurrentLimit(2.0)) {
    Serial.println("Error in set input current limit");
  }

  if (!PMIC.setInputVoltageLimit(3.88)) {
    Serial.println("Error in set input voltage limit");
  }

  // set the minimum voltage used to feeding the module embed on Board
  if (!PMIC.setMinimumSystemVoltage(3.5)) {
    Serial.println("Error in set minimum system volage");
  }

  // Set the desired charge voltage to 4.11 V
  if (!PMIC.setChargeVoltage(4.2)) {
    Serial.println("Error in set charge volage");
  }

  // Set the charge current to 375 mA
  // the charge current should be defined as maximum at (C for hour)/2h
  // to avoid battery explosion (for example for a 750 mAh battery set to 0.375 A)
  if (!PMIC.setChargeCurrent(0.375)) {
    Serial.println("Error in set charge current");
  }
  Serial.println("Initialization done!");
}

void loop() {
  // Enable the Charger
  if (!PMIC.enableCharge()) {
    Serial.println("Error enabling Charge mode");
  }
  // canRunOnBattery() returns true if the battery voltage is < the minimum
  // systems voltage
  if (PMIC.canRunOnBattery()) {
    // loop until charge is done
    while (PMIC.chargeStatus() != CHARGE_TERMINATION_DONE) {
      delay(1000);
    }
    // Disable the charger and loop forever
    Serial.println("Disable Charge mode");
    if (!PMIC.disableCharge()) {
      Serial.println("Error disabling Charge mode");
    }
    while (1);
    // if you really want to detach the battery call
    // PMIC.disableBATFET();
    //isbatteryconnected = false;
  }
  delay(100);
}

예제코드를 보면 상황에 따른 로그출력

충전중, 충전후 좀 세부적으로 나뉘어 있네요

 

주의할게 있다면.. 저 소스를 그냥 올리면 while 문에 빠져서

보드가 동작을 안합니다...

 

아래코드를 주석처리 하거나, 벗어날 수 있도록 수정해야 합니다

// Loop 안의 while
while (1);

// 충전상태
while (PMIC.chargeStatus() != CHARGE_TERMINATION_DONE)

while(1); 문은 무조건 대기이기 때문에

저는 주석처리 했습니다

 

아래 충전상태는 배터리 사용일때 확인하는 로직으로

필요시 충전여부에 따라 다른 로직을 넣으면 됩니다

저는 저부분도 주석처리로 넘어갔습니다

#include <Arduino_PMIC.h>

void setup() {
	PMIC.begin();
}

void loop() {

}

생각해보니 loop에서는 충전상태여부로 나뉘는것 같으니

setup에 PMIC.begin(); 만 사용해도 배터리 연결은 될것 같네요

 

배터리 연결하고 반응이 없어서 고생한걸 생각하면

심플하게 끝

참고

1. https://docs.arduino.cc/hardware/mkr-wan-1310

2. https://github.com/arduino-libraries/Arduino_BQ24195

3. https://docs.arduino.cc/tutorials/mkr-wifi-1010/powering-with-batteries

 

 

반응형

관련글 더보기

댓글 영역