บทที่ 1...

Post on 23-Sep-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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