본문으로 건너뛰기

M04.03 · ADC·PWM·센서 샘플링·모터 구동

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • ADC 코드의 reference·해상도와 대표 환산값/정확도를 구분하고 읽기 결과의 출처를 확인한다.
  • ADC clock·변환 시간과 샘플링 주기/동시성·aliasing을 계산하고 원본 시각/입력 대역의 조건을 설명한다.
  • PWM 파형의 주파수/duty·이상 평균 전압을 계산하고 driver 명령과 실제 모터 상태/미확인을 구분한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M04.02의 실제 clock·주기/대역·이벤트/ISR 구분이 선수다. 제공 raw/파형·샘플열과 ATmega328P의 명시한 모드를 종이로 분석한다. C/C++ 문법·레지스터 쓰기/배선·전압 인가/모터/장비/펌웨어 실행은 하지 않는다. 식의 결과를 실제 측정·안전/운전 허가로 취급하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

디지털 숫자가 센서의 물리량이나 모터의 결과는 아니다

센서의 숫자512와 모터 명령0.25만으로 현재 전압/위치나 회전 속도를 알 수는 없다. ADC의 reference·보정/시각과 행동의 단위·driver/현재 상태가 필요하다. M04.02의 주기·처리·전송 구분을 아날로그 획득과 PWM에 확장한다.

이번에도 ATmega328P의 정해진 모드가 사례다. Microchip 7810D-AVR-01/15의 §23 ADC·§14 Timer0 Fast PWM을 확인한다. 아래 입력/사건/파형은 설명용 합성 자료이며 실제 측정/장비 로그가 아니다.

ADC의 기준 전압과 코드의 의미부터 고정한다

ADC(analog-to-digital converter)는 아날로그 입력을 디지털 코드로 나타낸다. 이 사례의10bit 코드는0~1023의1024단계다. reference는 변환 범위를 정하는 기준 전압이며, 이론적인 한 단계 Δ는 V_ref/1024다. 해상도10bit와 실제 측정 정확도10bit는 같은 주장이 아니다.

기준5V라면 Δ=5/1024=0.0048828125V=4.8828125mV다. 코드 k의 대표 환산을 V_est=k×V_ref/1024로 정하면 k512는2.5V다. 실제 reference가4.8V인 모형에서는 같은 코드의 대표값이2.4V다. reference를 잘못 기록한 환산 차이는0.1V다. 두 값 모두 양자화/보정 오차까지 없앤 정확한 입력 측정값이라는 뜻은 아니다.

이 대표 환산에서 코드1023도5V가 아니라 약4.9951V다. 최대 코드가 나왔다고 정상 최대 입력인지 포화/범위 문제인지 자동 판정하지 않는다. 실제 reference·입력 범위/전기 조건, offset/gain·비선형/잡음·보정과 센서 단위를 확인한다. 숫자 범위를 전압으로 바꾼 다음에도 그 전압이 온도/거리 같은 물리량으로 무엇을 뜻하는지 별도 계약이 필요하다.

같은 변환의 두 바이트와 최신 변환을 구분한다

이 장치의 오른쪽 정렬10bit 결과는 ADCL 다음 ADCH를 읽는 규약을 확인해야 한다. ADCL을 읽으면 ADCH를 읽을 때까지 결과 레지스터의 갱신이 막힌다. 다음은 그 규약을 보여 주는 합성 사건이다.

순서사건해석
1결과511이0x01FF로공개됨현재결과레지스터는511
2ADCL의0xFF를읽음해당결과쌍의갱신잠금
3새변환512완료그사이레지스터에새결과가반영되지않을수있음
4ADCH의0x01을읽고잠금해제모은쌍은여전히511

두 바이트가 같은 과거 결과를 나타내는 것과 가장 최신 변환을 나타내는 것은 다르다. 변환 완료 사건/인터럽트가 있었다는 이유만으로511에 새 결과512의 시각을 붙이지 않는다. 정렬/읽기 순서·갱신/누락 규칙과 어떤 변환의 결과인지 확인한다. volatile 하나로 해결되는 문제도 아니다. M04.01의 공유 자료/접근 규약과 연결한다.

ADC clock·변환 시간·샘플링 속도는 다른 숫자다

이 사례의 실제 clock16MHz를128로 나누면 ADC clock은125kHz다. 정상 단일 변환13 ADC clock의 내부 시간은13/125000=104µs, ADC를 켠 뒤 첫 변환25 clock은200µs다. 실제 reference/입력 안정화·trigger 위상/읽기·처리/통신은 추가로 확인한다. 이 숫자는 데이터시트의 특정 변환 단계 계산이며 측정 성능이 아니다.

이미 안정화된 정상 변환 네 개를 순차 수행하면 내부 변환 합계416µs다. 첫 변환부터 시작하는 네 개면200+3×104=512µs다. 채널 전환/아날로그 source의 settling과 스케줄/ISR·추가 지연은 이 합계 밖이다.1ms보다 작다고 전체 네 채널의 동시 측정이나1ms 내 호스트 전달을 보장하지 않는다.

각 채널의 획득 시각은 달라질 수 있고, 변환 완료·ISR 서비스·호스트 수신 시각도 획득 시각과 같지 않다. 원본 channel/변환 ID·clock/시각을 남긴다. ADC clock125kHz를 샘플링 속도125kHz로 그대로 보고하거나, 순차 결과 네 개의 시각을 하나로 덮지 않는다.

샘플링 이후에는 서로 다른 원신호가 같아질 수 있다

샘플링 속도 f_s는 관측을 취득하는 횟수/s이고 간격은1/f_s다. f_s=100Hz면10ms마다 취득한다. ADC의 내부 clock과 변환 가능 시간은 이 취득 주기를 설계하는 조건이며 같은 값이 아니다.

정확한 등간격 시각 t=n/100초에서 진폭1의 두 입력 x=cos(2π80t), y=cos(2π20t)를 읽는다고 하자. n은0부터 시작하는 정수다. 몇 개의 샘플은 다음과 같다.

t(ms)80Hz 입력의 샘플20Hz 입력의 샘플
011
100.30900.3090
20−0.8090−0.8090
30−0.8090−0.8090
400.30900.3090

80/100=1−20/100이므로 정수 n에서 두 cos의 샘플이 같다. 서로 다른 원신호가 같은 샘플열로 보이는 aliasing이다. 이 열만 받은 호스트의 필터/AI가 원래80Hz였음을 반드시 복원할 수는 없다. 높은 ADC bit수도 시간 정보의 이 문제를 없애지 않는다.

Analog Devices MT-002는 샘플링/alias와 전단 필터를 설명한다. 여기의 이상적인 baseband 모형은 입력 대역을 제한하고 f_s>2f_max로 두는 조건을 사용한다.80Hz 성분에100Hz는 부족하다. 실제로는 아날로그 anti-alias 필터의 통과/억제·전이 대역과 여유, 실제 취득 clock/jitter·누락을 함께 확인한다. ADC 뒤 소프트웨어에서 보기 좋은 곡선으로 보간한 결과를 새로운 원본 측정으로 세지 않는다.

PWM은 ON 시간 비율이며 느린 아날로그 출력과 같지 않다

PWM(pulse-width modulation)은 주기 T 중 ON인 시간 t_on의 비율 D=t_on/T를 바꾸는 방식이다. 주파수1/T와 duty D는 별개다. Timer0의 고정 TOP255 Fast PWM·분주64·실제clock16MHz라면 주파수는16000000/(64×256)=976.5625Hz, 주기는1.024ms다.

PWM 25%와 평균 전압. 본문의 이상 0/12 V 전력단에서 duty 25%를 그렸다. 점선 평균 3 V와 계속 3 V인 선로는 다르다. 모터 속도/토크가 최대의 25%라는 결론도 아니다.그림 원본 크기로 보기

그림 M04.03-1. 본문의 이상 0/12 V 전력단에서 duty 25%를 그렸다. 점선 평균 3 V와 계속 3 V인 선로는 다르다. 모터 속도/토크가 최대의 25%라는 결론도 아니다. 직접 제작.

다음은 OCR 레지스터 덤프가 아닌 주어진 파형이다. ON256µs·OFF768µs이면 전체1024µs, duty는256/1024=0.25=25%다. 다른 PWM 모드/극성·TOP/분주에서는 주파수·레지스터와 duty의 대응이 다르다.0%/100% 끝값의 특수 동작도 해당 모드에서 확인해야 한다. 여기서는 OCR 값 역산/실제 설정을 실행하지 않는다.

이상적인 전력단이0V/12V만 스위칭하고 손실/전이 시간을 무시한다면 한 주기의 평균 전압은12×0.25=3V다. 선로가 계속3V인 것과는 다른 파형이다. 실제 driver의 전압 강하·순환/전류/부하, 모터의 역기전력·관성과 제어가 남아 있어 속도/토크가 최대의25%라고 단정할 수 없다.

driver 명령과 실제 모터 상태를 나눈다

MCU의 논리 PWM은 모터 전력을 직접 공급하는 출력으로 취급하지 않는다. 실제 전력 driver·정격/보호, 방향/enable·전류/상태와 제한·중단 계약이 필요하다. duty25%만으로 방향·안전한 구동이나 현재 회전이 결정되지 않는다. duty0도 즉시 물리 정지/전원 차단·브레이크가 확인됐다는 뜻은 아니다.

정책의 정규화된 출력0.25와 driver duty0.25가 같은 의미인지도 확인한다. 기존 5.5 정규화/통계처럼 행동 단위/범위·복원/제한을 분리한다. driver별 오류/타임아웃·현재 관측은 M04.06에서 계약으로 연결한다.

기존 4.4 센서 시간 정합에는 ADC 획득·완료/수신의 출처를 연결한다. 기본 학습 기록은 raw/reference·대표 환산과 불확실성, 취득/변환·alias 조건, 파형/이상 평균·실제 구동 미확인을 구분한다. 실제 센서/모터/장비를 실행한 성과로 보고하지 않는다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

제공한 raw/reference·변환 시간·샘플열·PWM 파형으로 종이나 메모에서 수행한다. 실제 전압/모터/핀에는 값을 보내지 않는다.

  1. 10bit의 단계 수·5V의 LSB와 코드512의 대표 환산, reference4.8V 변형을 계산한다.511/512 읽기 사건의 결과와 시각을 구분한다.
  2. ADC clock·정상/첫 변환·네 개 순차 합계를 계산하고, 획득 주기/동시성·호스트 전달에서 확인이 남은 항목을 적는다.
  3. 100Hz 샘플표의80/20Hz를 비교하고 전단 대역/필터·실제 시각이 필요한 이유를 설명한다.
  4. PWM 주기/주파수·duty/이상 평균 전압을 계산하고 driver 단위/방향·속도/정지 미확인을 기록한다.

막히면 ADC 코드의 축(0~1023)과 전압/물리량의 축을 나눈다. 시간도 ADC clock/변환·취득·ISR/수신으로 구분한다. PWM은 파형과 평균을 각각 그리고, 관측되지 않은 물리 성과를 덧붙이지 않는다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

10bit ADC 코드512를 기준5V로2.5V라고 보고했다. 실제 reference가4.8V인 모형의 대표값은 무엇인가?10bit가 정확도를 보장하는지, ADCL 잠금 중 새 변환이 완료된 사건에서 왜 최신 값을 단정할 수 없는지 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

clock16MHz/ADC분주128에서 정상/첫 변환과 정상 네 개의 내부 시간은 얼마인가? 그 값이 샘플링 속도나 동시성을 보장하는가?100Hz 취득의80/20Hz 샘플이 같은 반례도 연결하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

ON256µs/OFF768µs 파형과 이상0/12V driver에서 duty·주파수·평균 전압은 무엇인가? 명령0.25를 곧바로 모터 속도25%·duty0을 실제 정지라고 보고할 수 있는가?

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.