บทที่ 1...
Transcript of บทที่ 1...
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 น.