แนะนำแผงวงจรหลัก MicroBOX

106
แแแแแแแแแ แแแแแแแแ MicroBOX

description

แนะนำแผงวงจรหลัก MicroBOX. เครื่องมือในการพัฒนาโปรแกรมควบคุมการทำงาน MicroBOX - PowerPoint PPT Presentation

Transcript of แนะนำแผงวงจรหลัก MicroBOX

Page 1: แนะนำแผงวงจรหลัก  MicroBOX

แนะน��แผงวงจรหลั ก MicroBOX

Page 2: แนะนำแผงวงจรหลัก  MicroBOX
Page 3: แนะนำแผงวงจรหลัก  MicroBOX
Page 4: แนะนำแผงวงจรหลัก  MicroBOX

เคร��องมื�อในก�รพั ฒน�โปรแกรมืควบค�มืก�รทำ��ง�น MicroBOX

ประกอบด้�วยชุ�ด้ซอร#ฟแวร#พั ฒน�โปรแกรมืภ�ษ� C สำ��หร บไมืโครคอนโทำรลัเลัอร# AVR ในแบบโอเพั)นซอร#สำ(Open Source) ซ*�งสำ�มื�รถน��มื�ใชุ�ง�นได้�โด้ยไมื)มื,ค)�ใชุ�จ)�ย แลัะอ,กสำ)วนหน*�งค�อไลับร�ร,ภ�ษ� C สำน บสำน�นควบค�มืก�รทำ��ง�น MicroBOX เพั��อประย�กต์#สำร��งห�)นยนต์#

สำ��หร บในก�รต์.ด้เคร��องมื�อในก�รพั ฒน�โปรแกรมืควบค�มืก�ร MicroBOX ในก�รประย�กต์#สำร��งห�)นยนต์#ผ/�พั ฒน�จ��เป0นต์�องต์.ด้ต์ 1งเคร��องมื�อ 4 ต์ วด้ งต์)อไปน,1

Page 5: แนะนำแผงวงจรหลัก  MicroBOX

1. AVR Studio ทำ��หน��ทำ,�เป0นเทำ2กซ#เอด้.เต์อร#สำ��หร บก�รสำร��งไฟลั#โปรเจ2กต์#แลัะไฟลั#ซอร#สำโค�ด้ภ�ษ� C2. WinAVR ทำ��หน��ทำ,�เป0นซอร#ฟแวร#ต์ วแปลัโปรแกรมืภ�ษ� C(C Compiler)เพั��อให�ได้�ไฟลั#น�มืสำก�ลั .hex น��ไปเขี,ยนลังในหน)วยคว�มืจ��โปรแกรมืขีองไมืโครคอนโทำรลัเลัอร#ในแผงวงจรควบค�มืหลั กต์)อไป

Page 6: แนะนำแผงวงจรหลัก  MicroBOX

หน��ต์�ขีองโปรแกรมื AVR Studio

Page 7: แนะนำแผงวงจรหลัก  MicroBOX

3. ไลับร�ร,ภ�ษ� C สำน บสำน�นก�รทำ��ง�น MicroBOX สำ��หร บประย�กต์#สำร��งห�)นยนต์#ซ*�งจะชุ)วยอ��นวยคว�มืสำะด้วกในก�รพั ฒน�โปรแกรมื โด้ยปร บปร�งจ�กไฟลั#ไลับร�ร,ขีองชุ�ด้กลั)องสำมืองกลั IPST-MicroBOX โด้ยกลั�)มืขีองไฟลั#ไลับร�ร,เหลั)�น,1ถ/กจ ด้เก2บไว�ในโฟลัวเด้อร# robot_include ซ*�งบรรจ�อย/)ใน CD-ROM ทำ,�มื�พัร�อมืก บชุ�ด้ห�)นยนต์# หร�อด้�วน#โหลัด้ได้�จ�ก www.ipst-microbox.com

Page 8: แนะนำแผงวงจรหลัก  MicroBOX

ชุ�ด้ไลับร�ร,ภ�ษ� C สำน บสำน�นก�รทำ��ง�น MicroBOX สำ��หร บชุ�ด้พั ฒน�ห�)นยนต์#

Page 9: แนะนำแผงวงจรหลัก  MicroBOX

4. ได้เวอร# USB สำ��หร บเคร��องโปรแกรมื PX-4000 ซ*�งบรรจ�อย/)ใน CD-ROM ทำ,�มื�พัร�อมืก บชุ�ด้ห�)นยนต์#

Page 10: แนะนำแผงวงจรหลัก  MicroBOX

ก�รเชุ��อมืต์)อเคร��องโปรแกรมื PX-4000 ระหว)�งบอร#ด้ควบค�มืห�)นยนต์#แลัะคอมืพั.วเต์อร#

Page 11: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�น ZX-LED

Page 12: แนะนำแผงวงจรหลัก  MicroBOX

แผงวงจร LED: ZX-LEDค�ณสำมืบ ต์.ทำ�งเทำคน.ค•ใชุ� LED กลัมืขีน�ด้เสำ�นผ)�นศู/นย# กลั�ง 10 มื.ลัลั.เมืต์ร พัร�อมืวงจรขี บ•ใชุ�ไฟเลั,1ยง +5V กระแสำไฟฟ6�สำ/งสำ�ด้ 20mA

Page 13: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, in_out.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งอ)�นแลัะเขี,ยนขี�อมื/ลัอ.นพั�ต์แลัะเอ�ต์#พั�ต์ขีองพัอร#ต์ไมืโครคอนโทำรลัเลัอร# ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <in_out.h>

Page 14: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �นทำ,�แนะน��ในห วขี�อน,1ฟ7งก#ชุ �น out_a : ก��หนด้ค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�พัอร#ต์ A

out_b : ก��หนด้ค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�พัอร#ต์ B out_c : ก��หนด้ค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�พัอร#ต์ C out_d : ก��หนด้ค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�พัอร#ต์ D

ร/ปแบบ void out_a(char _bit,char _dat);

void out_b(char _bit,char _dat); void out_c(char _bit,char _dat); void out_d(char _bit,char _dat);

Page 15: แนะนำแผงวงจรหลัก  MicroBOX

พั�ร�มื.เต์อร# _bit ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7

_dat ใชุ�ก��หนด้ค)�ขี�อมื/ลัด้.จ.ต์อลัทำ,�ต์�องก�รอ�จ มื,ค)�เป0น 0 หร�อ 1

Page 16: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น toggle_a : กลั บค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�

พัอร#ต์ Atoggle_b : กลั บค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�

พัอร#ต์ Btoggle_c : กลั บค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�

พัอร#ต์ Ctoggle_d : กลั บค)�สำ ญญ�ณด้.จ.ต์อลัทำ,�

พัอร#ต์ Dร/ปแบบ void toggle_a(char _bit);

void toggle_b(char _bit); void toggle_c(char _bit); void toggle_d(char _bit);

พั�ร�มื.เต์อร# _bit ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7

Page 17: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร, sleep.hเป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งในก�ร

หน)วงเวลั� ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยใน ผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <sleep.h>ฟ7งก#ชุ �น sleep : สำ��หร บหน)วงเวลั�ในหน)วยมื.ลัลั.ว.น�ทำ,ร/ปแบบ void sleep(unsigned int ms);

พั�ร�มื.เต์อร# ms ใชุ�ก��หนด้ค)�เวลั�ทำ,�ต์�องก�รหน)วงในหน)วย มื.ลัลั.ว.น�ทำ,(เป0นค)�ประมื�ณ)

Page 18: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 1-5ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อ ZX-LED เขี��ก บพัอร#ต์ PD7

Page 19: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 1 (led_01.c) สำ �งให� LED ต์.ด้ ทำ,�พัอร#ต์ PD7#include <in_out.h>void main(){

out_d(7,1);}

Page 20: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 2 (led_02.c) สำ �งให� LED ด้ บ ทำ,�พัอร#ต์ PD7#include <in_out.h>void main(){

out_d(7,0);}

Page 21: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 3 (led_03.c) สำ �งให� LED ทำ,�พัอร#ต์ PD7 ต์.ด้น�นประมื�ณ 5 ว.น�ทำ, แลั�วด้ บ#include <in_out.h>#include <sleep.h>void main(){

out_d(7,1);sleep(5000);out_d(7,0);

}

Page 22: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 4 (led_04.c) สำ �งให� LED ทำ,�พัอร#ต์ PD7 กระพัร.บทำ�กๆ 0.5 ว.น�ทำ, #include <in_out.h>#include <sleep.h>void main(){

while(1){

out_d(7,1);sleep(500);out_d(7,0);sleep(500);

}}

Page 23: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 5 (led_05.c) สำ �งให� LED กระพัร.บทำ�กๆ 0.5 ว.น�ทำ, ด้�วยค��สำ �ง toggle#include <in_out.h>#include <sleep.h>void main(){

while(1){

toggle_d(7);sleep(500);

}}

Page 24: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�น ZX-SPEAKER

Page 25: แนะนำแผงวงจรหลัก  MicroBOX

แผงวงจรลั��โพังเป;ยโซ: ZX-SPEAKERค�ณสำมืบ ต์.ทำ�งเทำคน.ค•ใชุ�ลั��โพังมื,อ.มืพั,แด้นซ# 32 โอห#มื•มื,ค)�ถ,�เรโซแนนซ#ในย)�น 1 ถ*ง 3 kHz

Page 26: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, sound.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งเก,�ยวก บก�รก��เน.ด้สำ ญญ�ณโด้ยทำ��ง�นร)วมืก บแผงวงจร ZX-SPEAKER ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <sound.h>

Page 27: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น sound_a : เลั�อกก��เน.ด้เสำ,ยงทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Asound_b : เลั�อกก��เน.ด้เสำ,ยงทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Bsound_c : เลั�อกก��เน.ด้เสำ,ยงทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Csound_d : เลั�อกก��เน.ด้เสำ,ยงทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Dร/ปแบบ void sound_a(char ch,int freq,int time); void sound_b(char ch,int freq,int time); void sound_c(char ch,int freq,int time); void sound_d(char ch,int freq,int time);

Page 28: แนะนำแผงวงจรหลัก  MicroBOX

พั�ร�มื.เต์อร# ch ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7

freq ใชุ�ก��หนด้ค)�คว�มืถ,�ค)�สำ ญญ�ณเสำ,ยง

time ใชุ�ก��หนด้ชุ)วงเวลั�ในก�รก��เน.ด้ สำ ญญ�ณเสำ,ยงเป0นจ��นวนต์2มืเทำ)�ขีอง 0.1 มื.ลัลั.ว.น�ทำ,

Page 29: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น beep_a : เลั�อกก��เน.ด้เสำ,ยงคว�มืถ,� 2 kHz น�น 10 มื.ลัลั.ว.น�ทำ,ทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Abeep_b : เลั�อกก��เน.ด้เสำ,ยงคว�มืถ,� 2 kHz น�น 10 มื.ลัลั.ว.น�ทำ,ทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Bbeep_c : เลั�อกก��เน.ด้เสำ,ยงคว�มืถ,� 2 kHz น�น 10 มื.ลัลั.ว.น�ทำ,ทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Cbeep_d : เลั�อกก��เน.ด้เสำ,ยงคว�มืถ,� 2 kHz น�น 10 มื.ลัลั.ว.น�ทำ,ทำ,�ขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ D

Page 30: แนะนำแผงวงจรหลัก  MicroBOX

ร/ปแบบ void beep_a(char ch);

void beep_b(char ch);void beep_c(char ch);void beep_d(char ch);

พั�ร�มื.เต์อร# ch ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7

Page 31: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 6-7 สำร��งสำ ญญ�ณเสำ,ยงด้�วยลั��โพังเป;ยโซก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อ SPEAKER เขี��ก บพัอร#ต์ PA5

Page 32: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 6 (sound_01.c) สำร��งสำ ญญ�ณเสำ,ยงต์.<ด้ทำ�กๆ 1 ว.น�ทำ,#include <sound.h>#include <sleep.h>void main(){

while(1){

beep_a(5);sleep(1000);

}}

Page 33: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 7 (sound_02.c) สำร��งสำ ญญ�ณเสำ,ยงคว�มืถ,� 800 ชุ)วง 0.1 ว.น�ทำ, ทำ�กๆ 1 ว.น�ทำ,#include <sound.h>#include <sleep.h>void main(){

while(1){

sound_a(5,800,100);sleep(1000);

}}

Page 34: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�น ZX-SWITCH

Page 35: แนะนำแผงวงจรหลัก  MicroBOX

แผงวงจรสำว.ต์ชุ#: ZX-SWITCH

ค�ณสำมืบ ต์.ทำ�งเทำคน.ค•ทำ,�ชุ)อง HIGH ถ��กด้สำว.ต์ชุ#จะสำ)งลัอจ.ก “1” แลัะไฟสำ,แด้งต์.ด้•ทำ,�ชุ)อง LOW ถ��กด้สำว.ต์ชุ#จะสำ)งลัอจ.ก “0” แลัะไฟสำ,เขี,ยวต์.ด้

Page 36: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, in_out.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งอ)�นแลัะเขี,ยนขี�อมื/ลัอ.นพั�ต์แลัะเอ�ต์#พั�ต์ขีองพัอร#ต์ไมืโครคอนโทำรลัเลัอร# ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <in_out.h>

Page 37: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น in_a : อ)�นค)�สำ ญญ�ณด้.จ.ต์อลัจ�กขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Ain_b : อ)�นค)�สำ ญญ�ณด้.จ.ต์อลัจ�กขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Bin_c : อ)�นค)�สำ ญญ�ณด้.จ.ต์อลัจ�กขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Cin_d : อ)�นค)�สำ ญญ�ณด้.จ.ต์อลัจ�กขี�พัอร#ต์ใด้ๆขีองพัอร#ต์ Dร/ปแบบ

char in_a(char _bit);

char in_b(char _bit);char in_c(char _bit);char in_d(char _bit);

Page 38: แนะนำแผงวงจรหลัก  MicroBOX

พั�ร�มื.เต์อร# _bit ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7ก�รค�นค)�ฟ7งก#ชุ �นจะทำ��ก�รค�นค)�สำ ญญ�ณด้.จ.ต์อลัขีองต์��แหน)งขี�พัอร#ต์ทำ,�อ)�นซ*�งอ�จมื,ค)�เป0น 0 หร�อ 1 เทำ)�น 1น

Page 39: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 8-9ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อ ZX-LED เขี��ก บพัอร#ต์ PD7•ต์)อ ZX-SWITCH จ�กชุ)อง LOW เขี��ก บพัอร#ต์ PB4

Page 40: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 8 (switch_01.c) LED ต์.ด้เมื��อมื,ก�รกด้สำว.ต์ชุ#/ด้ บเมื��อปลั)อยสำว.ต์ชุ##include <in_out.h>#include <sleep.h>void main(){

while(1){

if(in_b(4)==0){out_d(7,1);}else{out_d(7,0);}

}}

Page 41: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 9 (switch_02.c) ทำ�กๆคร 1งทำ,�มื,ก�รกด้สำว.ต์ชุ# LED จะกลั บสำถ�นะก�รต์.ด้/ด้ บ #include <in_out.h>#include <sleep.h>void main(){

while(1){

if(in_b(4)==0){

toggle_d(7);sleep(200);

}}

}

Page 42: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�นโมืด้/ลั LCD บนแผงวงจร Display-Motorแสดงผลในรูป

แบบ 16 * 2

Page 43: แนะนำแผงวงจรหลัก  MicroBOX

แผงวงจรแสำด้งผลัแลัะควบค�มืก�รขี บมือเต์อร#: Display-Motor

Page 44: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, lcd.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งเก,�ยวก บก�รแสำด้งขี�อคว�มืทำ,�โมืด้/ลั LCD บนแผงวงจร Display-Motor ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <lcd.h>

Page 45: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น lcd หร�อ LCD : แสำด้งขี�อคว�มืทำ,�โมืด้/ลั LCD แบบ 16 ต์ วอ กขีระ 2 บรรทำ ด้ร/ปแบบ

void lcd(char *p,…);พั�ร�มื.เต์อร# p ใชุ�ก��หนด้ร/ปแบบก�รแสำด้งผลัทำ,�โมืด้/ลั LCD โด้ยสำ�มื�รถก��หนด้ร/ปแบบก�รแทำรกสำ ญลั กษณ#พั.เศูษเพั��อร)วมืแสำด้งผลัค)�ขี�อมื/ลัต์ วเลัขีชุน.ด้ต์)�งๆได้�

Page 46: แนะนำแผงวงจรหลัก  MicroBOX

รห สำบ งค บ ก�รทำ��ง�น%c หร�อ %C แสำด้งผลัอ กขีระ 1 ต์ ว%d หร�อ %D แสำด้งผลัต์ วเลัขีฐ�นสำ.บชุ)วง -32,768 ถ*ง

+32,767%l หร�อ %L แสำด้งผลัต์ วเลัขีฐ�นสำ.บชุ)วง

-2,147,483,648 ถ*ง +2,147,483,647 %f หร�อ %F แสำด้งผลัต์ วเลัขีจ��นวนจร.งทำศูน.ยมื 3 หลั ก#c ค,ย#ค��สำ �งพั.เศูษเพั��อสำ �งเคลั,ยร#ขี�อคว�มืก)อน แสำด้งผลัในคร 1งถ ด้ไป #n ค,ย#ค��สำ �งพั.เศูษเพั��อน��ขี�อคว�มืไปแสำด้งผลัใน บรรทำ ด้ทำ,� 2(บรรทำ ด้ลั)�ง)

Page 47: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 10-14 แสำด้งขี�อคว�มืทำ,�หน��จอ LCD ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST(ให�ทำ��ก�รย��ยจ�ด้จ)�ยไฟมื�ทำ,�บอร#ด้ Display-Motor ด้�วย)

Page 48: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 10 (lcd_01.c) แสำด้งขี�อคว�มื “Hello World!” #include <lcd.h>void main(){

lcd("Hello World!");}

Page 49: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 11 (lcd_02.c) แสำด้งผลัลั พัธ์#เมื��อต์ วอ กขีระต์.ด้ก นเก.น 16 ต์ วอ กษร#include <lcd.h>void main(){

lcd("abcdefghijklmnopqrstuvwxyz");}

Page 50: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 12 (lcd_03.c) แสำด้งผลัลั พัธ์#ค)�ขี�อมื/ลัต์ วเลัขีจ��นวนเต์2มื(int)#include <lcd.h>void main(){

int x=158;lcd("Value: %d ",x);

}

Page 51: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 13 (lcd_04.c) แสำด้งต์ วอย)�งโปรแกรมืน บค)�ทำ�กๆ 1 ว.น�ทำ,#include <lcd.h>#include <sleep.h>void main(){

int i=0;while(1){

lcd("Count: %d ",i);sleep(1000);i++;

}}

Page 52: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 14 (lcd_05.c) แสำด้งก�รต์ ด้ขี�อคว�มืมื�แสำด้งบรรทำ ด้ทำ,� 2#include <lcd.h>void main(){

lcd("Sawaddee#nThailand");}

Page 53: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�นสำว.ต์ชุ# SW1-SW3 บนแผง

วงจร Display-Motor

SW1

SW2

SW3

Page 54: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, in_out.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งเก,�ยวก บก�รอ)�นค)�สำถ�นะก�รกด้สำว.ต์ชุ# SW1-SW3 บนแผงวงจร Display-Motor ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <in_out.h>

Page 55: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น sw1 : ต์รวจสำอบสำถ�นะก�รกด้สำว.ต์ชุ# SW1sw2 : ต์รวจสำอบสำถ�นะก�รกด้สำว.ต์ชุ# SW2sw3 : ต์รวจสำอบสำถ�นะก�รกด้สำว.ต์ชุ# SW3ร/ปแบบ

char sw1(void);

char sw2(void);char sw3(void);

ก�รค�นค)�เมื��อสำว.ต์ชุ#ถ/กกด้จะค�นค)�เป0น 0 แต์)ถ��ไมื)ถ/กกด้จะค�นค)�เป0น 1

Page 56: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น sw1_press : รอจนกว)�จะมื,ก�รกด้สำว.ต์ชุ# SW1sw2_press : รอจนกว)�จะมื,ก�รกด้สำว.ต์ชุ# SW2sw3_press : รอจนกว)�จะมื,ก�รกด้สำว.ต์ชุ# SW3ร/ปแบบ

void sw1_press(void);

void sw2_press(void);void sw3_press(void);

Page 57: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 15-17 ใชุ�ง�นสำว.ต์ชุ# SW1-SW3 ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST(ให�ทำ��ก�รย��ยจ�ด้จ)�ยไฟมื�ทำ,�บอร#ด้ Display-Motor ด้�วย)

Page 58: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 15 (swx_01.c) เพั.�มืค)�ก�รน บทำ�กๆคร 1งทำ,�มื,ก�รกด้สำว.ต์ชุ# SW1

Page 59: แนะนำแผงวงจรหลัก  MicroBOX

#include <in_out.h>#include <lcd.h>#include <sleep.h>void main(){

int i=0;while(1){

if(sw1()==0){

i++;sleep(200);

}lcd("Count: %d ",i);

}}

Page 60: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 16 (swx_02.c) เพั.�มืค)�ก�รน บทำ�กๆคร 1งทำ,�มื,ก�รกด้สำว.ต์ชุ# SW1 แลัะลัด้ค)�ก�รทำ�กๆคร 1งทำ,�มื,ก�รกด้สำว.ต์ชุ# SW2

Page 61: แนะนำแผงวงจรหลัก  MicroBOX

#include <in_out.h>#include <lcd.h>#include <sleep.h>void main(){

int i=0;while(1){

if(sw1()==0){i++; sleep(200);}if(sw2()==0){i--; sleep(200);}lcd("Count: %d ",i);

}}

Page 62: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 17 (swx_03.c) รอจนกระทำ �งมื,ก�รกด้สำว.ต์ชุ# SW1 จ*งจะเร.�มืต์�นก�รน บค)�ทำ�กๆ 1 ว.น�ทำ,

Page 63: แนะนำแผงวงจรหลัก  MicroBOX

#include <in_out.h>#include <lcd.h>#include <sleep.h>void main(){

int i=0;lcd("Press SW1#nfor Counter");sw1_press();lcd("#c");while(1){

lcd("Count: %d ",i++);sleep(1000);

}}

Page 64: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�น ZX-03

Page 65: แนะนำแผงวงจรหลัก  MicroBOX

แผงวงจรสำว.ต์ชุ#: ZX-SWITCH

Page 66: แนะนำแผงวงจรหลัก  MicroBOX

หลั กก�รทำ��ง�นภ�ยในต์ วถ งขีองเซนเซอร#มื,ทำ 1งต์ วสำ)งแลัะร บ

สำ ญญ�ณอ.นฟร�เรด้ เมื��อมื,ก�รต์)อใชุ�ง�นต์ วสำ)งจะได้�ร บไฟเลั,1ยงทำ��ให�เปลั)งแสำงอ.นฟร�เรด้ออกมื�อย/)ต์ลัอด้เวลั� สำ)วนต์ วร บจะได้�ร บแสำงอ.นฟร�เรด้มื�กหร�อน�อยขี*1นอย/)ก บว)�มื,ว ต์ถ�มื�ก,ด้ขีว�งหร�อไมื)แลัะสำ�มื�รถสำะทำ�อนได้�ด้,เพั,ยงไร โด้ยว ต์ถ�สำ,ขี�วผ.วเร,ยบจะสำะทำ�อนแสำงอ.นฟร�เรด้ได้�ด้,ทำ,�สำ�ด้ โด้ยจะสำ)งผลัให�ค)�ขี�อมื/ลัทำ,�อ)�นแบบอะน�ลัอกจ�กต์ วเซนเซอร# ZX-03 มื,ค)�มื�กต์�มืไปด้�วย

Page 67: แนะนำแผงวงจรหลัก  MicroBOX

ก�รต์)อใชุ�ง�นก บ IPST MicroBOX

สำ��หร บ ZX-03 จ ด้ว)�เป0นเซนเซอร#ชุน.ด้อะน�ลัอกซ*�งจะให�ค)�ทำ,�แปรต์�มืแสำงสำะทำ�อนขีองอ.นฟร�เรด้จ�กว ต์ถ�เป6�หมื�ย ด้ งน 1นในก�รต์)อใชุ�ง�นควรต์)อใชุ�ง�นร)วมืก บพัอร#ต์ A(พัอร#ต์ PA0-PA7) แลัะทำ��ก�รอ)�นค)�ขี�อมื/ลัมื�ว.เคร�ะห#ด้�วยฟ7งก#ชุ �น analog(จ ด้เก2บอย/)ภ�ยในไลับร�ร, analog.h)

Page 68: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, analog.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งเร,ยกอ)�นค)�จ�กขี�พัอร#ต์อ.นพั�ต์อะน�ลัอกขีองไมืโครคอนโทำรลัเลัอร# ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <analog.h>

Page 69: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น analog : อ)�นค)�จ�กโมืด้/ลัแปลังสำ ญญ�ณอะน�ลัอกเป0นด้.จ.ต์อลัขีองขี�พัอร#ต์ A โด้ยมื กใชุ�ง�นร)วมืก บเซนเซอร#ชุน.ด้อะน�ลัอกต์)�งๆเป0นหลั กร/ปแบบ unsigned char analog(unsigned char channel);

พั�ร�มื.เต์อร# channel ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7 สำ��หร บพัอร#ต์ Aก�รค�นค)�ฟ7งก#ชุ �นจะทำ��ก�รค�นค)�ขี�อมื/ลัทำ,�เป0นไปได้�ต์ 1งแต์) 0 ถ*ง 1023(ค)�คว�มืลัะเอ,ยด้ 10 บ.ต์)

Page 70: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 18 ทำด้สำอบใชุ�ง�นเซนเซอร#ว ด้ปร.มื�ณแสำงสำะทำ�อนอ.นฟร�เรด้ ZX-03 ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST•ต์)อแผงวงจร ZX-03 เขี��ก บพัอร#ต์ PA3

Page 71: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 18 (infrared_01.c) อ)�นค)�ปร.มื�ณแสำงสำะทำ�อนอ.นฟร�เรด้ทำ,�ได้�จ�กก�รต์รวจจ บจ�ก ZX-03 อย)�งต์)อเน��องขี 1นต์อนก�รทำด้ลัอง

ให�ทำ��ก�รทำด้สำอบจ)อบร.เวณแผ)นกระด้�ษทำด้สำอบสำ,ขี�วแลัะสำ,ด้��ทำ,�ระยะห)�งประมื�ณ 5-10 มื.ลัลั.เมืต์ร แลั�วทำ��ก�รบ นทำ*กค)�ผลัลั พัธ์#ทำ,�ได้�เพั��อเป0นขี�อมื/ลัในก�รทำด้ลัองต์)อไป

Page 72: แนะนำแผงวงจรหลัก  MicroBOX

#include <analog.h>#include <lcd.h>#include <sleep.h>void main(){

int infrared=0;while(1){

infrared = analog(3);lcd("Infrared: %d ",infrared);sleep(100);

}}

Page 73: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 19 แจ�งเต์�อนด้�วยเสำ,ยงเมื��อพับเสำ�นสำ,ด้��จ�กสำน�มืทำด้สำอบ(เสำ�นสำ,ด้��พั�1นสำ,ขี�ว) ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST•ต์)อแผงวงจร ZX-03 เขี��ก บพัอร#ต์ PA3•ต์)อ SPEAKER เขี��ก บพัอร#ต์ PB4

Page 74: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 19 (infrared_02.c) แจ�งเต์�อนด้�วยเสำ,ยงเมื��อพับเสำ�นสำ,ด้��ขี 1นต์อนก�รทำด้ลัอง

จ�กก�รทำด้สำอบอ)�นค)�ปร.มื�ณแสำงสำะทำ�อนอ.นฟร�เรด้ก)อนหน��น,1สำมืมื�ต์.ว)�บร.เวณสำ�นสำ,ด้��อ)�นได้�ประมื�ณ 200 พั�1นสำ,ขี�วอ)�นได้�ประมื�ณ 800 ด้ งน 1นจะได้�ค)�เฉลั,�ยในก�รเปร,ยบเทำ,ยบประมื�ณ (200+800)/2 = 500

Page 75: แนะนำแผงวงจรหลัก  MicroBOX

#include <analog.h>#include <lcd.h>#include <sleep.h>#include <sound.h>void main(){

int infrared=0;while(1){

infrared = analog(3);lcd("Infrared: %d ",infrared);if(infrared<500){beep_b(4);}sleep(100);

}}

Page 76: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�นโมืด้/ลั GP2D120

Page 77: แนะนำแผงวงจรหลัก  MicroBOX

โมืด้/ลัว ด้ระยะทำ�งแบบอ.นฟร�เรด้: GP2D120

ค�ณสำมืบ ต์.หลั ก•ทำ��ง�นทำ,�ไฟเลั,1ยง 5 โวลัต์#•ว ด้ระยะทำ�งใชุ)วงต์ 1งแต์) 4 ถ*ง 32 เซนต์.เมืต์ร

Page 78: แนะนำแผงวงจรหลัก  MicroBOX
Page 79: แนะนำแผงวงจรหลัก  MicroBOX

ก�รต์)อใชุ�ง�นก บ IPST MicroBOX

สำ��หร บโมืด้/ลัว ด้ระยะทำ�ง GP2D120 จ ด้ว)�เป0นเซนเซอร#ชุน.ด้อะน�ลัอกซ*�งจะให�ค)�ทำ,�แปรต์�มืระยะทำ�งจ�กว ต์ถ�เป6�หมื�ย ด้ งน 1นในก�รต์)อใชุ�ง�นควรต์)อใชุ�ง�นร)วมืก บพัอร#ต์ A(พัอร#ต์ PA0-PA7) แลัะสำ�มื�รถอ)�นค)�ระยะทำ�งในหน)วยเซนต์.เมืต์รมื�ว.เคร�ะห#ด้�วยฟ7งก#ชุ �น getdist (จ ด้เก2บอย/)ภ�ยในไลับร�ร, gp2d120_lib.h)

Page 80: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, gp2d120_lib.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งเร,ยกอ)�นค)�ระยะทำ�งจ�กโมืด้/ลั GP2D120 ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <gp2d120_lib.h>

Page 81: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น getdist : อ)�นค)�ระยะทำ�งในหน)วยเซนต์.เมืต์รจ�กโมืด้/ลั GP2D120 ซ*�งค)�ทำ,�มื,คว�มืเชุ��อถ�อได้�จะมื,ค)�ต์ 1งแต์) 4 ถ*ง 32 เซนต์.เมืต์รร/ปแบบ

unsigned int getdist(char

adc_ch)พั�ร�มื.เต์อร# adc_ch ใชุ�ก��หนด้ขี�พัอร#ต์ทำ,�ต์�องก�รในชุ)วง 0 ถ*ง 7 สำ��หร บพัอร#ต์ Aก�รค�นค)�ฟ7งก#ชุ �นจะทำ��ก�รค�นค)�ขี�อมื/ลัระยะทำ�งในหน)วยเซนต์.เมืต์ร

Page 82: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 20 ทำด้สำอบอ)�นค)�ระยะทำ�งจ�กโมืด้/ลัว ด้ระยะทำ�ง GP2D120 ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST•ต์)อโมืด้/ลั GP2D120 เขี��ก บพัอร#ต์ PA4

Page 83: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 20 (distance_01.c) ทำด้สำอบอ)�นค)�ระยะทำ�งจ�กโมืด้/ลัว ด้ระยะทำ�ง GP2D120 ขี 1นต์อนก�รทำด้ลัอง

ทำด้สำอบเอ�ว ต์ถ�สำ,โปร)งแสำงเชุ)นสำ,ขี�ว(หร�ออ�จใชุ�มื�อ)มื�ว�งด้��นหน��โมืด้/ลั GP2D120 ในชุ)วงระยะ 4 ถ*ง 32 เซนต์.เมืต์ร โด้ยอ�จใชุ�ไมื�บรรทำ ด้เป0นต์ วเทำ,ยบในก�รทำด้สำอบไปด้�วย

Page 84: แนะนำแผงวงจรหลัก  MicroBOX

#include <sleep.h>#include <lcd.h>#include <gp2d120_lib.h>void main(){

unsigned int dist;while(1){

dist = getdist(4);lcd("Distance: %d cm ",dist);sleep(200);

}}

Page 85: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 21 แจ�งเต์�อนด้�วยเสำ,ยงเมื��อพับว ต์ถ�เขี��มื�ใกลั�ในชุ)วงระยะ 4 ถ*ง 20 เซนต์.เมืต์ร ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST•ต์)อโมืด้/ลั GP2D120 เขี��ก บพัอร#ต์ PA4•ต์)อ SPEAKER เขี��ก บพัอร#ต์ PD6

Page 86: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 21 (distance_02.c) แจ�งเต์�อนด้�วยเสำ,ยงเมื��อพับว ต์ถ�เขี��มื�ใกลั�ในชุ)วงระยะ 4 ถ*ง 20 เซนต์.เมืต์ร ขี 1นต์อนก�รทำด้ลัอง

ทำด้สำอบเอ�มื�อมื�ว�งด้��นหน��โมืด้/ลั GP2D120 ในชุ)วงระยะ 4 ถ*ง 32 เซนต์.เมืต์ร หลั งจ�กน 1นค)อยๆเคลั��อนมื�อเขี��มื�ใกลั�อย)�งชุ��ๆจนกระทำ �งถ*งระยะ 20 เซนหร�อน�อยกว)�น 1นจะได้�ย.นเสำ,ยงแจ�งเต์�อนจ�กลั��โพังเป;ยโซ

Page 87: แนะนำแผงวงจรหลัก  MicroBOX

#include <sleep.h>#include <lcd.h>#include <sound.h>#include <gp2d120_lib.h>void main(){

unsigned int dist;while(1){

dist = getdist(4);lcd("Distance: %d cm ",dist);if(dist>=4 && dist<=20){beep_b(4);}sleep(200);

}}

Page 88: แนะนำแผงวงจรหลัก  MicroBOX

ทำด้สำอบใชุ�ง�นเซอร#โวมือเต์อร#แบบปร บแต์)ง

Page 89: แนะนำแผงวงจรหลัก  MicroBOX

เซอร#โวมือเต์อร#

ค�ณสำมืบ ต์.หลั ก•ต์�องก�รไฟเลั,1ยง +4.8 ถ*ง +6 โวลัต์#•สำ�ยต์)อใชุ�ง�น 3 เสำ�น สำ�ยสำ ญญ�ณ(S),ไฟเลั,1ยง(+) แลัะกร�วด้# (-)

Page 90: แนะนำแผงวงจรหลัก  MicroBOX

ค�ณสำมืบ ต์.หลั ก(ต์)อ)•คว�มืเร2วเฉลั,�ย 60 รอบต์)อน�ทำ,•น�1�หน ก 45 กร มื•แรงบ.ด้ 45 ก.โลักร มื-เซนต์.เมืต์ร

เพั.�มืเต์.มื• เซอร#โวมือเต์อร#ร�)นมื�ต์รฐ�น ค�อร�)นทำ,�ร กษ�ต์��แหน)งคงทำ,�โด้ยสำ�มื�รถกว�ด้มื�มืต์ 1งแต์) 0 ถ*ง 180 องศู�

• เซอร#โวมือเต์อร#ร�)นปร บแต์)ง ค�อร�)นทำ,�หมื�นได้�รอบต์ วอ.สำระ 360 องศู�

Page 91: แนะนำแผงวงจรหลัก  MicroBOX

ก�รต์)อใชุ�ง�นก บ IPST MicroBOXสำ��หร บเซอร#โวมือเต์อร#แบบปร บ

แต์)งจ ด้ว)�เป0นอ�ปกรณ#เอ�ต์#พั�ต์ชุน.ด้หน*�งทำ,�ผ/�ใชุ�ง�นทำ,�สำ�มื�รถควบค�มืก�รหมื�นได้�จ�กก�รสำ �งก�รด้�วยโปรแกรมื

ในก�รต์)อใชุ�ง�นจ��เป0นต์�องต์)อเขี��ก บชุ)องขี บเซอร#โวมือเต์อร# B0 ถ*ง B4 ซ*�งต์)อใชุ�ง�นพัร�อมืๆก นได้�สำ/งสำ�ด้ 5 ต์ วพัร�อมืก น แลัะสำ�มื�รถควบค�มืก�รขี บเซอร#โวมือเต์อร#ได้�จ�กกลั�)มืฟ7งก#ชุ �นทำ,�จ ด้เก2บอย/)ภ�ยในไลับร�ร, servo.h

Page 92: แนะนำแผงวงจรหลัก  MicroBOX
Page 93: แนะนำแผงวงจรหลัก  MicroBOX

ไลับร�ร,แลัะชุ�ด้ค��สำ �งทำ,�แนะน��ไลับร�ร, servo.h

เป0นไลับร�ร,ทำ,�บรรจ�ชุ�ด้ค��สำ �งควบค�มืก�รขี บเซอร#โวมือเต์อร# ก)อนเร,ยกใชุ�ง�นฟ7งก#ชุ �นทำ,�บรรจ�อย/)ภ�ยในผ/�พั ฒน�จะต์�องทำ��ก�รผนวกไฟลั#ไลับร�ร,ไว�ทำ,�ต์อนต์�นขีองโปรแกรมืภ�ษ� C ด้�วยค��สำ �ง

#include <servo.h>

Page 94: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น servo : ก��หนด้ต์��แหน)งเซอร#โวมือเต์อร# โด้ยเมื��อใชุ�ง�นก บร�)นมื�ต์รฐ�นจะทำ��ให�หมื�นไปย งต์��แหน)ง 0 ถ*ง 180 องศู�ได้�แลัะถ��ใชุ�ง�นก บร�)นปร บแต์)งจะทำ��ให�หมื�นในทำ.ศูทำ�งใด้ทำ.ศูทำ�งหน*�งแลัะมื,ผลัต์)ออ ต์ร�เร2วในก�รหมื�น หร�ออ�จหย�ด้น.�งร/ปแบบ void servo(unsigned char _ch

,unsigned int _pos);

พั�ร�มื.เต์อร# _ch ใชุ�ก��หนด้ชุ)องขี บทำ,�ต์)อใชุ�ง�นมื,ค)�ต์ 1งแต์) 0 ถ*ง 4

_pos ใชุ�ก��หนด้ต์��แหน)งก�รขี บขีองเซอร#โวมือเต์อร#

Page 95: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น servo_stop : ป@ด้ก�รขี บเซอร#โวมือเต์อร#ทำ�กชุ)องพัร�อมืก นร/ปแบบ

void servo_stop(void);

Page 96: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น servo_pause : ใชุ�สำ��หร บหย�ด้ก�รขี บเซอร#โวมือเต์อร#ในชุ)องทำ,�ก��หนด้ร/ปแบบ void servo_pause(unsigned char _ch);

พั�ร�มื.เต์อร# _ch ใชุ�ก��หนด้ชุ)องทำ,�ต์�องก�รหย�ด้ขี บเซอร#โวมือเต์อร#ทำ,�ต์)อใชุ�ง�นมื,ค)�ต์ 1งแต์) 0 ถ*ง 4

Page 97: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น servo_resume : ใชุ�สำ��หร บก�รขี บเซอร#โวมือเต์อร#ในต์��แหน)งทำ,�มื,ผลัจ�กก�รหย�ด้ขี บชุ �วขีณะจ�กฟ7งก#ชุ �น servo_pause ก)อนหน��น,1 ร/ปแบบ void servo_resume(unsigned char _ch);

พั�ร�มื.เต์อร# _ch ใชุ�ก��หนด้ชุ)องทำ,�ต์�องก�รขี บเซอร#โวมือเต์อร#ทำ,�ต์)อใชุ�ง�นมื,ค)�ต์ 1งแต์) 0 ถ*ง 4

Page 98: แนะนำแผงวงจรหลัก  MicroBOX

ฟ7งก#ชุ �น servo_get_status : ใชุ�สำ��หร บอ)�นค)�สำถ�นะก�รขี บเซอร#โวมือเต์อร#ในชุ)องทำ,�ก��หนด้ ร/ปแบบ unsigned char servo_get_status(unsigned char _ch);

พั�ร�มื.เต์อร# _ch ใชุ�ก��หนด้ชุ)องทำ,�ต์�องก�รอ)�นค)�สำถ�นะก�รขี บเซอร#โวมือเต์อร#ทำ,�ต์)อใชุ�ง�นมื,ค)�ต์ 1งแต์) 0 ถ*ง 4

ก�รค�นค)� ค�นค)�เป0น “1” เมื��อมื,ก�รใชุ�ง�นอย/)

ค�นค)�เป0น “0” เมื��อไมื)มื,ก�รใชุ�ง�น

Page 99: แนะนำแผงวงจรหลัก  MicroBOX

หมื�ยเหต์�เมื��อผ/�พั ฒน�มื,ก�รใชุ�ง�นกลั�)มืฟ7งก#ชุ �นควบค�มื

เซอร#โวมือเต์อร#จ�กไลับร�ร, servo.h โปรแกรมืจะมื,ก�รจ บจองขี�พัอร#ต์ด้ งน,1• เมื��อใชุ�ง�นเซอร#โวมือเต์อร#ชุ)อง 0 โปรแกรมืจะจอง

พัอร#ต์ PB0• เมื��อใชุ�ง�นเซอร#โวมือเต์อร#ชุ)อง 1 โปรแกรมืจะจอง

พัอร#ต์ PB1• เมื��อใชุ�ง�นเซอร#โวมือเต์อร#ชุ)อง 2 โปรแกรมืจะจอง

พัอร#ต์ PB2• เมื��อใชุ�ง�นเซอร#โวมือเต์อร#ชุ)อง 3 โปรแกรมืจะจอง

พัอร#ต์ PB3• เมื��อใชุ�ง�นเซอร#โวมือเต์อร#ชุ)อง 4 โปรแกรมืจะจอง

พัอร#ต์ PB4ด้ งน 1น ผ/�พั ฒน�จ��เป0นต์�องหลั,กเลั,�ยงก�รใชุ�

ง�นขี�พัอร#ต์ทำ,�ถ/กจองใชุ�ง�นร)วมืก บเซอร#โวมือเต์อร#

Page 100: แนะนำแผงวงจรหลัก  MicroBOX

ก�รทำด้ลัองทำ,� 22 ทำด้สำอบขี บเซอร#โวมือเต์อร#จ�กชุ)อง 0 ก�รเชุ��อมืต์)อทำ�งฮ�ร#ด้แวร#•ต์)อแผงวงจร Display-Motor เขี��ก บบอร#ด้ IPST•ต์)อเซอร#โวมือเต์อร#เขี��ก บพัอร#ต์ SERVO B0

Page 101: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 22 (servo_01.c) ทำด้สำอบขี บเซอร#โวมือเต์อร#จ�กชุ)อง 0 ขี 1นต์อนก�รทำด้ลัอง

ทำด้สำอบปร บเพั.�มืค)�ต์��แหน)งจ�กสำว.ต์ชุ# SW1 แลัะลัด้ค)�ต์��แหน)งจ�กสำว.ต์ชุ# SW2 ต์�มืลั��ด้ บเพั��อสำ งเกต์ผลัว)�ค)�ต์��แหน)งต์)�งๆขีองเซอร#โวมือเต์อร#

Page 102: แนะนำแผงวงจรหลัก  MicroBOX

#include <lcd.h>#include <sleep.h>#include <servo.h>#include <in_out.h>void main(){

unsigned char pos=20;while(1){

lcd("Position: %d ",pos);servo(0,pos);if(sw1()==0){pos++; sleep(100);}if(sw2()==0){pos--; sleep(100);}

}}

Page 103: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 23 (servo_02.c) ทำด้สำอบขี บเซอร#โวมือเต์อร#ชุ)อง 0 หมื�นไปมื�ระหว)�งต์��แหน)ง 20 แลัะ 60 ทำ.ศูทำ�งทำ�กๆ 2 ว.น�ทำ,

Page 104: แนะนำแผงวงจรหลัก  MicroBOX

#include <lcd.h>#include <sleep.h>#include <servo.h>#include <in_out.h>void main(){

lcd("Press SW1");sw1_press();while(1){

servo(0,20);sleep(2000);servo(0,60);sleep(2000);

}}

Page 105: แนะนำแผงวงจรหลัก  MicroBOX

โปรแกรมืก�รทำด้ลัองทำ,� 24 (servo_03.c) ทำด้สำอบขี บเซอร#โวมือเต์อร#ชุ)อง 0 ทำ,�ต์��แหน)ง 60 น�น 5 ว.น�ทำ,แลั�วหย�ด้ก�รขี บ

Page 106: แนะนำแผงวงจรหลัก  MicroBOX

#include <lcd.h>#include <sleep.h>#include <servo.h>#include <in_out.h>#define SERVO_MID 55void main(){

lcd("Press SW1");sw1_press();lcd("Servo Run");servo(0,60);sleep(5000);servo_pause(0);lcd("Servo Stop");

}