https://ggamji.tistory.com/110

 

아두이노회로만들기 - 3. 베터리 쓰기, 내부 클럭 쓰기, LED 점멸

이 글을 쓰려고 몇 일을 허비했는지 모르겠다. 아무튼 이전에는 아두이노 쓸땐 USB전원으로 넣는것 말고는 잘 몰랐지만 아두이노 드론 같은데서 리튬 이온 베터리를 쓰고 충전하는걸 보면서 어

ggamji.tistory.com

 

지난번 내부 클럭 사용하도록 부트로더 굽고, 블링크 코드를 업로드한 아두이노를 18650 베터리 전원으로 동작시킨것에

태양광 패널을 충전하도록 추가했다.

 

 

 

 

우선 태양광 패널 충전 전압을 확인했을때

태양광을 얼마나 받는지에 따라서 2 ~ 6V 사이로 크게 바뀌고 있었고

 

Atmega328 데이터 시트 상에서 기존 16MHz 동작시에는 4.5 ~ 5.5v로 동작 전압에 비해 변동이 너무 컸다.

18650 베터리 3.7v 쯤 되는걸 가지고 쓰니 베터리 단독으로 쓰거나 태양광 패널 단독으로 쓰는 경우를 생각해서

8MHz 클럭 속도를 쓰도록 부트로더를 다시 구웠다.

 

 

 

다시 복습하면

부트로더는 이렇게 연결해서 구웠고

위에께 아두이노 ISP를 올린 호스트 보드

아래께 8MHz 부트로더 굽는 타겟 보드


https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mapes_khkim&logNo=221890832646&view=img_1

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mapes_khkim&logNo=221890832646&view=img_1

 

블링크 코드는 이 그림과 같이 연결해서 업로드 하였다.

디지털 핀 기준으로는 12번인데, Atmega328p 기준으로는 18번 핀이다.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(12, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);                       // wait for a second
  digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
  delay(100);                       // wait for a second
}

https://create.arduino.cc/projecthub/techmirtz/arduino-without-external-clock-crystal-on-atmega328-d4fcc4

https://create.arduino.cc/projecthub/techmirtz/arduino-without-external-clock-crystal-on-atmega328-d4fcc4

태양광 충전과 배터리 전원으로 동작이 동시에 이뤄지는걸 방지하기위해서

스위치 두개를 추가했다.

태양광 충전만 ON 했을때 베터리 충전 모듈에 빨간 빛이 들어오며 충전되고 있는걸 확인할수있다.

 

 

 

 

 

 

스위치로 태양광 충전을 멈추고

배터리 전원을 쓰도록 했을때

블링크 동작이 잘 이루어진다.

 

 

+ Recent posts