การพัฒนาโปรแกรมบน IPST-MicroBOX
description
Transcript of การพัฒนาโปรแกรมบน IPST-MicroBOX
การพั�ฒนาโปรแกรมบน การพั�ฒนาโปรแกรมบน IPST-IPST-MICROBOXMICROBOX
กฤษดา ใจเย็�นนคร ภั�กด�ชาติ�
วรพจน� กรแก�วว�ฒนก�ล
บร�ษั�ท อิ�นโนเวตี�ฟ เอิ�กเพัอิร�เมนตี� จำ�าก�ดwww.inex.co.th
2
ชุ�ดท�� 5
การทดลอิง
แผงวงจำรแสดงผลและพัอิร�ตีเอินกประสงค์�ค์อินเน�กเตีอิร�
ส�าหร�บส&�อิสารอิน�กรม
จำอิแสดงผล LCD
สว�ตีชุ� PB5 PB6 และ PB7
ตี�วตี'านทานปร�บค์(าได' PA7
+ 5V
10VCC
30AVCC
GND 11GND
31
DSP1LCD 16x2
4
6
RS
E
D7 D6 D5 D4 D3 D2 D1 D0 R/ W
+5V
+V
Vo
GND14 13 12 11 10 9 8 7 5 2
3
1RC2
RC3
RC7
RC6
RC5
RC4
+ 5V
RC1K1
SDA
K2SCLRC0
R12.2k
RA7VR210k
KN OB
VR1LCD
contrast
K3PA6RA6
10
9 8
7
3
1
5
4
162
+5V
615
C5
I C1M AX232
C2
C1
C3
C1-C510/ 50V
PD0/ RxD
PD1/ T xD
C4
R2150R
R3150R
1
2
34
RxDT xD
GNDDT R
+5V
RB5
RB6
RB7
SW 1
R510k
R710k
R910k
R4150R
R6150R
R8150R
K4R S-232
K1M CUI / O
24
25
29
28
27
26
23
22
33
34
15
14
6
7
8SW 2
SW 3
1 40
20 21
K1M CU I / O
A T M ega16บ น แ แ ผ ง ว ง จำ ร ห ล� กM icroB O X
ค์ อิ น เ น� ก เ ตี อิ ร� ตี� ว เ ม� ย A T M ega16 ด' า น ข้' า ง บ น
M icroB O Xแ ผ ง ว ง จำ ร ห ล� ก
• ใชุ'พัอิร�ตี PC2 ถึ.ง PC7 ในการตี�ดตี(อิก�บโมด/ล LCD• PC0 และ PD1 ส�าหร�บการส&�อิสารอิน�กรมแบบ I2C บ�ส• PD0 และ PD1 ส�าหร�บการส&�อิสารอิน�กรม• PB5,PB6 และ PB7 ส�าหร�บเชุ&�อิมตี(อิก�บสว�ตีชุ�• PA7 ส�าหร�บอิ(านค์(าแรงด�นอิะนาลอิกจำากตี�วตี'านทานปร�บค์(าได'• PA6 เป0นจำ�ดตี(อิเอินกประสงค์�
วงจำรข้อิงแผงวงจำรแสดงผล
ฟั�งก�ช� น lcd หร"อ LCD สำ%าหร�บการแสำดงผลข้�อความที่� โมด,ล LCD แบบ 16*2
ร/ปแบบฟ1งก�ชุ��น void lcd(char *p,...)พาราม�เติอร� p ที่%าหน�าที่� ร �บการก%าหนดกล�-มข้�อความที่� ติ�องการแสำดงผลที่� โมด,ล LCD โดย็สำามารถก%าหนดร,ปแบบการแที่รกสำ�ญล�กษณ์�พ�เศษเพ" อร-วมแสำดงผลค-าข้�อม,ลติ�วเลข้ร,ปแบบอ" นๆ อ�นได�แก-
ชุ�ดค์�าส��งส�าหร�บแสดงผลข้'อิค์วามท��โมด/ล LCD แบบ 16*2
ชุ�ดค์�าส��งส�าหร�บแสดงผลข้'อิค์วามท��โมด/ล LCD แบบ 16*2ตี�วอิย(าง 1
lcd(“Hello LCD”); // แสดงข้'อิค์วาม “Hello LCD” ท��โมด/ล LCD ผลล�พัธ์�ท��โมด/ล LCD
ตี�วอิย(างท�� 2 lcd("abcdefghijklmnopqrstuvwxyz");// แสดงผลข้'อิค์วามเม&�อิสายอิ�กข้ระเก�น 16 ตี�วอิ�กษัร// อิ�กข้ระตี�วถึ�ดไปจำะข้.3นบรรท�ดท�� 2 ท�นท�
ผลล�พัธ์�ท��โมด/ล LCD
ชุ�ดค์�าส��งส�าหร�บแสดงผลข้'อิค์วามท��โมด/ล LCD แบบ 16*2
ตี�วอิย(าง 3lcd(“Value: %d unit ”,518);
// แสำดงข้�อความร-วมก�บข้�อม,ลติ�วเลข้(518)ที่� โมด,ล LCD ผลล�พัธ์�ท��โมด/ล LCD
ตี�วอิย(าง 4lcd(“Value: %d ”,analog(4));
// อ-านค-าอะนาลอกที่� ช-อง 4 (ติรงก�บพอร�ติ PA4) มาแสำดงผลที่� โมด,ล LCDผลล�พัธ์�ท��โมด/ล LCD
ชุ�ดค์�าส��งส�าหร�บแสดงผลข้'อิค์วามท��โมด/ล LCD แบบ 16*2
ตี�วอิย(าง 5 char c_test=’j’;
lcd(“abcd%cxyz”,c_test); // แสดงข้'อิค์วามอิ�กระ “j” ร(วมก�บข้'อิค์วามอิ&�นๆ ผลล�พัธ์�ท��โมด/ล LCD
ตี�วอิย(าง 6 lcd(“Value: %f ”,125.450); // แสดงข้'อิค์วามร(วมก�บข้'อิม/ลตี�วเลข้จำ�านวนจำร�งท��โมด/ล LCD (แสดงทศน�ยม 3 หล�ก)
ผลล�พัธ์�ท��โมด/ล LCD
การทดลอิงท�� การทดลอิงท�� 12 12 การแสดงผลอิการแสดงผลอิอิกจำอิ อิกจำอิ LCDLCD อิย(างง(ายอิย(างง(าย
#include <ipst.h>void main(){while(1){lcd("Hello LCD");
}}
เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX
การทดลอิงท�� การทดลอิงท�� 13 13 การแสดงผลอิการแสดงผลอิอิกจำอิ อิกจำอิ LCDLCD 2 2 บรรท�ดบรรท�ด
#include <ipst.h>void main(){while(1){lcd("Line1#nLine2");}
}
เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX
new line
การทดลอิงท�� การทดลอิงท�� 14 14 การแสดงผลตี�วเลข้ การแสดงผลตี�วเลข้ แบบจำ�านวนเตี�มแบบจำ�านวนเตี�ม
#include <ipst.h>void main(){int x = 1568;while(1){lcd("Integer: %d ",x);
} }
เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX
การทดลอิงท�� การทดลอิงท�� 11 55 การแสดงผลการแสดงผลตี�วเลข้แบบทศน�ยมตี�วเลข้แบบทศน�ยม
#include <ipst.h>void main(){float x = 238.592;while(1){lcd("Float: %f ",x);
}}
การทดลอิงท�� การทดลอิงท�� 11 66 ใชุ'งานสว�ตีชุ�บนใชุ'งานสว�ตีชุ�บนแผงวงจำรแสดงผลแผงวงจำรแสดงผล
สว�ตีชุ� PB5, PB6 และ PB7
#include <ipst.h>void main(){
lcd("Test switch");while(1){
if(sw1()==0){
while(sw1()==0);lcd("SW1 Active!");sleep(1000);
lcd_clear(); }else if(sw2()==0){
while(sw2()==0);lcd("SW2 Active!");sleep(1000);
lcd_clear(); }else if(sw3()==0) {
while(sw3()==0);lcd("SW3 Active!");sleep(1000);
lcd_clear(); } }
}
บทบททดสอิบ ทดสอิบ 44 เข้�ยนโปรแกรมแสดงค์(าการน�บข้.3นท�ละ 1 ค์(าท�กๆ 1 ว�นาท�โดยประมาณและแสดงค์(าการน�บท��โมด/ล LCD ซึ่.�งร/ปแบบข้'อิค์วามท��หน'าจำอิ LCD ร/ปแบบ Time: xxx sec
โดยท�� xxx ค์&อิค์(าเวลาท��น�บได' ณ ป1จำจำ�บ�น
t i me : 300 sec
บทบททดสอิบ ทดสอิบ
5 5
เค์ร&�อิงตี�3งเวลา 30 ว�นาท�แบบน�บลง
ร/ปแบบ Count Down!
เข้�ยนโปรแกรมแสดงค์(าการน�บลงค์ร�3งละ 1 ค์(าท�กๆ 1 ว�นาท�โดยประมาณ
ค์(าเร��มตี'นถึ/กตี�3งค์(าไว'ท�� 30 ว�นาท�และแสดงค์(าการน�บท��โมด/ล LCD
Time: 30 sec
เม&�อิน�บค์(าถึ.ง 0 ให'แสดงข้'อิค์วาม
Time: 0 sec
Complete
Count Down!t i me : 30 sec
บทบททดสอิบ ทดสอิบ 66
เค์ร&�อิงตี�3งเวลาแบบน�บลงสามารถึก�าหนดค์(าได'
เข้�ย็นโปรแกรมแสำดงค-าการน�บลงคร�6งละ 1 ค-าที่�กๆ 1 ว�นาที่�โดย็ประมาณ์ โดย็ค-าเร� มติ�นสำามารถถ,กติ�6งค-าได�จากผ,�ใช�งานจากการกดสำว�ติช� SW1,SW2
และ SW3 ช-วงเร� มติ�นข้องโปรแกรมจะเป7นการร�บค-าการก%าหนดเวลาการน�บในหน-วย็
ว�นาที่�โดย็ม�เง" อนไข้ค"อ
Time:xxx sec
set:xxx sec
เม&�อิกดสว�ตีชุ� SW1 ค์(าท��ถึ/กตี�3งจำะเพั��มข้.3นค์ร�3งละ 1 ค์(าเม&�อิกดสว�ตีชุ� SW 2 ค์(าท��ถึ/กตี�3งจำะลดลงค์ร�3งละ 1 ค์(า
ซึ่9 งในช-วงระหว-างการติ�6งค-าน�6ที่� หน�าจอ LCD จะแสำดงค-าการติ�6งค-าเวลาน�บลงเป7น
เม&�อิกดสว�ตีชุ� SW3 จำะเข้'าส/(ข้�3นตีอินการน�บลงท�นท�ซึ่9 งในช-วงระหว-างการน�บลงที่� หน�าจอ LCD จะแสำดงร,ปแบบข้�อความ
ที่� หน�าจอ LCD เป7นCountdown
เม" อน�บลงมาจนถ9งค-า 0 แล�วที่� หน�าจอ LCD จะติ�องปรากฏข้�อความว-า
Time: 0 secComplete
Time:59 sec
Time:0 sec
ชุ�ดท�� 6
การทดลอิงอิ�ปกรณ�กล�(ม
5V
10W25 C
10.5 cm
0Vbit
byte ฐานส�บหกลอิจำ�ก
ฐานสอิงวงจำรแปลงอิะนาลอิกเป0นด�จำ�ตีอิล
0-5V 0-1023 (10 bit)
กระบวนการแปลค์(าด�จำ�ตีอิล (Quantization)
8 บ�ตี หมายถึ.งข้'อิม/ลไบนาร�� 8 บ�ตี
เก�ดค์(าท��เปล��ยนแปลงได'จำาก 0 ถึ.ง 255 2
810 บ�ตี หมายถึ.งข้'อิม/ลไบนาร�� 10 บ�ตี เก�ดค์(าท��เปล��ยนแปลงได'จำาก 0ถึ.ง 1023 210
ค์วามละเอิ�ยดเพั��มข้.3น 2 บ�ตี
ค์วามละเอิ�ยดเพั��มข้.3น 4 เท(า
Vdigital=Data x VFull Data
Vdigital=512 x 51024
Vdigital=2.5 V
ค์วามละเอิ�ยดในการแปลค์(า
(Resolution)
ฟ1งก�ชุ��น analog ส�าหร�บการอิ(านค์(าอิะนาลอิกค์วามละเอิ�ยดข้นาด 10 บ�ตี ท��ข้าส�ญญาณใดๆข้อิงพัอิร�ตี A ร/ปแบบฟ1งก�ชุ��น unsigned int analog(unsigned char channel)channel ท�าหน'าท��ก�าหนดชุ(อิงอิะนาลอิกท��ตี'อิงการใชุ'งานโดยม�ค์(าตี�3งแตี( 0 ถึ.ง 7 ซึ่.�งจำะตีรงก�บพัอิร�ตี PA0 ถึ.ง PA7 ตีามล�าด�บ
ตี�วอิย(างท�� 7
int adc_val=0;adc_val = analog(2);
อิ(านค์(าข้'อิม/ลจำากเซึ่นเซึ่อิร�อิะนาลอิกท��ตี(อิอิย/(ก�บข้า RA2 เก�บไว'ในตี�วแปร adc_val
GN D
+ V
O U T
LD R
R 24k7
ใช�ติรวจจ�บแสำงสำว-าง เล"อกเอาติ�พ�ติได� 2 แบบค"อ
แรงด�นเอิาตี�พั�ตีเพั��ม เม&�อิแสงตีกกระทบมากข้.3นแรงด�นเอิาตี�พั�ตีลดลง เม&�อิแสงตีกกระทบมากข้.3น
GN D
+ 5V
O U TLD R
R 24k7
A nalog to D ig ita lC onverter M icrocontro lle r
Analog0-5V
D ig ital Value
0-1023 (10 b it)
0-255 (8 b it)
ได'ร�บแสง มาก ค์(าท��ตีรวจำว�ดได' มากได'ร�บแสง น'อิย ค์(าท��ตีรวจำว�ดได' น'อิย
ได'ร�บแสง น'อิย ค์(าท��ตีรวจำว�ดได' มากได'ร�บแสง มาก ค์(าท��ตีรวจำว�ดได' น'อิย
GN D
+ 5V
O U T
LD R
R 24k7 A nalog to D ig ita l
C onverter M icrocontro lle rAnalog
0-5V
D ig ital Value
0-1023 (10 b it)
0-255 (8 b it)
GN D
+ 5V
O U T
LD R
R 14k7
V LDR
V R1
VLDR = +5V(RLDR/(RLDR+R1))VR1 = +5V(R1/(RLDR+R1))
การทดลอิงท�� การทดลอิงท�� 11 77 อิ(านค์(าจำากแผงอิ(านค์(าจำากแผงวงจำรตีรวจำจำ�บแสงวงจำรตีรวจำจำ�บแสงอิ(านค์(าอิะนาลอิกจำากการว�ดปร�มาณแสงจำากแผงวงจำรตีรวจำ
จำ�บแสงจำากพัอิร�ตี PA 5 และน�าค์(าท��อิ(านได'ไปแสดงผลท��โมด/ล LCD
Li ght : 699
ZX
-02
LDR
-Lig
ht
©in
ex
Li ght : 699
ZX
-02
LDR
-Lig
ht
©in
ex
1 ตี(อิแผงวงจำร ZX-LDR เข้'าก�บบอิร�ด IPST ท��ตี�าแหน(ง PA5
การทดลอิงท�� การทดลอิงท�� 11 77 อิ(านค์(าจำากแผงอิ(านค์(าจำากแผงวงจำรตีรวจำจำ�บแสงวงจำรตีรวจำจำ�บแสง2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3#include<ipst.h>void main(){
while(1){
lcd("Light: %d ",analog(5));sleep(100);
}}
3. ดาวน�โหลดโปรแกรมไปย�งไมโค์รค์อินโทรลเลอิร� 4 . ด/ผลการเปล��ยนแปลงค์(าข้อิง LDR เม&�อิสภาวะแสงแตีกตี(าง
ก�น
บทบททดสอิบ ทดสอิบ
7 7เข้�ย็นโปรแกรมควบค�มการเป;ด/ป;ดไฟั (แที่นด�วย็ LED ที่� ติ%าแหน-ง PD0 ) จากปร�มาณ์แสำงที่� ได�จากแผงวงจรติรวจจ�บแสำงติ%าแหน-ง PA 5
ถึ'าแสงน'อิย LED จำะตี'อิงตี�ดสว(างเพั&�อิแทนการเป:ดไฟ ถึ'าหากแสงสว(างปกตี� LED จำะตี'อิงด�บซึ่.�งแทนการป:ดไฟ น�าค์(าอิะนาลอิกข้อิงปร�มาณแสงท��อิ(านได'ไปแสดงผลท��
โมด/ล LCD
สว�ตีชุ�เป:ดไฟกลางค์&น
Li ght : 699
ZX
-02
LDR
-Lig
ht
©in
ex
ZX-LED2C
Bi-color LED
-+ S -+ S
Light : 500
Light : 100
Light : 900
1023 0512
GN D
+ V
O U T
LD R
R 24k7
R 1220
LED 1
ใชุ' LED แบบค์วามสว(างส/งเป0นตี�วก�าเน�ดแสง แล'วใชุ' LDR เป0นตี�วร�บแสงสะท'อินกล�บมา ค์(าท��อิ(านได'จำาก LDR เป0นค์วามเข้'มแสงท��สะท'อินจำากว�ตีถึ�ตี(าง ๆ
ใชุ'แผงวงจำรตีรวจำจำ�บการสะท'อินเป0น Encoder อิย(างง(าย
START
Robot m ove = 30 cmCounter = 300
Counter = 0
M otor ON
M otor OFF
Read Decoder
No
Yes
จำ�านวนชุ(อิงเท(าก�บ 9 ชุ(อิงเส'นผ(านศ/นย�กลาง 10 CM
D = 10 CM
เสำ�นรอบวง = Dเส'นรอิบวง = 4CM
ชุ(อิงการน�บ 1 ชุ(อิง = 31.4 / 9 = 3.5 CM / ชุ(อิง
การทดลอิงท�� การทดลอิงท�� 18 18 อิ(านค์(าจำากแผงวงจำรอิ(านค์(าจำากแผงวงจำรตีรวจำจำ�บแสงสะท'อินตีรวจำจำ�บแสงสะท'อินอิ(านค์(าอิะนาลอิกจำากแผงวงจำรตีรวจำจำ�บแสงสะท'อินจำากพัอิร�ตี PA 5 และน�าค์(าท��อิ(านได'ไปแสดงผลท��โมด/ล LCD
1. ตี(อิแผงวงจำร ZX-Reflect เข้'าก�บบอิร�ด IPST ท��ตี�าแหน(ง PA1
Li ght : 699
©in
ex
Zx-
Re
flect
การทดลอิงท�� การทดลอิงท�� 18 18 อิ(านค์(าจำากแผงวงจำรอิ(านค์(าจำากแผงวงจำรตีรวจำจำ�บแสงสะท'อินตีรวจำจำ�บแสงสะท'อิน2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3#include<ipst.h>void main(){
while(1){
lcd("Light: %d ",analog(1));sleep(100);
}}
3. ดาวน�โหลดโปรแกรมไปย�งไมโค์รค์อินโทรลเลอิร� 4. น�าแผงวงจำร ZX-Reflect ไปวางในตี�าแหน(งตี(าง ๆ ส�งเกตี
ผลท��จำอิ LCD
A Tem perature sensor
10k
T
+
+
+
S
+
S
อิ�ณหภ/ม�ส/งข้.3นแรงด�นลดลงอิ�ณหภ/ม�ส/งข้.3นแรงด�นมากข้.3น
การทดลอิงท�� การทดลอิงท�� 19 19 อิ(านค์(าอิ�ณหภ/ม�พัร'อิมอิ(านค์(าอิ�ณหภ/ม�พัร'อิมแจำ'งเตี&อินแจำ'งเตี&อินเม&�อิอิ�ณหภ/ม�ส/งกว(า 30 อิงศาเซึ่ลเซึ่�ยส จำะแจำ'งเตี&อินด'วย
เส�ยงจำากล�าโพังเป<ยโซึ่ และแสดงค์(าอิะนาลอิกจำากแผงวงจำรว�ดอิ�ณหภ/ม�ท��หน'าจำอิ
LCDก�าหนด ท��อิ�ณหภ/ม� 30 อิงศาเซึ่ลเซึ่�ยส เทอิร�ม�สเตีอิร�ข้อิงแผงวงจำรว�ดอิ�ณหภ/ม�จำะม�ค์(าค์วามตี'านทานไฟฟ=าประมาณ 8 ก�โลโอิห�ม
t
t
R
RD
101024
โดย็ที่� D ค"อค-าข้�อม,ลด�จ�ติอลที่� ได�Rt ค"อค-าความติ�านที่านที่� อ�ณ์หภั,ม�ข้อง
เง" อนไข้ (k Ohm)
11.455810
8*1024
D ด�งน�6นเม" อติ�องการติรวจว�ดที่� อ�ณ์หภั,ม
� 30 องศาค-าที่� อ-านได�จะม�ค-าเที่-าก�บ 455 โดย็ประมาณ์
1 .ตี(อิแผงวงจำร ZX-Thermister เข้'าก�บบอิร�ด IPST ท��ตี�าแหน(ง PA1
2. ตี(อิแผงวงจำรล�าโพังเป<ยโซึ่เข้'าท��ตี�าแหน(ง PD6
การทดลอิงท�� การทดลอิงท�� 19 19 อิ(านค์(าอิ�ณหภ/ม�พัร'อิมอิ(านค์(าอิ�ณหภ/ม�พัร'อิมแจำ'งเตี&อินแจำ'งเตี&อิน
Temp = : 455
©in
ex
Zx-
The
rmis
ter
SPEAKER
การทดลอิงท�� การทดลอิงท�� 11 99 อิ(านค์(าอิ�ณหภ/ม�พัร'อิมอิ(านค์(าอิ�ณหภ/ม�พัร'อิมแจำ'งเตี&อินแจำ'งเตี&อิน2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3
#include<ipst.h>void main(){
unsigned int value;while(1){
value = analog(1);lcd("Temp: %d ",value);if(value<455){
beep_d(6);}sleep(100);
}}
3. ดาวน�โหลดโปรแกรมไปย�งไมโค์รค์อินโทรลเลอิร�
4. ทดสอิบการท�างาน
แผงวงจำรตี�วตี'านทานปร�บค์(าได'แผงวงจำรตี�วตี'านทานปร�บค์(าได'
ตี�วตี'านทานปร�บค์(าได'แบบตี�วนอิน
ตี�วตี'านทานปร�บค์(าได'แบบ
ตี�วตี�3ง
ตี�วตี'านทานปร�บค์(าได'แบบเล&�อิน
ส�ญล�กษัณ�
แผงวงจำรตีรวจำจำ�บเส�ยงแผงวงจำรตีรวจำจำ�บเส�ยง
+
-
R 122k
M I C1
C1470uF / 16VC2
0.1uF / 50V
R 2100k
R 31k
R 4100k
+
-
3
2
1 5
6 8
4
7
I C1 : T LC272
I C1/ 1
I C1/ 2
C322uF
R 61k
R 568k R 7
12R
+ S
เอิาตี�พั�ตีท��ได'จำากแผงวงจำรตีรวจำจำ�บเส�ยงจำะเป0นระด�บแรงด�น 0 ถึ.ง 5โวลตี� เปล��ยนแปลงตีามระด�บค์วามด�งข้อิงเส�ยงเส�ยงด�งมากก�ให'ระด�บแรงด�นมาก เส�ยงค์(อิยก�ให'ระด�บแรงด�นน'อิย
แผงวงจำร แผงวงจำร LED LED อิ�นฟราเรด และ อิ�นฟราเรด และ PHOTO TRANSISTORPHOTO TRANSISTOR
LED Infrared
Photo Transistor
ἧǧ̈à LED ÍÔ¹¿ÃÒàÃ́ ἧǧ̈Ãâ¿âµŒ·ÃÒ¹«ÔÊàµÍÃ
แผงวงจำรโมด/ลร�บแสงอิ�นฟราเรดแผงวงจำรโมด/ลร�บแสงอิ�นฟราเรด
D I N FR AR ED R ECEI VER
0.1/ 50V
38kH zI R M
O U T
+S
+ V
GN D
แผงวงจำรโมด/ลร�บแสงอิ�นฟราเรดแผงวงจำรโมด/ลร�บแสงอิ�นฟราเรด
แผงวงจำรโมด/ลร�บแสงอิ�นฟราเรดแผงวงจำรโมด/ลร�บแสงอิ�นฟราเรด
แผงวงจำรตีรวจำจำ�บและว�ดสนามแม(เหล�ก แผงวงจำรตีรวจำจำ�บและว�ดสนามแม(เหล�ก : : MAGNETIC FIELD MAGNETIC FIELD
A Magnetic field
0.1/ 50V
UGN3503Hall-effect
sensor
+ V
GN D
O U T
+S
+ VccGND Vo u t
U G N 3503 • ใชุ'ว�ดค์วามเข้'มข้อิงสนามแม(เหล�ก • ถึ'าท�ศสนามแม(เหล�กพั� (งอิอิก ให'ผลล�พัธ์�เป0นแรงด�นบวก • ถึ'าสนามแม(เหล�กพั� (งเข้'า จำะให'ผลล�พัธ์�เป0นแรงด�นลบ • เม&�อิไม(ม�สนามแม(เหล�กจำะได'ค์(ากลาง 25. V • ค์วามไวในการว�ดค์&อิ . mV ตี(อิค์วามเข้'มสนามแม(เหล�ก 1 เกาส� (Gauss)
ค-าแรงด�นที่� ได� 25 00013= . + ( . x ความเข้�มสำนามแม-เหล�กในหน-วย็เกาสำ� : Gauss)
แผงวงจำรตีรวจำจำ�บและว�ดสนามแม(เหล�ก แผงวงจำรตีรวจำจำ�บและว�ดสนามแม(เหล�ก : : MAGNETIC FIELD MAGNETIC FIELD ส�าหร�บแผงวงจำรว�ดสนามแม(เหล�กสามารถึว�ดค์วามเข้'มสนามแม(เหล�กอิ(อินๆได'ในหน(วยเก>าส�(G) โดยค์�านวณได'จำากสมการ
initoutG AAB 756.3
โดยท�� BG ค์&อิค์วามเข้'มสนามแม(เหล�กในหน(วยเก>าส�(G)Ainit ค์&อิค์(าอิะนาลอิกท��อิ(านได'ในสภาวะปลอิดสนามแม(เหล�กAout ค์&อิค์(าอิะนาลอิกท��อิ(านได'ในสภาวะใดๆจำากแผงวงจำรว�ด
สนามแม(เหล�ก
การทดลอิงท�� การทดลอิงท�� 2020 อ-านค-าอะนาลอกจากแผงวงจรว�ดสำนามแม-เหล�ก1. เชุ&�อิมตี(อิแผงวงจำรว�ดสนามแม(เหล�กเข้'าก�บ PA2
Manet i c : 455
©in
ex
Zx-
Meg
netic
100n
2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3
3. ดาวน�โหลดโปรแกรมไปย�งไมโค์รค์อินโทรลเลอิร� 4. ส�งเกตีค์(าอิะนาลอิกท��อิ(านได'จำากแผงวงจำรว�ดสนามแม(เหล�กใน
ข้ณะปลอิดสนามแม(เหล�กเก�บค์(าน�3เพั&�อิใชุ'ในการค์�านวณหาค์วามเข้'มสนามแม(เล�กในหน(วยเกาส�(G) (หาค์(า Ainit )
#include<ipst.h>void main(){
unsigned int value;while(1){
lcd("Magnatic: %d ",analog(2));sleep(100);
}}
การทดลอิงท�� การทดลอิงท�� 2020 อ-านค-าอะนาลอกจากแผงวงจรว�ดสำนามแม-เหล�ก
2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3 3. ดาวน�โหลดโปรแกรมไปย�งไมโค์รค์อินโทรลเลอิร� 4. น�าแม(เหล�กถึาวรมาวางในท�ศทางตี(าง ๆ เพั&�อิทดสอิบอิ(านค์(า Aout
ใชุ'ในการค์�านวณหาค์(า BG
#include<ipst.h>void main(){
unsigned int value;while(1){
lcd("Magnatic: %d ",analog(2));sleep(100);
}}
การทดลอิงท�� การทดลอิงท�� 2121 อิ(านค์(าสนามแม(เหล�กจำากแผงวงจำรว�ดสนามแม(เหล�ก
โมด/ลว�ดระยะทาง โมด/ลว�ดระยะทาง GP2D120GP2D120
ค์(าแรงด�นเอิาตี�พั�ตีข้อิง GP2D120 ท��ระยะทาง 30 เซึ่นตี�เมตีรท��ไฟเล�3ยง 5+ V อิย/(ในชุ(วง 025. ถึ.ง 055. V โดยค์(ากลางค์&อิ 04. V ชุ(วงข้อิงการเปล��ยนแปลงแรงด�นเอิาตี�พั�ตีท��ระยะทาง 4 เซึ่นตี�เมตีรค์&อิ 225. V ±0.3V
โมด/ลว�ดระยะทาง โมด/ลว�ดระยะทาง GP2D120GP2D120
การใชุ'งานโมด/ลว�ดระยะทาง GP2D120 จำะตี'อิงท�าการผนวกไลบราร�
gp2d120_lib.h
แล'วใชุ'ฟ1งก�ชุ��น getdist เพั&�อิอิ(านค์(าระยะทางในหน(วยเซึ่นตี�เมตีรตี�วอิย(างdis = getdist(0);เป0นการอิ(านค์(าระยะทางจำาก GP2D120 ท��ตี(อิอิย/(ก�บข้า PA0
ข้อิบเข้ตีการท�างานจำะอิย/(ในชุ(วง 4 ถึ.ง 32 เซึ่นตี�เมตีรตีามค์�ณสมบ�ตี�ข้อิงผ/'ผล�ตี
ด�งน�3นค์(าท��อิ(านได'ท��อิย/(นอิกข้อิบเข้ตีจำะถึ&อิว(าไม(สามารถึน�ามาประเม�ณได'
การทดลอิงท�� การทดลอิงท�� 2222 GP2D120 GP2D120 ว�ดระยะทางว�ดระยะทางแสดงผลท�� แสดงผลท�� LCDLCD1. ตี(อิ GP2D120 เข้'าก�บข้า PA0
RAW DATA = 115Di s t ance = 20 CM
#include<ipst.h>#include<gp2d120_lib.h>void main(){
int dis=0;while(1){
dis = getdist(0);if(dis>=4 && dis<=32){
lcd("Distance: %d ",dis);}else{
lcd("Out of Range!");}sleep(100);
}}
2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3การทดลอิงท�� การทดลอิงท�� 2222 GP2D120 GP2D120 ว�ดระยะทางว�ดระยะทางแสดงผลท�� แสดงผลท�� LCDLCD
แผงวงจำรว�ดค์(าค์วามตี'านทานแผงวงจำรว�ดค์(าค์วามตี'านทาน
จำ�ดว�ด
เท�ยบบ�ญญ�ตี�ไตีรยางค์�5 000 ม�ลล�โวลตี�(5 โวลตี�) ค์&อิระด�บท��
1024 (ข้อิบเข้ตีบนส�าหร�บอิ'างอิ�ง)
ด�งน�6น 1 ม�ลล�โวลตี� ค์&อิค์(าอิะนาลอิก
1024 5000/ = 0.2048
สำร�ป
แผงวงจำรว�ดค์วามตี'านทานจำะสามารถึว�ดค์วามตี'านทานได'ส/งส�ด 4 ก�โลโอิห�ม โดยอิ�ตีราส(วนใน 1 mV/1ohm
2048.0
AR เม&�อิ R ค์&อิค์(าค์วามตี'านทานท��อิ(านได'
เม&�อิ A ค์&อิค์(าข้'อิม/ลท��อิ(านได'จำากแผงวงจำร IPST MicroBOX
การทดลอิงท�� การทดลอิงท�� 2323 อิ(านค์(าค์วามตี'านทานอิ(านค์(าค์วามตี'านทาน1. ตี(อิ แผงวงจำรว�ดค์(าค์วามตี'านทานเข้'าก�บจำ�ดตี(อิ PA4
TL2272
R
RESISTANCE AResolution 1mV/OhmFull scale 4000 Ohm
Resistor
100n
RAW DATA = 103R = 503. 000 Ohm
#include<ipst.h>void main(){
float r=0.0;while(1){
r = (float)analog(4)/0.2048;lcd("R = %f Ohm ",r);sleep(100);
}}
2.เป:ดโปรแกรม AVR Studio เข้�ยนโปรแกรมตีามตี�วอิย(างตี(อิไปน�3
การทดลอิงท�� การทดลอิงท�� 2323 อิ(านค์(าค์วามตี'านทานอิ(านค์(าค์วามตี'านทาน
บทบททดสอิบทดสอิบ 7 7จำากชุ�ดตี�วตี'านทานท��ม�ให'ท�าการว�ดค์(าตี�วตี'านทานเพั&�อิหาค์(า 1ก�โลโอิห�ม เม&�อิพับโมด/ล LCD จำะแสดงข้'อิค์วาม “DETECT!” พัร'อิมส(งเส�ยงแจำ'งเตี&อิน แตี(เม&�อิพับค์วามตี'านทานค์(าอิ&�นโมด/ล LCD จำะแสดงข้'อิค์วาม “PASS”
เค์ร&�อิงค์�ดเล&อิกค์วามตี'านทาน 1 ก�โลโอิห�ม
TL2272
R
RESISTANCE AResolution 1mV/OhmFull scale 4000 Ohm
Resistor
100n
RAW DATA = 103R = 503. 000 Ohm
ชุ�ดค์�าส��งส&�อิสารข้'อิม/ลอิน�กรมเม&�อิตี'อิงการน�า MicroBOX ตี�ดตี(อิก�บค์อิมพั�วเตีอิร�ท�าได'โดยใชุ'
โมด/ลส&�อิสารข้'อิม/ลอิน�กรม ผ(านสาย CX-4 โดยบนบอิร�ดแสดงผล LCD จำะม�จำ�ดตี(อิส�าหร�บ
ส&�อิสารอิน�กรมตี�ดตี�3งไว'แล'วสร�ปฟ1งก�ชุ��นในการใชุ'งานม�ด�งน�3
1. ฟ1งก�ชุ��น uart ท�าหน'าท��ส(งข้'อิม/ลสายอิ�กข้ระอิอิกทางวงจำรภาค์ส(งข้อิงโมด/ล UART
2. ฟ1งก�ชุ��น uart_putc ท�าหน'าท��ส(งข้'อิอิ�กข้ระหน.�งตี�วอิอิกทางวงจำรภาค์ส(งข้อิงโมด/ล UART3 . ฟ1งก�ชุ��น uart_set_baud ท�าหน'าท��ก�าหนดอิ�ตีราบอิดหร&อิอิ�ตีราเร�วในการส&�อิสารข้'อิม/ลอิน�กรมก�บค์อิมพั�วเตีอิร� (ค์(าปกตี�จำะเป0น 9600 บ�ตีตี(อิว�นาท�)4 . ฟ1งก�ชุ��น uart_getkey ท�าหน'าท��เร�ยกอิ(านข้'อิม/ลท��ผ(านการส&�อิสารข้'อิม/ลอิน�กรมก�บค์อิมพั�วเตีอิร�
การทดลอิงท�� การทดลอิงท�� 22 4 4 ส(งข้'อิค์วามจำาก MicroBOX ไปแสดงท��ค์อิมพั�วเตีอิร� 1 .เชุ&�อิมตี(อิสายพัอิร�ตีอิน�กรมระหว(างพัอิร�ตีอิน�กรมท��แผง
วงจำร Display-io ก�บค์อิมพั�วเตีอิร�2 .ป:ดโปรแกรม AVR prog และโปรแกรมอิ&�นๆท��อิาจำจำะ
จำอิงพัอิร�ตีอิน�กรม ซึ่.�งข้�ดข้วางการส&�อิสารข้'อิม/ลอิน�กรมระหว(าง MicroBOX ก�บค์อิมพั�วเตีอิร�ได'
3. เป:ดโปรแกรม HyperTerminal
การทดลอิงท�� การทดลอิงท�� 22 4 4 ส(งข้'อิค์วามจำาก MicroBOX ไปแสดงท��ค์อิมพั�วเตีอิร� 4. เข้�ยนโปรแกรมตี(อิไปน�3ด'วย AVR Studio5. ตี�3งค์(าตี(าง ๆ ท��โปรแกรม Hyper Terminal
#include<ipst.h>void main(){
while(1){
uart("Hello IPST MicroBOX\r\n");sleep(2000);
} }
การทดลอิงท�� การทดลอิงท�� 22 4 4 ส(งข้'อิค์วามจำาก MicroBOX ไปแสดงท��ค์อิมพั�วเตีอิร� 6. โปรแกรม Hyper Terminal จำะแสดงข้'อิค์วามด�งน�3
การทดลอิงท�� การทดลอิงท�� 22 5 5 กดค์�ย� “1” เป:ดป:ดไฟจำากค์อิมพั�วเตีอิร�• เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX• ตี(อิสายจำากจำ�ด PB4 ข้อิงแผงวงจำร MicroBOX เข้'าก�บแผงวงจำร LED• ตี(อิสายจำากจำ�ด PD 6 ข้อิงแผงวงจำร MicroBOX เข้'าก�บแผงวงจำรล�าโพังเป<ยโซึ่#include<ipst.h>void main(){
uart("Press key '1' for Toggle LED\r\n");while(1){
if(uart_getkey()=='1'){
beep_d(6);toggle_b(4);
}}
}
• ใชุ'ไอิซึ่�ข้�บโหลดกระแสส/งเบอิร� ULN2003 บนบอิร�ดจำ�ดวงจำรเพั&�อิข้�บร�เลย� 12V 4 ชุ(อิง• ใชุ'ไฟเล�3ยง 12V แยกตี(างหาก• ร�บส�ญญาณลอิจำ�ก “ 1 ในการกระตี�'นให'ร�เลย�ท�างาน• ม�ไฟแสดงการท�างานข้อิงร�เลย�• อิ�ตีราทนได'ข้อิงหน'าส�มผ�สร�เลย� 220Vac 5A สามารถึรอิงร�บโหลดได'ไม(เก�น 600 ว�ตีตี�
ข้ ด ล ว ดN O ( )ป ก ตี� เ ป: ดC O M ( )ข้ า ร( ว มN C ( )ป ก ตี� ป: ด
1
2
3
4
16
15
14
13
I N 1
I N 2
I N 3
I N 4
O U T 1
O U T 2
O U T 3
O U T 4
VCC
GN D
I C1ULN2003
LED4
LED3
LED2
LED1
R 11.8k
R 21.8k
R 31.8k
R 41.8k
R ELAY 4
R ELAY 3
R ELAY 2
R ELAY 1
N O
C
N C
N O
C
N C
N O
C
N C
N O
C
N C
R ELAY 4
R ELAY 3
R ELAY 2
R ELAY 1
+ 12V
C10.1uF/ 50V
บททดสอิบท�� 8 เป:ด/ป:ดอิ�ปกรณ�ไฟฟ=าด'วยค์อิมพั�วเตีอิร�
เข้�ยนโปรแกรมค์วบค์�มการเป:ด/ป:ดอิ�ปกรณ�ไฟฟ=าซึ่.�งจำ�าลอิงสถึานะการณ�ว(าร�เลย�แตี(ละชุ(อิงได'ตี(อิเข้'าก�บอิ�ปกรณ�ไฟฟ=าค์รบท�3ง 4ชุ(อิงเร�ยบร'อิยแล'ว โดยม�เง&�อินไข้ด�งน�3
1. เม&�อิกดค์�ย� ‘1’ ท��แป=นค์�ย�บอิร�ดอิ�ปกรณ�ท��ตี(อิเข้'าก�บชุ(อิง RELAY-1 จำะตี'อิงท�างาน
2. เม&�อิกดค์�ย� ‘2 ’ ท��แป=นค์�ย�บอิร�ดอิ�ปกรณ�ท��ตี(อิเข้'าก�บชุ(อิง RELAY-2 จำะตี'อิงท�างาน
3. เม&�อิกดค์�ย� ‘3 ’ ท��แป=นค์�ย�บอิร�ดอิ�ปกรณ�ท��ตี(อิเข้'าก�บชุ(อิง RELAY-3 จำะตี'อิงท�างาน
4. เม&�อิกดค์�ย� ‘4 ’ ท��แป=นค์�ย�บอิร�ดอิ�ปกรณ�ท��ตี(อิเข้'าก�บชุ(อิง RELAY- 4 จำะตี'อิงท�างาน
5. เม&�อิกดค์�ย� ‘0 ’ ท��แป=นค์�ย�บอิร�ดอิ�ปกรณ�ท�3งหมดจำะตี'อิงหย�ดท�างาน
• ใชุ'ไอิซึ่�ข้�บมอิเตีอิร�เบอิร� L293D สามารถึข้�บมอิเตีอิร�ได' 2 ชุ(อิง• ใชุ'ไฟเล�3ยงในย(าน 6 ถึ.ง 12V แยกตี(างหาก• ใชุ'ส�ญญาณค์วบค์�มมอิเตีอิร�ชุ(อิงละ 3 เส'น ท�าให'ค์วบค์�มได'ค์รบท�กเง&�อินไข้• ม�จำ�ดตี(อิหลายแบบท�าให'สามารถึตี�ดตี(อิก�บไมโค์รค์อินโทรลเลอิร�ได'สะดวก• ม�ไฟแสดงข้�3วข้อิงแรงด�นท��จำ(ายให'ก�บมอิเตีอิร�• จำ�ดตี(อิมอิเตีอิร�ท�3ง 2 ชุ(อิงเป0นเทอิร�ม�นอิลบล�อิก แยกก�นอิ�สระ
+ 5V
R21k
LED2
C20.1F
R11k
LED1
1Y
2Y
3Y
4Y
-+
-+
G 2E 2A 2B
2B
2A
2E
+5V
1E 1A 1B
1B
1A
1EK1
PW M 1
K2DI R 1A
K3DI R 1B
K4PW M 2
K5DI R 2A
K6DI R 2B
VM
+-K9
+ VmC3
470/16V
R42.2k
LED2Vm
VCC
R31k
LED1+ 5V
G G G G
I C1L293D
816
3
6
11
14
1
2
7
9
10
15
4 5 12 13
K10M OTOR 1
K11M OTOR 2
K8M otor2
CON TR OL
K7M otor1
CON TR OL
C10.1F
C4470/16V
การทดลอิงท�� การทดลอิงท�� 2626 มอิเตีอิร�ชุ(อิง 1 หม�นกล�บท�ศท�ก 5 ว�นาท� ด'วยก�าล�งข้�บ 60%
การทดลอิงท�� การทดลอิงท�� 2626 มอิเตีอิร�ชุ(อิง 1 หม�นกล�บท�ศท�ก 5 ว�นาท� ด'วยก�าล�งข้�บ 60%
• เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX• ตี(อิสายจำากจำ�ด PB4 ข้อิงแผงวงจำร MicroBOX เข้'าก�บแผงวงจำร LED#include <ipst.h>void main(){
while(1){
motor(1,60);sleep(5000);motor(1,-60);sleep(5000);motor_stop(1);sleep(2000);
}}
การทดลอิงท�� การทดลอิงท�� 2626 มอิเตีอิร�ชุ(อิง 1 หม�นกล�บท�ศท�ก 5 ว�นาท� ด'วยก�าล�งข้�บ 60%
• เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX• ตี(อิสายจำากจำ�ด PB4 ข้อิงแผงวงจำร MicroBOX เข้'าก�บแผงวงจำร LED#include <ipst.h>void main(){
while(1){
motor(1,analog(3)/11);}
}
การทดลอิงท�� การทดลอิงท�� 2626 มอิเตีอิร�ชุ(อิง 1 หม�นกล�บท�ศท�ก 5 ว�นาท� ด'วยก�าล�งข้�บ 60%
• เชุ&�อิมตี(อิโมด/ลแผงวงจำรแสดงผลโมด/ล LCD เข้'าก�บแผงวงจำรหล�ก MicroBOX• ตี(อิสายจำากจำ�ด PB4 ข้อิงแผงวงจำร MicroBOX เข้'าก�บแผงวงจำร LED#include <ipst.h>void main(){
int ad1=0;while(1)
{ad1=(analog(3)-512);ad1=ad1/6;motor(1,ad1);
}
}