inflearn logo
강의

講義

知識共有

電動キックボードで学ぶ組み込み実践プロジェクト

電動キックボードのファームウェアコード分析(2)

전류 센싱 문의

5

dayday

投稿した質問数 28

0

안녕하세요.


제어쟁이님,

1. 아래에서 2048 빼주는 이유는 0A일때 2.5V 이므로, 2048을 빼주는 건가요..??

// 평균 오프셋 계산

Ias_Offset = (Ias_Offset/10) - 2048;

Ibs_Offset = (Ibs_Offset/10) - 2048;

Ics_Offset = (Ics_Offset/10) - 2048;


  1. 업카운트 50us + 다운카운트 50us 이후에 100us 마다 인터럽트가 발생하도록 설계하신게 맞나요..?? (즉, 이벤트2번 = 인터럽트1번)





임베디드 stm32 hardware motordriver artwork

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. dayday님.

네, 2048은 12비트 ADC에서 0A일 때의 오프셋을 제거하기 위한 값입니다.

12비트 ADC의 전체 범위는 0~4095이고, 중간값은 다음과 같습니다.

4095 / 2 ≈ 2048

전류가 0A일 때 전류 센서 출력이 ADC 기준 전압의 중간값인 약 1.65V가 되도록 설계되어 있다면, ADC 원시값은 대략 2048이 됩니다. 따라서 평균 오프셋을 계산한 뒤 2048을 빼면 0A 기준점을 0으로 맞출 수 있습니다.

Ias_Offset = (Ias_Offset / 10) - 2048;

예를 들어 평균 ADC 값이 2050이라면 오프셋은 다음과 같습니다.

2050 - 2048 = 2

이후 전류 계산에서 이 오프셋을 보정하면 센서의 영점 오차를 줄일 수 있습니다.

다만 질문하신 것처럼 실제 0A 출력이 2.5V라면 2048이 아니라 2.5V에 해당하는 ADC 값에서 빼야 합니다.

2.5V / 3.3V × 4095 ≈ 3102

즉, 실제 회로에서 0A일 때 ADC 값이 약 3102라면 다음과 같이 보정해야 합니다.

Ias_Offset = (Ias_Offset / 10) - 3102;

따라서 먼저 멀티미터로 0A 상태의 센서 출력 전압을 확인하고, 동시에 ADC 원시값을 출력해 보는 것이 정확합니다. 이 강의의 전류 측정 회로는 0A 기준점을 약 1.65V, 즉 ADC 값 약 2048에 맞춘 구성으로 설명되어 있으므로, 실제 보드의 회로 구성이나 전원·저항값이 다르다면 오프셋 값도 달라질 수 있습니다.

관련 내용은 아래 기존 질문과 답변을 참고해 주세요.

  • 전류 계산에 대한 질문입니다.
    ADC 원시값에서 오프셋을 제거하는 과정과 전류 센싱 회로의 기준 전압에 대해 설명되어 있습니다.
  • ABC 상전류 측정
    션트 저항을 이용한 상전류 측정 및 ADC 입력의 역할에 대해 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

키트 구매 여부

0

26

3

소형모터 구동

0

23

2

stm 클럭설정

0

34

1

36. 전력은 900W가 될것 같습니다.

0

32

1

34.제너다이오드는 전류 분배기라고 생각하면 될까요 ?

0

29

0

33.제너다이오드와 tvs다이오드 모양이 동일합니다.

0

32

0

쓰로틀 V 변하지 않음

0

48

3

풀업 저항 크기와 커패시터 용량 선정 방법

0

46

2

86, data bit순서가 바뀌어야 할것 같습니다.

0

44

1

85. pwm사용에 기본구조 이해가 같이 요구되네요

0

45

1

dc모터 회전원리

0

48

2

83. volatile로 선언한 이유가 이해 안됩니다.

0

45

1

82. 16:50초 설명에 대한 오해 및 adc mode비교 자료

0

65

2

81. 소프트웨어 작성 방법론에 조언 부탁 드립니다.

0

66

2

00. stm32cubeIDE를 회사에서도 사용하나요 ?

0

51

1

상전류 읽는 타이밍 관련 문의

0

56

2

uart, tera term 실습이 잘 안됩니다.

0

60

3

80. 인터럽스와 일반함수 차이

0

49

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

50

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

35

1

74. 포인터 크기는얼마인가요 ?

0

45

1

73. 왜 hex를 사용하나요 ?

0

52

2

71. 40초쯤에 소리가 안납니다.

0

36

1

70. 강의에 사용되는 보드는 어떤것인가요 ?

0

59

2