ETE183การเขยนโปรแกรมคอมพวเตอรส าหรบ
วศวกรรมไฟฟา
ดร.วชราพรรณ แกวประพนธ
บทท 9การตอวงจรไมโครคอนโทรลเลอรและเขยนโปรแกรมควบคมดวย
บอรด Arduino
บทท 9
1. การตอวงจรไมโครคอนโทรลเลอรเบองตน
2. อปกรณอเลกทรอนกสเบองตน
3. การอานคา/สงคา การหนวงเวลา
4. การวนรอบชดค าสง
5. การสงคาใหแสดงผล 7seg ชนด BCD
แนะน าบอรดArduino
Arduino UNO R3บอรด Arduino มความ สามารถ
ในการรกษาระดบแรงดนไฟฟาใหคงทได โดยระดบแรงดนไฟฟานนอยท 5โวลต
อปกรณอเลกทรอนกส
เบองตน(ทใชในคาบ)
หนาท• จ ากดการไหลของกระแสไฟฟาในวงจร
หนวย• โอหม (Ω)
ตวตานทาน (Resistor)
หนาท•เปนป มส าหรบ ตด/ตอ วงจร
สวตซ (Button)
หนาท
• หลอดไฟชนดหนงทกนกระแสนอยมาก
• แตใหแสงสวางมาก
ไดโอดเปลงแสง(Light Emitting Diode : LED)
หนาท
• น า LED หลายๆหลอดมาประกอบกนเปนแผงแสดงตวเลข
7 Segment
7 Segment
หนาท
• แปลงสญญาณ BCD (ABCD) ใหเปนสญญาณ 7Segment Common Cathode
IC74LS48
หนาท
• เปนบอรดอ านวยความสะดวกในการทดลองทางวงจรไฟฟา
Bread Board
(คนไทยเรยกวาPhotoBoard)
แนะน าโปรแกรม Proteus
Proteus
โปรแกรม Proteus เปนโปรแกรมจ าลอง (Simulation) วงจรอเลกทรอนกสไดหลากหลายรปแบบ ซงเปนทนยมมาก เพราะ ใชงานงาย ครอบคลมอปกรณอเลกทรอนกสพนฐานทวไป ผใชโปรแกรมสามารถทดลองวงจรอยางงายไดดวย Proteus โดยไมจ าเปนจะตองซออปกรณมาเพอตอวงจรเอง เหมาะกบการเรยนรวงจรอเลกทรอนกสเบองตน
Proteus
การตอวงจรเบองตนบนโปรแกรม Proteus
ตอวงจรเบองตน
การตอหลอดไฟ LED1.
การตอ 7 Segment2.
การตอ 7 Segment สงสญญาณแบบ BCD3.
การตอสวตช3.
การตอใชงาน LED เพอแสดงผล แบบ Source
การตอใชงาน LED เพอแสดงผล แบบ Source
การตอใชงานสวตซแบบ กดตด-ปลอยดบ (Button)การตอ แบบ เมอกดสวตซแลวไดคา logic 1
การตอใชงานสวตซแบบ กดตด-ปลอยดบ (Button)การตอ แบบ เมอกดสวตซแลวไดคา logic 0
การตอใชงาน 7-Segment แบบ Common Cathode
การตอใชงาน 7-Segment แบบ BCD
การตอใชงาน 7-Segment แบบ BCD
การน าภาษาซมาใชควบคมการท างาน
ของบอรด Arduino
การเขยนโปรแกรมเพอใชงานบน Arduino
C Language for Micro Controller
Variable
Input
OutputDefine
Process
void setup ()
//ค าสงทใชในการตงคา เชน การก าหนดพอรต คาเรมตน …void loop ()
// ค าสงทใชในการสงให Arduino ท างานตามทเรตองการ โดยโปรแกรมจะวน loop ฟงกชนนใหอตโนมตเมอท าเสรจสนครบรอบ
เรมตนเขยนโปรแกรม
เมอเรมตนท ำงำน Arduino จะท ำตำมค ำสงตำงๆทอยในฟงกชน “setup” เปนจ ำนวน1 รอบ โดยค ำสงตำงๆทจะเขยนในฟงกชนน สวนมำกจะเปนกำรก ำหนดคำเรมตน กำรก ำหนดหนำทของแตละขำ หรอค ำสงตำงๆทตองกำรเรยกใชเพยงแคครงแรกครงเดยว หลงจำกทจบฟงกชน “setup” จะไมมกำรยอนกลบมำท ำค ำสงในนอก สวนฟงกชน loop จะท ำงำนตอจำก setup โดยใน loop นจะเปนกำรท ำตำมค ำสงแบบวนซ ำ คอ ท ำงำนตำมค ำสงบรรทดแรกไปเรอยๆจนถงบรรทดสดทำย แลววนกลบมำเรมท ำทบรรทดแรกใหมอกครง
เรมตนเขยนโปรแกรม
การก าหนดพอรต
การก าหนดพอรต
pinMode(พอรต,INPUT หรอ OUTPUT);
* ท ำใน Function Setup เทำนน
การก าหนดพอรต OUTPUT
void setup ()
pinMode(12,OUTPUT);
pinMode(12,OUTPUT); หมำยควำมวำก ำหนดให pin หมำยเลข12 เปน OUTPUTซงสญญำณทสงออกมำนนเปนสญญำณแบบดจตอล ทมอย 2 สถำนะคอ HIGH และ LOW
การก าหนดพอรต INPUT
void setup ()
pinMode(13,INPUT);
pinMode(13,INPUT); หมำยควำมวำก ำหนดให pin หมำยเลข13 เปน INPUTซงสญญำณทรบเขำมำนนเปนสญญำณแบบดจตอล ทมอย 2 สถำนะคอ HIGH และ LOWเรำมกจะรบคำแลวน ำไปเกบไวในตวแปร
การอานคาการสงคา
การหยดชวคราว
การสงคา HIGH และ LOW
digitalWrite(พอรต,HIGH หรอ LOW);
การสงคา HIGH และ LOWvoid setup ()
pinMode(12,OUTPUT);
void loop ()
digitalWrite(12,HIGH);
digitalWrite(12,HIGH); เปนค ำสงท สงให pin หมำยเลข 12สงแรงดนขนำด 5 โวลตออกมำ เพอท ำให LED ไฟสวำง
digitalWrite(12,LOW); หมำยถงหยดกำรจำยแรงดนไฟฟำออก หรอท ำใหมนเชอมตอกบ GND แทน จะท ำให LED ไฟดบ
การอานคาจากพอรต INPUT
digitalRead(พอรต)
การอานคาจากพอรต INPUT
int button = 0;void setup ()
pinMode(13,INPUT);
void loop ()
button = digitalRead(13);
button = digitalRead(13); เปนค ำสงท สงให pin หมำยเลข 13 อำนคำทได (ไดจำกกำรกดปม switch จำกรป ถำกด logic = 1 ถำไมกด logic = 0) แลวน ำคำทอำนได ไปเกบไวในตวแปร button
delay(คามลลวนาท);เชน
delay(1000); มคาเทากบ 1 วนาทโปรแกรมจะหยดชวคราว 1 วนาท
การหยดพกชวคราว
การหนวงเวลาคอการสงงานให ไมโครคอนโทรลเลอร หยดท างานตามชวงเวลาทเราก าหนด และเมอครบตามก าหนดนนแลว ไมโครคอนโทรลเลอรกจะเรมท างานตอไปตามค าสงทเราเขยน เราสามารถสงงานให Arduino ท าการหนวงเวลาไดดวยฟงกชน
การหยดพกชวคราว
int led = 12;void setup() pinMode(led, OUTPUT); void loop()
digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(500);
การสงคาใหแสดงผล 7seg ดวยสญญาณไฟ
BCD
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
ตวอยางการเขยนโปรแกรม Arduino และ
ทดสอบบน Proteus
การประยกตกบภาษาซ
ทไดเรยนมา
ประกาศตวแปร1
ค านวณคา2
การเกบคาไวในตวแปร3
การเรยกใชคาจากตวแปร4
If else5
For6
Array7
Research
1.วธการสงใหหลอดไฟกระพรบ 10 ครง2.วธการสงให 7SEG BCD แสดงผล
ตงแต เลข 0 ถง 93.วธการสงใหหลอดไฟเรมกระพรบเมอ
กดปม 1 ครง
ปล.ใชตอบค าถามใน Quiz
-
Quiz Quiz บทท 9กอนเขาเรยน LAB
Homework
ออกแบบหนาตาของโปรแกรม- Dev-C++ และ WebApp วาดรปหนาตา
โปรแกรมทละหนาทมยในโปรแกรมของเรา คลายกบการท า Story Board
- Micro Controller วาดรปวงจรเบองตนดวยโปรแกรม Proteus หากวาดไมไดใหใชวการวาดมอแทน
- Raspberry Pi วาดรปวงจรเบองตนและโปรแกรมสงงานทละหนาคลาย Story Board
ภายใน 20/10/2557 เวลา 23.59น.
Top Related