16. การเชื่อมต่อกับสัญญาณอนาลอก ·...
TRANSCRIPT
DAC & ADC 1
16. การเชอมตอกบสญญาณอนาลอก
14.1 บทน า
รปท 14.1 แสดงขบวนการแปลงสญญาณระหวาอะนาลอกกบดจตอล
โดยทวๆไปสญญาณทปรากฏอยในทางธรรมชาตจะเปนสญญาณทมความตอเนอง และมขนาดไดหลายขนาดไมจ ากด สญญาณลกษณะนเรยกวา “สญญาณอนาลอก” ถาตองการน าสญญาณอะนาลอกนมาประมวลผลดวยระบบดจตอล จะตองมการเปลยนสญญาณนใหเปนสญญาณดจตอลเสยกอน ระบบนเรยกวา การแปลงสญญาณอนาลอกเปนสญญาณดจตอล (Analog to Digital conversion หรอ A/D) และในทางตรงขามกน เมอประมวลผลไดแลวสญญาณทไดยงเปนสญญาณดจตอลอย ถาตองการน าออกสโลกภายนอกแบบสญญาณอะนาลอก กตองท าการแปลงสญญาณใหเปนสญญาณอะนาลอกดวยระบบแปลงสญญาณดจตอลเปนสญญาณอนาลอก (Digital to Analog Conversion หรอ D/A )
14.2 วงจรแปลงสญญาณดจตอลเปนสญญาณอนาลอก (Digital-to-Analog Converter หรอ D/A ) หมายถงวงจรทเปลยนขอมลทางดจตอลใหเปนคาอนาลอก คาอนาลอกนอาจเปนกระแสไฟฟาหรอ
แรงดนไฟฟากได
รปท 14.2 แสดงขบวนการแปลงสญญาณจากดจตอลเปนอะนาลอก
DAC & ADC 2
เทคนคการแปลงสญญาณดจตอลเปนสญญาณอะนาลอกมหลายวธเชน Binary Weighted DAC และ R/2R Ladder การท างานของแตละวธมรายละเอยดดงน
14.2.1 Binary Weighted DAC
รปท 14.3 แสดงวงจรออปแอมปแบบกลบสญญาณ (Inverting Amp.)
คณสมบตของวงจรประเภทนไดแก ความตานทานอนพทสง อตราขยายแรงดนมคาเทากบ –Rf/Rin
รปท 14.4 วงจร Binary Weighted DAC
ตามรปท 14.4 จะเหนไดวาแรงดนเอาทพทต าสดเกดเมอสวตซ D3- D0 อยต าแหนง ‘0’
Vout = 0 โวลท
ถา D3- D0 อยต าแหนง ‘1’ จะไดแรงดนเอาทพทสงสด Vout = - Vref x Rf x(1/1k + 1/2k + 1/4k + 1/8k) Vout = -Vref x 1 x(1/1 + 1/2 + 1/4 + 1/8) Vout = -Vref x (1 + .5 + .25 + .125) Vout = -1.875 x Vref
DAC & ADC 3
เชนถา Vref = +5V Vout เมออนพทเปน ‘1’ หมดจะได -9.375 โวลท แตการท าวงจรใหมจ านวนบตมากขนตองใชความตานทานขนาดใหญขน ตวอยาง จงค านวณหาคา Eout
รปท 14.5 ตวอยางวงจร DAC ขนาด 8 บต
14.2.2 R/2R Ladder เปนวธทใชกนทวๆไปในการผลตเปนวงจรรวม เพราะวา ใชคาความตานทานต าและใชเพยง 2 คาคอ
1R กบ 2R เชน 1 K กบ 2K ตวอยางวงจรมลกษณะตามรปท 14.6 ซงสามารถวเคราะหวงจรโดยใช Thevenin’s theorem
รปท 14.6 ตวอยางวงจร DAC แบบ R/2R Ladder ขนาด 8 บต
การวเคราะหวงจรโดยใชทฤษฎ Thevenin หา Rth ของ Thevenin ทต าแหนงบตตางๆ สามารถหา Rth ไดดงน บต 0 Rth = 1 k, บต 1 Rth = 1 k,บต 2 Rth = 1 k,บต 3 Rth = 1 k,บต 4 Rth = 1 k,บต 5 Rth = 1 k, บต 6 Rth = 1 k และ บต 7 Rth = 1 k
DAC & ADC 4
รปท 14.7 วงจร Thevenin equivalent เพอหา Rth
หา Vth ของ Thevenin ทต าแหนงบตตางๆ สามารถหา Vth ไดดงน
รปท 14.8 วงจร Thevenin equivalent เพอหา Vth เมอบต 7 เปน '1'
บต 0 Vth = 46.875 mV, บต 1 Vth = 93.75 mV, บต 2 Vth = 0.1875 V, บต 3 Vth = 0.375 V, บต 4 Vth = 0.75 V, บต 5 Vth = 1.5 V, บต 6 Vth = 3V และ บต 7 Vth = 6V 14.2.3 เทอมทเกยวกบ DAC Resolution
เปนขนาดทเลกทสดท D/A สามารถสรางได ขนาดนขนอยกบจ านวนบตของ D/A หรอค านวณไดจาก
2
REFres n
VV
จ านวนระดบของสญญาณอะนาลอก
DAC & ADC 5
Analog Levels 2n
คาความเทยงตรง(Accuracy) เปนการเปรยบเทยบคาจรงกบคาทค านวณได ปกตจะก าหนดเปนเปอรเซนตของคาเอาทพทเมอเตม
สเกล (Full scale) ความเรว (Speed)
หมายถงความเรวของ Output settling time ซงเปนเวลาทตองใชเพอสรางคาเอาทพทเมออนพทมการเปลยนแปลง
การผดพลาดใน DAC
DAC ทดตองใหคาเอาทพทออกมาตรงตามคาอนพท เมออนพทใหคามากขน สญญาณเอาทพทกตองมคามากขน และการเพมขนของอนพทแตละขนกตองใหคาเอาทพทเพมขนในแตละขนเทาๆกนดวย แตถงกระนน ในทางเปนจรง DAC กมการผดเพยนเชนกน การผดเพยนใน DAC ม 2 แบบใหญๆ คอ Non-linear distortion และ Non-monotonic distortion Non-Linear Distortion:
ลกษณะการผดเพยนแบบนจะใหคาเอาทพทของแตละสเตปไมเทากน
รปท 14.9 การผดเพยนแบบ Non-linear
Non-Monotonic Distortion ลกษณะการผดเพยนแบบนจะใหคาเอาทพทของแตละสเตปไมเทากน และบางครงใหคา
เอาทพทลดลงทงๆทอนพทมคาเพมขน
DAC & ADC 6
รปท 14.10 การผดพลาดแบบ Monotonic
ตวอยาง DAC ขนาด 2 บต มแรงดนอางอง 8 โวลทและคาความเทยงตรง @ ± 0.2% จงหาคา resolution และคาความเทยงตรงในเทอมของแรงดน Resolution = 1/22 = 1/4 = 25% หรอ Resolution = (1/4)(8V) = 2V Accuracy = (±0.2%)(8V) = ±16mV สรปการค านวณ
10
max minmin 10
max min
10
min 10
Re
Re
2
2 1
2
2 1ReRe
ref refOUT ref n
OUT n
ref ref
n
n
OUT ref
OUT
solution
solution
V VV V X
V VV V X
V V
V V
solutionV V XsolutionV V X
OUT
-ref
+ref
min
max
10
= Output Voltage
= Voltage Reference-
= Voltage Reference +
= Minimum output voltage
= Maximum output voltage
= Input value base10
n = จ านวนบต
VVVVVX
14.2.4 DAC0800 DAC 0800 เปนวงจรรวมทท าหนาทเปน DAC มอนพท 8 บต ใหเอาทพทเปนกระแส ต าแหนงขาสญญาณเปนตามรป 4.11 และ บลอกไดอะแกรมแสดงอยในรปท 14.12
DAC & ADC 7
รปท 14.11 ลกษณะตวถงและขาสญญาณของ DAC0800
ขาสญญาณ ชอ ความหมาย 1 GND Ground 2 IOUT’ Output 4. IOUT Output’ 5 B1 MSB Input : : : 12 B8 LSB Input 14 VREF(+) Reference voltage for output 15 VREF(-) Reference voltage for output
รปท 14.12 ไดอะแกรมของ DAC0800
DAC & ADC 8
ตวอยางการตอวงจรเพอใหเอาทพทเปนแรงดน
รปท 14.13 การใชงาน DAC0800
ตวอยางการตอ AT89C2051 กบ DAC0800
รปท 14.14 การใชงาน DAC0800 กบ AT89C2051
14.3 วงจรแปลงสญญาณอนาลอกเปนสญญาณดจตอล (Analog-to-Digital Converter หรอ A/D หรอ A2D) สญญาณในทางธรรมชาตทวๆไปเปนสญญาณทมความตอเนองมขนาดไดไมจ ากด การทจะน า
สญญาณเหลานมาประมวลผลดวยระบบดจตอลคอมพวเตอรโดยตรงนนยอมไมสามารถท าได อกประการหนงสญญาณเหลานบางครงกไมไดอยในรปของสญญาณไฟฟา ดงนนการน ามาประมวลผลดวยระบบดจตอลตองมกระบวนการแปลงเสยกอน ตามรปท 14.15 แสดงถงขนตอนการน าสญญาณในทางธรรมชาตมาใชงานในระบบดจตอล เรมตนสญญาณในทางธรรมชาตเชนอณหภมซงเปนพลงงานความรอนตองถกแปลงใหเปนพลงงานไฟฟาเสยกอนดวยดวยอปกรณทเรยกวาเซนเซอร หรอทรานสดวเซอร สญญาณ
DAC & ADC 9
เอาทพททไดจากเซนเซอรนยงคงเปนสญญาณทมความตอเนอง หรอทเรยกกนทวๆไปวาสญญาณอนาลอกสญญาณนตองถกแปลงใหเปนสญญาณดจตอลดวยวงจรแปลงสญญาณอนาลอกเปนสญญาณดจตอล หรอทเรยกวา ADC หลงจากนจงไดเปนสญญาไฟฟาทอยในรปของสญญาณดจตอลทพรอมจะน าไปประมวลผลในระบบดจตอลได
รปท 14.15 ลกษณะการใชงาน ADC
การแปลงสญญาณอนาลอกเปนสญญาณดจตอลนนมอยหลายวธ เชนตวอยางวงจรแปลสญญาณอนาลอกเปนสญญาณดจตอลแบบงายๆ โดยการใชวงจรAnalog comparator ตามรปท 14.16 ซงใหเอาทพทออกมาขนาด 1 บต นอกจากนยงมวธอนๆอกเชน
- Digital Ramp ADC (Counter method) - Successive Approximation - Parallel Comparator (“Flash”) - Dual Slope
รปท 14.16 ลกษณะของ ADC ขนาด 1 บต
DAC & ADC 10
14.3.1 Digital Ramp ADC (Counter method)
รปท 14.17 ลกษณะของ ADC แบบ Counter methgod
บลอกไดอะแกรมของวธนแสดงอยในรปท 14.17 โดยมการท างานดงน 1) เมอเรมสงใหแปลงสญญาณ START = 0 จะเปนการรเซตวงจรนบ (Counter) ใหไดเปน 0
ทก บต หลงจากน START จะตองเปน 1 เพอเรมขบวนการท างาน 2) คาจากวงจรนบจะถกแปลงใหเปนคาอนาลอก Vax โดย DAC 3) คา Vax จะถกน าไปเปรยบเทยบกบ คาแรงดนอนพท Va โดยตวเปรยบเทยบ (Comparator)
ถา Va > Vax เอาทพท EOC = 1 ท าใหผลของการ AND ระหวาง START EOC และ Clock ไดเปนสญญาณ Clock ปอนเขาวงจรนบ วงจรนบกจะนบคาขนไปเรอยๆ ขบวนการกจะเปนไปตาม ขนท 2 และ 3 จนกวา Va นอยกวาหรอเทากบ Vax
ถา Va < หรอ = Vax เอาทพท EOC = 0 วงจรนบจะหยดนบ เปนการเสรจสนการท างาน
14.3.2 Successive Approximation
DAC & ADC 11
รปท 14.18 ลกษณะของ ADC แบบ Successive Approximation
บลอกไดอะแกรมของวธนแสดงอยในรปท 14.18 โดยมการท างานดงน 1) เมอเรมสงใหแปลงสญญาณ START = 0 จะเปนการรเซต Control logic และ Control
Register ใหเปน 0 ทกบต พรอมทงก าหนดต าแหนงบตทตองเซตหรอรเซตเปนบตท 7 หลงจากน START จะตองเปน 1 เพอเรมขบวนการท างาน
2) คาจากวงจรนบจะถกแปลงใหเปนคาอนาลอก Vax โดย DAC 3) คา Vax จะถกน าไปเปรยบเทยบกบ คาแรงดนอนพท Va โดยตวเปรยบเทยบ (Comparator) ถา Va > Vax เอาทพทของตวเปรยบเทยบจะเปน 1 และ EOC = 1 เมอสญญาณ
Clock เขามา Control logic จะเซตบตทระบใหเปน 1 พรอมทงเลอนการระบบตลงมา 1 ต าแหนง แลวกลบไปเปรยบเทยบใหม
ถา Va < Vax เอาทพท EOC = 1 เมอสญญาณ Clock เขามา Control logic จะรเซตบตทระบใหเปน 0 พรอมทงเลอนการระบบตลงมา 1 ต าแหนง แลวกลบไปเปรยบเทยบใหม
การท างานจะวนอยในขอ 3 นจนกวาจะท าครบทกบต (ในทนม 8 บต) หรอ Va = Vax เอาทพท EOC จะเทากบ 0 วงจรจะหยดท างาน เปนการเสรจสนการท างาน
วธการแปลงแบบนใหความเรวมากกวาแบบ การนบ อกทงราคากถกจงเปนวธทนยมใชกนมาก
14.3.3 Parallel Comparator (“Flash") ADC เปนวธทเรวทสด ใชในสโคปแบบดจตอล สญญาณวดโอ และการใชงานทตองการความเรวสง แต
กมขอเสยในดานราคา เพราะวาใชฮารดแวรในการสรางมาก ดงนนจงเหมาะกบการใชงานทตองการจ านวนบตนอยๆ ลกษณะของวงจรประกอบดวยตวเปรยบเทยบและวงจรเขารหส จ านวนของตวเปรยบเทยบเชนถา
DAC & ADC 12
รปท 14.19 ลกษณะของ ADC แบบ Flash
ตองการ ADC ขนาด 2 บตมจ านวน 4 สเตป ซงมแรงดนอางอง 8 โวลท ดงนนแตละสเตป 0 โวลท 2 โวลท 4 โวลท และ 6 โวลท ดงนนตองใชตวเปรยบเทยบ 3 ตว ตามรปท 14.20 ดงนนเมอปอนแรงดนอนพท เชน 5 V เขามา ตวเปรยบเทยบทง 3 ตวจะท าการเปรยบเทยบกบแรงดนอางองของแตละระดบไดเอาทพทเปน 0 1 1 วงจรเขารหสจงใหเอาทพทเปนรหสไบนาร 10 ตามรปท 14.20
รปท 14.20 ตวอยาง ADC แบบ Flash ขาด 2 บต
14.3.4 ADC แบบอนๆ นอกจากแบบทไดกลาวมาแลว ยงมADC แบบอนๆอกเชน ADC ทใชใน จอยสตก (Joystick) ของคคอมพวเตอร Apple II โดยมรปแบบตามรปท 14.21 ส าหรบ Threshold Detector อาจใช Op-amp ทใชแรงดนอางองทขา inverting เปน 2.5 โวลท หรอใช 74LS14 หรอ 74HCT14 กได สวนต าแหนงของจอยสตกก าหนดดวย Potentiometer ซงเปนความตานทานทปรบคาได หลกการท างานจะใชการวดคา RC time constant ทเกดจากการประจใหกบ C 1 F ทงนการชารตและดสชารต ประจน สงงานดวยโปรแกรมของไมโครโปรเซสเซอร
รปท 14.21 ลกษณะของ ADC แบบ Apple II A-to-D for joystick
DAC & ADC 13
14.3.5 ขอก าหนดของ ADC Resolution เหมอนกบใน DAC จะเปนตวก าหนดคาความผดพลาดของการ quantizing ซงเปนการผดพลาดจาก
คาทแทจรง
Accuracy เหมอนกบใน DAC เปนการแสดงคาทถกตองเมแเทยบกนระหวางคาทแทจรงกบคาทก าหนดได
Conversion Time ระยะเวลาทใชในการแปลงสญญาณ
Sample and Hold เมอสญญาณมความถสงถาไมตองการใหเกดความผดพลาดเนองจากระยะเวลาทใชแปลง ควรใช
Sample and Hold
รปท 14.22 การใช Sample and Hold
Sampling Rate ความถของการแปลงสญญาณ เชนถาเปน 44 kHz กหมายถงวาการแปลงสญญาณจะเกดขนทกๆ
22.7 S
DAC & ADC 14
รปท 14.23 ลกษณะของการสมสญญาณ
Analog-to-Digital Converter (ADC) ของ ATmega8 ขนาด 10 บต
10-bit Resolution 0.5 LSB Integral Non-linearity ± 2 LSB Absolute Accuracy 13 - 260 μs Conversion Time Up to 15 kSPS at Maximum Resolution 6 Multiplexed Single Ended Input Channels 2 Additional Multiplexed Single Ended Input Channels (TQFP and QFN/MLF Package only) Optional Left Adjustment for ADC Result Readout 0 - VCC ADC Input Voltage Range Selectable 2.56V ADC Reference Voltage Free Running or Single Conversion Mode Interrupt on ADC Conversion Complete Sleep Mode Noise Canceler
Analog to Digital Converter Block Schematic Operation
DAC & ADC 15
Prescaling and Conversion Timing
ADC Timing Diagram, First Conversion (Single Conversion Mode)
DAC & ADC 16
ADC Timing Diagram, Single Conversion
ADC Timing Diagram, Free Running Conversion
DAC & ADC 17
ADC Conversion Time
ADC ใน ATMega168
แหลงจายแรงดนและแรงดนอางอง
AVCC Atmega168 มขาแหลงจายแรงดนอย 2 ขา คอ VCC และ AVCC.
DAC & ADC 18
AVCC เปนแหลงจายส าหรบ PC0-PC5 เมอท าเปนขาอนพทส าหรบสญญาณ analog แหลงจาย AVCC นตองการความเสถยรมาก ดงนนจะใช low pass filter ซงประกอบดวย inductor และ capacitor. AREF ขา AREF ใชเปนขาส าหรบแรงดนอางอง ท 100% (เมอสญญาณ analog เทากบคาน จะไดคาดจตอลเทากบ 1024) Analogue Input Atmega168 มขาส าหรบสญญาณ analog อย 6 ขา PC0 to PC5. –ขาเหลานเปนไดทง digital I/O และ analogue input Registers Atmega168 มรจสเตอรทใชงานเกยวกบการแปลงสญญาณอนาลอกอย 6 ตว Register Description ADMUX ADC Multiplexer Selection Register ADCSRA ADC Control and Status Register A ADCSRB ADC Control and Status Register B DIDR0 Digital Input Disable Register 0 ADCL ADC Data Register – Low ADCH ADC Data Register – High ADMUX The ADMUX register allows you to control:
The Reference Voltage Left adjustment of results (used for 8 bit results) Selection of input channel
ADMUX – ADC Multiplexer Selection Register – ADMUX
DAC & ADC 19
ADMUX : ADLAR และ MUX3:0
Bit 5 – ADLAR: ADC Left Adjust Result ก าหนดผลลพทธการแปลง
1 = left adjust 0 = right adjusted
รายละเอยดด “ADCL and ADCH – The ADC Data Register”
Bits 3:0 – MUX3:0: Analog Channel Selection Bits เลอกสญญาณอนพททตองการแปลง
DAC & ADC 20
ADCSRA – ADC Control and Status Register A
Bit 7 – ADEN: ADC Enable 1 = enables the ADC 0 = ADC is turned off ถา turnoff ในขณะแปลง การแปลงจะหยด
Bit 6 – ADSC: ADC Start Conversion แบบ Single Conversion mode ใหบตนเปน 1 = สงใหเรมแปลงแบบ Free Running mode ใหบตนเปน 1 = start the first conversion. The first conversion จะเรม หลงจาก ADC enabled เมอแปลงเสรจบตนจะเปน 0
Bit 5 – ADATE: ADC Free Running Select
DAC & ADC 21
1 = ท างานแบบ Free Running mode ในโหมดน จะแปลงตอเนองไปตลอด 0 = หยดการท างานแบบ Free Running mode.
Bit 4 – ADIF: ADC Interrupt Flag ถกท าใหเปน 1 เมอแปลงเสรจและขอมลถกสงไปท ADCL/ADCH ใชเปนบตบอกใหเกดการอนเตอรรพท (บต I ใน SREG ตองเปน 1 ดวย) บตนจะถก clear เมอการอนเตอรรพทไดรบการตอบสนอง
Bit 3 – ADIE: ADC Interrupt Enable 1 = Enable 0 = Disable When this bit is written to one and the I-bit in SREG is set, the ADC Conversion Complete Interruptis activated.
Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits เลอกตวหาร
DAC & ADC 22
การก าหนดคา ADCSRA และ ADMUX ADCSRA ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
1 0 0 0 0 0 0 1
Enable
Sta
rt C
onvers
ion เปน 1
ส ง
หยดการท างานแบบ F
ree R
unnin
g m
ode
Inte
rrupt
Fla
g เ
ปน 1
เม
อแปลงเ
สรจ
Inte
rrupt
Enable หาร 2
ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
0 0 0 0 0 0 0 0
ปรบ
ชดขวาADC Channel 0
AREF, internal
Vref turned off ADCL and ADCH – The ADC Data Register
DAC & ADC 23
ตวอยางโปรแกรมภาษา C เขยนแบบ AVR #include <avr\io.h> // Most basic include files #include <avr\interrupt.h> // Add the necessary ones
#include <avr\signal.h> // here #include <util/delay.h>
unsigned int adc0;
int main(void) {
ADCSRA = (1<<ADEN)|(0<<ADATE); // ADC Enable & Auto Trigger Disable ADCSRA |= (0<<ADPS2)|(0<<ADPS1)|(1<<ADPS0); // XTAL/8
while(1)
{ ADMUX = 0b0000000; //Aref,left adjust, select ADC0 (bit 2=0 bit 1 = 0 bit 0 = 0)
ADCSRA |= (1<<ADSC); // ADC Start Conversion while (!(ADCSRA &(1<<ADIF))); // Wait Coversion completes
adc0 = ADCW; // Read ADC
_delay_ms(10); }
}
ฟงกชนเกยวกบสญญาณอนาลอก ของ Arduino
analogReference(type) analogRead() analogWrite() – PWM
analogReference(type) Configures the reference voltage used for analog input (i.e. the value used as the top of the input range). The options are:
DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) or 3.3 volts (on 3.3V Arduino boards)
INTERNAL: an built-in reference, equal to 1.1 volts on the ATmega168 or ATmega328 and 2.56 volts on theATmega8 (not available on the Arduino Mega)
INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only) INTERNAL2V56: a built-in 2.56V reference (Arduino Mega only) EXTERNAL: the voltage applied to the AREF pin (0 to 5V only) is used as the reference.
DAC & ADC 24
analogRead() Description Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8 channels on the Mini and Nano, 16 on the Mega), 10-bit analog to digital converter. This means that it will map input voltages between 0 and 5 volts into integer values between 0 and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit. The input range and resolution can be changed using analogReference(). It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second. Syntax analogRead(pin) เชน int sensorValue = analogRead(A0); และการแปลงคาดจตอลทอานได หาไดจาก float voltage= sensorValue * (5.0 / 1023.0); ตวอยางโปรแกรมอานคาอนาลอกของ Arduino แลวสงคาทอานไดออกทางพอรทอนกรม int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3 // outside leads to ground and +5V
int val = 0; // variable to store the value read void setup()
{ Serial.begin(9600); // setup serial
} void loop()
{
val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value
}
analogWrite() - PWM analogWrite(pin, value) Parameters
pin: the pin to write to. กรณ atmega168 ม D3 D5 D6 D9 D10 และ D11
value: the duty cycle: between 0 (always off) and 255 (always on). ตวอยางสราง PWM ดวย analogWrite #define pwm_1 3
DAC & ADC 25
#define pwm_2 5
#define pwm_3 6 #define pwm_4 9
#define pwm_5 10 #define pwm_6 11
void setup() {
analogWrite(pwm_1, 10); analogWrite(pwm_2, 50);
analogWrite(pwm_3, 100); analogWrite(pwm_4, 150);
analogWrite(pwm_5, 200);
analogWrite(pwm_6, 250); }
void loop()
{
}