บทที่ 1...

49
ETE 183 การเขียนโปรแกรมคอมพิวเตอร์สาหรับ วิศวกรรมไฟฟ้า ดร . วชิรา พรรณ แก้ว ประพันธ์

Upload: others

Post on 23-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

ETE183การเขยนโปรแกรมคอมพวเตอรส าหรบ

วศวกรรมไฟฟา

ดร.วชราพรรณ แกวประพนธ

Page 2: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

บทท 9การตอวงจรไมโครคอนโทรลเลอรและเขยนโปรแกรมควบคมดวย

บอรด Arduino

Page 3: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

บทท 9

1. การตอวงจรไมโครคอนโทรลเลอรเบองตน

2. อปกรณอเลกทรอนกสเบองตน

3. การอานคา/สงคา การหนวงเวลา

4. การวนรอบชดค าสง

5. การสงคาใหแสดงผล 7seg ชนด BCD

Page 4: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

แนะน าบอรดArduino

Page 5: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

Arduino UNO R3บอรด Arduino มความ สามารถ

ในการรกษาระดบแรงดนไฟฟาใหคงทได โดยระดบแรงดนไฟฟานนอยท 5โวลต

Page 6: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

อปกรณอเลกทรอนกส

เบองตน(ทใชในคาบ)

Page 7: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท• จ ากดการไหลของกระแสไฟฟาในวงจร

หนวย• โอหม (Ω)

ตวตานทาน (Resistor)

Page 8: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท•เปนป มส าหรบ ตด/ตอ วงจร

สวตซ (Button)

Page 9: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท

• หลอดไฟชนดหนงทกนกระแสนอยมาก

• แตใหแสงสวางมาก

ไดโอดเปลงแสง(Light Emitting Diode : LED)

Page 10: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท

• น า LED หลายๆหลอดมาประกอบกนเปนแผงแสดงตวเลข

7 Segment

Page 11: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

7 Segment

Page 12: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท

• แปลงสญญาณ BCD (ABCD) ใหเปนสญญาณ 7Segment Common Cathode

IC74LS48

Page 13: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

หนาท

• เปนบอรดอ านวยความสะดวกในการทดลองทางวงจรไฟฟา

Bread Board

(คนไทยเรยกวาPhotoBoard)

Page 14: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

แนะน าโปรแกรม Proteus

Page 15: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

Proteus

โปรแกรม Proteus เปนโปรแกรมจ าลอง (Simulation) วงจรอเลกทรอนกสไดหลากหลายรปแบบ ซงเปนทนยมมาก เพราะ ใชงานงาย ครอบคลมอปกรณอเลกทรอนกสพนฐานทวไป ผใชโปรแกรมสามารถทดลองวงจรอยางงายไดดวย Proteus โดยไมจ าเปนจะตองซออปกรณมาเพอตอวงจรเอง เหมาะกบการเรยนรวงจรอเลกทรอนกสเบองตน

Page 16: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

Proteus

Page 17: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอวงจรเบองตนบนโปรแกรม Proteus

Page 18: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

ตอวงจรเบองตน

การตอหลอดไฟ LED1.

การตอ 7 Segment2.

การตอ 7 Segment สงสญญาณแบบ BCD3.

การตอสวตช3.

Page 19: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงาน LED เพอแสดงผล แบบ Source

Page 20: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงาน LED เพอแสดงผล แบบ Source

Page 21: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงานสวตซแบบ กดตด-ปลอยดบ (Button)การตอ แบบ เมอกดสวตซแลวไดคา logic 1

Page 22: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงานสวตซแบบ กดตด-ปลอยดบ (Button)การตอ แบบ เมอกดสวตซแลวไดคา logic 0

Page 23: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงาน 7-Segment แบบ Common Cathode

Page 24: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงาน 7-Segment แบบ BCD

Page 25: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การตอใชงาน 7-Segment แบบ BCD

Page 26: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การน าภาษาซมาใชควบคมการท างาน

ของบอรด Arduino

Page 27: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การเขยนโปรแกรมเพอใชงานบน Arduino

Page 28: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

C Language for Micro Controller

Variable

Input

OutputDefine

Process

Page 29: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

void setup ()

//ค าสงทใชในการตงคา เชน การก าหนดพอรต คาเรมตน …void loop ()

// ค าสงทใชในการสงให Arduino ท างานตามทเรตองการ โดยโปรแกรมจะวน loop ฟงกชนนใหอตโนมตเมอท าเสรจสนครบรอบ

เรมตนเขยนโปรแกรม

Page 30: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

เมอเรมตนท ำงำน Arduino จะท ำตำมค ำสงตำงๆทอยในฟงกชน “setup” เปนจ ำนวน1 รอบ โดยค ำสงตำงๆทจะเขยนในฟงกชนน สวนมำกจะเปนกำรก ำหนดคำเรมตน กำรก ำหนดหนำทของแตละขำ หรอค ำสงตำงๆทตองกำรเรยกใชเพยงแคครงแรกครงเดยว หลงจำกทจบฟงกชน “setup” จะไมมกำรยอนกลบมำท ำค ำสงในนอก สวนฟงกชน loop จะท ำงำนตอจำก setup โดยใน loop นจะเปนกำรท ำตำมค ำสงแบบวนซ ำ คอ ท ำงำนตำมค ำสงบรรทดแรกไปเรอยๆจนถงบรรทดสดทำย แลววนกลบมำเรมท ำทบรรทดแรกใหมอกครง

เรมตนเขยนโปรแกรม

Page 31: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การก าหนดพอรต

Page 32: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การก าหนดพอรต

pinMode(พอรต,INPUT หรอ OUTPUT);

* ท ำใน Function Setup เทำนน

Page 33: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การก าหนดพอรต OUTPUT

void setup ()

pinMode(12,OUTPUT);

pinMode(12,OUTPUT); หมำยควำมวำก ำหนดให pin หมำยเลข12 เปน OUTPUTซงสญญำณทสงออกมำนนเปนสญญำณแบบดจตอล ทมอย 2 สถำนะคอ HIGH และ LOW

Page 34: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การก าหนดพอรต INPUT

void setup ()

pinMode(13,INPUT);

pinMode(13,INPUT); หมำยควำมวำก ำหนดให pin หมำยเลข13 เปน INPUTซงสญญำณทรบเขำมำนนเปนสญญำณแบบดจตอล ทมอย 2 สถำนะคอ HIGH และ LOWเรำมกจะรบคำแลวน ำไปเกบไวในตวแปร

Page 35: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การอานคาการสงคา

การหยดชวคราว

Page 36: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การสงคา HIGH และ LOW

digitalWrite(พอรต,HIGH หรอ LOW);

Page 37: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การสงคา HIGH และ LOWvoid setup ()

pinMode(12,OUTPUT);

void loop ()

digitalWrite(12,HIGH);

digitalWrite(12,HIGH); เปนค ำสงท สงให pin หมำยเลข 12สงแรงดนขนำด 5 โวลตออกมำ เพอท ำให LED ไฟสวำง

digitalWrite(12,LOW); หมำยถงหยดกำรจำยแรงดนไฟฟำออก หรอท ำใหมนเชอมตอกบ GND แทน จะท ำให LED ไฟดบ

Page 38: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การอานคาจากพอรต INPUT

digitalRead(พอรต)

Page 39: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การอานคาจากพอรต 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

Page 40: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

delay(คามลลวนาท);เชน

delay(1000); มคาเทากบ 1 วนาทโปรแกรมจะหยดชวคราว 1 วนาท

การหยดพกชวคราว

การหนวงเวลาคอการสงงานให ไมโครคอนโทรลเลอร หยดท างานตามชวงเวลาทเราก าหนด และเมอครบตามก าหนดนนแลว ไมโครคอนโทรลเลอรกจะเรมท างานตอไปตามค าสงทเราเขยน เราสามารถสงงานให Arduino ท าการหนวงเวลาไดดวยฟงกชน

Page 41: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การหยดพกชวคราว

int led = 12;void setup() pinMode(led, OUTPUT); void loop()

digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(500);

Page 42: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การสงคาใหแสดงผล 7seg ดวยสญญาณไฟ

BCD

Page 43: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

00000

00011

00102

00113

01004

01015

01106

01117

10008

10019

Page 44: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

ตวอยางการเขยนโปรแกรม Arduino และ

ทดสอบบน Proteus

Page 45: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

การประยกตกบภาษาซ

ทไดเรยนมา

Page 46: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

ประกาศตวแปร1

ค านวณคา2

การเกบคาไวในตวแปร3

การเรยกใชคาจากตวแปร4

If else5

For6

Array7

Page 47: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

Research

1.วธการสงใหหลอดไฟกระพรบ 10 ครง2.วธการสงให 7SEG BCD แสดงผล

ตงแต เลข 0 ถง 93.วธการสงใหหลอดไฟเรมกระพรบเมอ

กดปม 1 ครง

ปล.ใชตอบค าถามใน Quiz

Page 48: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

-

Quiz Quiz บทท 9กอนเขาเรยน LAB

Page 49: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/ETE183_2557_9.pdf · void setup {//ค าสั่งที่ใช้ในการตั้งค่า

Homework

ออกแบบหนาตาของโปรแกรม- Dev-C++ และ WebApp วาดรปหนาตา

โปรแกรมทละหนาทมยในโปรแกรมของเรา คลายกบการท า Story Board

- Micro Controller วาดรปวงจรเบองตนดวยโปรแกรม Proteus หากวาดไมไดใหใชวการวาดมอแทน

- Raspberry Pi วาดรปวงจรเบองตนและโปรแกรมสงงานทละหนาคลาย Story Board

ภายใน 20/10/2557 เวลา 23.59น.