บทที่ 1...

Post on 22-Jul-2020

3 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โวลต

Arduino UNO R3

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

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

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

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

ตวตานทาน (Resistor)

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

สวตซ (Button)

หนาท

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

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

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

หนาท

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

Bread Board

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

หนาท

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

LDR(PhotoResistor)

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

Buzzer

Digital และ Analog

Digital

• 1/0

• HIGH/LOW

• 5V/0V

• สง/ต า

Analog

• ตงแต 0 ถง 1023

• ตงแต 0V ถง 5V

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

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

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

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

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

การน าคาจาก SENSOR

เขามาใชใน Arduino

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

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

ของบอรด 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เรามกจะรบคาแลวน าไปเกบไวในตวแปร

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

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

การสงคา 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

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

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

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

analogRead(พอรต)

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

void loop () LDR = analogRead(LDR_pin);

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

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);

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

Arduino

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

ทไดเรยนมา

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

ค านวณคา2

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

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

If else5

For6

Array7

-

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

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

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

Mini Project

Homework

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

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

top related