크리에이티브 커먼즈 라이선스
Creative Commons License

처음 OLED 에 표시될 부분은 배터리의 전압입니다. 


아두이노는 5V 까지의 입력을 아날로그로 읽을 수 있지만


그 이상의 전압은 전압분배회로를 이용해 분압된 전압을 읽은 후 


분압된 만큼 다시 역으로 계산해서 원래 전압을 표시하면 됩니다. 



RC용 LiPo 배터리를 사용할 생각이고


3셀~6셀 정도의 배터리를 사용한다고 할 때


1셀의 전압은 3.6V 부터 4.3V 까지이므로 


4.3*6셀 = 25.8V 까지를 측정범위로 잡으면 되겠군요 




Vin = Vout / ( R2 / ( R1 + R2)) 를 계산하면 되는데



귀찮으니 그냥 앱을 사용합니다. 





18K 와 4.3K 저항을 사용하면 됩니다. 





그런데 저항박스를 뒤져보니 해당 저항이 없군요...







저항을 쓰기 편하게 Vin 30v, Vout 5V 입력하니 R1 10K, R2 2K 가 나왔습니다. 


입력전압은 1/6 되어 계산이 됩니다. 



  voltValue = analogRead(vinPin);

  batVoltage = voltValue*30/1024;   // Vout 5V * 전압분배비 6 = 30 을 곱한 후 1024로 나눔.



여기서 1024로 나누니 약간 오차가 있어 1080으로 조정해서 맞췄습니다. 



이렇게 한 후 





전압(왼쪽 위)이 제대로 표시가 됩니다. 




저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 하얀마음 2016.07.22 08:22 신고

    저도 이앱 구매했는데 제대로 사용을 못하고 있네요.

  2. 2016.08.05 15:19

    비밀댓글입니다

    • pashiran 2016.08.05 15:28 신고

      네 맞습니다. 저항을 이용해 전압을 1/N 으로 나눠줄 수 있기 때문에 원래 전압을 아두이노가 읽을 수 있게 저항으로 N 만큼 나눠서 입력하고, 아두이노에서 다시 N을 곱해서 계산하면 되는 것입니다.

  3. 2016.08.05 16:32

    비밀댓글입니다

    • pashiran 2016.08.05 16:35 신고

      1k를 직렬연결해도 되고 2k/10k 또는 1k/5k 이렇게 비율만 맞아도 됩니다. 저항 가운데를 아두이노의 아날로그 입력으로 연결하고 배터리의 (-)극과 아두이노의 gnd를 같이 연결해주시면 됩니다

+ Recent posts

', 'auto'); ga('send', 'pageview');

티스토리 툴바