처음 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으로 조정해서 맞췄습니다.
이렇게 한 후
전압(왼쪽 위)이 제대로 표시가 됩니다.
'Completed > 전기 자전거' 카테고리의 다른 글
전기자전거 간단버전 테스트 (13) | 2016.08.20 |
---|---|
전기자전거 - 생각정리 (1) | 2016.07.16 |
잡담)u8glib 폰트와 메모리의 용량. (1) | 2016.07.13 |
마찰식 전기 자전거 - OLED (2) | 2016.07.12 |
마찰식 전기 자전거 - 제작 방향의 전환. (0) | 2016.06.30 |