บทที่ 1...

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

Upload: others

Post on 22-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

วศวกรรมไฟฟา

ผศ.ดร.วชราพรรณ แกวประพนธอ.ชนกชนม สงวรโยธน

Page 2: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

บอรด Arduino

Page 3: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

บทท 9

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

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

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

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

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

Page 4: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

แนะน าบอรดArduino

Page 5: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 6: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

Arduino UNO R3

Page 7: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 8: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

ตวตานทาน (Resistor)

Page 9: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

สวตซ (Button)

Page 10: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

หนาท

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

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

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

Page 11: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

หนาท

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

Bread Board

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

Page 12: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

หนาท

• ตวความตานทานนสามารถเปลยนสภาพทางความน าไฟฟา ไดเมอมแสงมาตกกระทบ

LDR(PhotoResistor)

Page 13: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

หนาท• คออปกรณไฟฟาซงท าหนาทสงเสยงสญญาณเตอน เปรยบเสมอนกรงไฟฟา มขวลบและขวบวก เชนเดยวกบหลอด LED

Buzzer

Page 14: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

Digital และ Analog

Page 15: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

Digital

• 1/0

• HIGH/LOW

• 5V/0V

• สง/ต า

Analog

• ตงแต 0 ถง 1023

• ตงแต 0V ถง 5V

Page 16: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 17: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 18: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 19: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 20: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 21: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

การน าคาจาก SENSOR

เขามาใชใน Arduino

Page 22: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 23: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

ของบอรด Arduino

Page 24: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 25: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

C Language for Micro Controller

Variable

Input

OutputDefine

Process

Page 26: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

void setup ()

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

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

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

Page 27: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 28: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

Page 29: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

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

Page 30: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

void setup ()

pinMode(12,OUTPUT);

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

Page 31: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

void setup ()

pinMode(13,INPUT);

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

Page 32: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 33: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 34: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

pinMode(12,OUTPUT);

void loop ()

digitalWrite(12,HIGH);

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

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

Page 35: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

digitalRead(พอรต)

Page 36: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

การอานคาจากพอรต 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 37: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

Page 38: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

analogRead(พอรต)

int LDRpin = A0;int LDR;void setup ()

void loop () LDR = analogRead(LDR_pin);

Page 39: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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

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

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

Page 41: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

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/... · บทที่ 1 ภาษาซีเบื้องต้น

ตวอยางการเขยนโปรแกรมควบคม

Arduino

Page 43: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

ทไดเรยนมา

Page 44: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

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

ค านวณคา2

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

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

If else5

For6

Array7

Page 45: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

-

QuizQuiz บทท 9 และ 8.2กอนเขาเรยนครงหนา

Page 46: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

ประเมนการสอน

เขาไปประเมนการสอนในระบบสารสนเทศ

Page 47: บทที่ 1 ภาษาซีเบื้องต้นete.tido.tech/ete-programming/student/tutorials/... · บทที่ 1 ภาษาซีเบื้องต้น

Mini Project

Homework

1. กลมทหวขอยงไมผาน ใหมาสอบใหม2. ไฟลงานน าเสนอมนโปรเจคทแกไขแลว

(ZIP)ภายใน 16/10/2560 เวลา 16.30 น.