วันอังคารที่ 14 สิงหาคม พ.ศ. 2561
งานปฏิบัติ 1
//คำสั่งทำให้มอเตอร์หมุนแล้วไฟติด2ดวง
int LED1 = 4;
int LED2 = 5;
int LED3 = 6;
int LED4 = 7;
int LED5 = 8;
int LED6 = 9;
int LED7 = 10;
int LED81 = 11;
int LED9 = 12;
void setup() {
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED81,OUTPUT);
pinMode(LED9,OUTPUT);
}
void loop() {
digitalWrite(LED1,HIGH);
delay(30);
digitalWrite(LED1,LOW);
delay(30);
if (LED1 == HIGH);
digitalWrite(LED2,HIGH);
delay(30);
digitalWrite(LED2,LOW);
delay(30);
if (LED2 == HIGH);
digitalWrite(LED3,HIGH);
delay(30);
digitalWrite(LED3,LOW);
delay(30);
if (LED3 == HIGH);
digitalWrite(LED4,HIGH);
delay(30);
digitalWrite(LED4,LOW);
delay(30);
if (LED4 == HIGH);
digitalWrite(LED5,HIGH);
delay(30);
digitalWrite(LED5,LOW);
delay(30);
if (LED5 == HIGH);
digitalWrite(LED6,HIGH);
delay(30);
digitalWrite(LED6,LOW);
delay(30);
if (LED6 == HIGH);
digitalWrite(LED7,HIGH);
delay(30);
digitalWrite(LED7,LOW);
delay(30);
if (LED7 == HIGH);
digitalWrite(LED81,HIGH);
delay(30);
digitalWrite(LED81,LOW);
delay(30);
if (LED81 == HIGH);
digitalWrite(LED9,HIGH);
delay(30);
digitalWrite(LED9,LOW);
delay(30);
if (LED4 == HIGH);
digitalWrite(LED1,LOW);
delay(100);
digitalWrite(LED2,LOW);
delay(100);
digitalWrite(LED3,LOW);
delay(100);
digitalWrite(LED4,LOW);
delay(100);
digitalWrite(LED5,LOW);
delay(100);
digitalWrite(LED6,LOW);
delay(100);
digitalWrite(LED7,LOW);
delay(100);
digitalWrite(LED81,LOW);
delay(100);
digitalWrite(LED9,LOW);
delay(100);
if (LED9 == HIGH);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED4,HIGH);
delay(100);
digitalWrite(LED5,HIGH);
delay(100);
digitalWrite(LED6,HIGH);
delay(100);
digitalWrite(LED7,HIGH);
delay(100);
digitalWrite(LED81,HIGH);
delay(100);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
delay(100);
digitalWrite(LED2,LOW);
delay(100);
digitalWrite(LED3,LOW);
delay(100);
digitalWrite(LED4,LOW);
delay(100);
digitalWrite(LED5,LOW);
delay(100);
digitalWrite(LED6,LOW);
delay(100);
digitalWrite(LED7,LOW);
delay(100);
digitalWrite(LED81,LOW);
delay(100);
digitalWrite(LED9,LOW);
delay(100);
if (LED9 == HIGH);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED4,HIGH);
delay(100);
digitalWrite(LED5,HIGH);
delay(100);
digitalWrite(LED6,HIGH);
delay(100);
digitalWrite(LED7,HIGH);
delay(100);
digitalWrite(LED81,HIGH);
delay(100);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
delay(100);
digitalWrite(LED2,LOW);
delay(100);
digitalWrite(LED3,LOW);
delay(100);
digitalWrite(LED4,LOW);
delay(100);
digitalWrite(LED5,LOW);
delay(100);
digitalWrite(LED6,LOW);
delay(100);
digitalWrite(LED7,LOW);
delay(100);
digitalWrite(LED81,LOW);
delay(100);
digitalWrite(LED9,LOW);
delay(100);
if (LED9 == HIGH);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED4,HIGH);
delay(100);
digitalWrite(LED5,HIGH);
delay(100);
digitalWrite(LED6,HIGH);
delay(100);
digitalWrite(LED7,HIGH);
delay(100);
digitalWrite(LED81,HIGH);
delay(100);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED81,LOW);
digitalWrite(LED9,LOW);
delay(100);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED81,HIGH);
digitalWrite(LED9,HIGH);
delay(100);
}
มินิโปรเจค Arduino เปิดปิดไฟด้วย Bluetooth
อุปกรณ์ในชุด โปรเจค Arduino เปิดปิดไฟบ้านผ่านมือถือ เชื่อมต่อ Bluetooth
Arduino UNO R3 แถมฟรี สายUSB 1 ชิ้นBluetooth Module HC06 1 ชิ้นบอร์ดทดลอง Breadboard 830 Point 1ชิ้นสายไฟจัมเปอร์ ผู้-ผู้ ยาว 20cm. จำนวน 40 เส้น 1 แพรสายไฟจัมเปอร์ ผู้-เมีย ยาว 20cm. จำนวน 40 เส้น 1 แพรสายไฟจัมเปอร์ เมีย-เมีย ยาว 20cm. จำนวน 40 เส้น 1 แพรRelay Module 5V 4 Channel isolation control Relay Module Shield 250V/10A 1 ชิ้นDC male Adapter Jack plug สำหรับ Arduino 2.1 x 5.5 mm 1 ชิ้นสายไฟพร้อมหัวปลั๊ก ขนาด2*0.75 ยาว2m 1 เส้นSwitching Power supply แหล่งจ่ายไฟ 5V 5A 1 ชิ้นElectronics box กล่องอิเล็กทรอนิกส์ ขนาด 200mmx300mmx63mm (กxยxส) 1 ใบ
วิธีการต่อ โปรเจค Arduino เปิดปิดไฟบ้านผ่านมือถือ เชื่อมต่อ Bluetooth
ฺBluetooth Module HC06 -> Arduino
Vcc -> 5V
GND -> GND
Tx -> Pin 2
Rx -> Pin 3
Relay Module -> Arduino
GND -> GND
In 1-> Pin 8
In 2-> Pin 9
In 3-> Pin 10
In 4-> Pin 11
ใช้แหล่งจ่ายไฟ 5v5a เลี้ยง Relay Module และ Arduino uno r3
ต่อ Bluetooth Module HC06 กับ arduino ตามรูปข้างบน ใช้แหล่งจ่ายไฟ 5V5A เลี้ยงวงจรทั้งหมด ต่อไฟเลี้ยงจาก Arduino โดยตรงไม่ได้
อัพโหลด โค๊ด ตัวอย่าง โปรเจค Arduino เปิดปิดไฟบ้านผ่านมือถือ เชื่อมต่อ Bluetooth Module HC06
1
/*
2
3
Software serial multple serial test
4
5
6
Receives from the hardware serial, sends to software serial.
7
8
Receives from software serial, sends to hardware serial.
9
10
11
The circuit:
12
13
* RX is digital pin 2 (connect to TX of other device)
14
15
* TX is digital pin 3 (connect to RX of other device)
16
17
18
Note:
19
20
Not all pins on the Mega and Mega 2560 support change interrupts,
21
22
so only the following can be used for RX:
23
24
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
25
26
27
Not all pins on the Leonardo support change interrupts,
28
29
so only the following can be used for RX:
30
31
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
32
33
34
created back in the mists of time
35
36
modified 25 May 2012
37
38
by Tom Igoe
39
40
based on Mikal Hart's example
41
42
43
This example code is in the public domain.
44
45
46
*/
47
48
#include <SoftwareSerial.h>
49
50
int i =0;
51
char str[11]={'0','0','0','0','0','0','0','0','0','0','0'};
52
SoftwareSerial mySerial(2, 3); // RX, TX
53
54
55
void setup()
56
57
{
58
pinMode(8, OUTPUT);
59
pinMode(9, OUTPUT);
60
pinMode(10, OUTPUT);
61
pinMode(11, OUTPUT);
62
digitalWrite(8, HIGH);
63
digitalWrite(9, HIGH);
64
digitalWrite(10, HIGH);
65
digitalWrite(11, HIGH);
66
Serial.begin(9600);
67
68
while (!Serial) ;
69
70
mySerial.begin(9600);
71
72
}
73
74
75
void loop()
76
77
{
78
79
if (mySerial.available()){
80
//Serial.write(mySerial.read());
81
//Serial.println("ok");
82
i=i+1;
83
str[i]=mySerial.read();
84
//Serial.println(str[i]);
85
if(i ==9)
86
i=0;
87
if(str[5] == '1' && str[7] == '3')
88
digitalWrite(8, LOW);
89
if(str[5] == '1' && str[7] == '2')
90
digitalWrite(8, HIGH);
91
if(str[5] == '2' && str[7] == '3')
92
digitalWrite(9, LOW);
93
if(str[5] == '2' && str[7] == '2')
94
digitalWrite(9, HIGH);
95
if(str[5] == '3' && str[7] == '3')
96
digitalWrite(10, LOW);
97
if(str[5] == '3' && str[7] == '2')
98
digitalWrite(10, HIGH);
99
if(str[5] == '4' && str[7] == '3')
100
digitalWrite(11, LOW);
101
if(str[5] == '4' && str[7] == '2')
102
digitalWrite(11, HIGH);
103
}
104
105
106
if (Serial.available())
107
108
mySerial.write(Serial.read());
109
110
}
application ในมือถือ ให้โหลด ตามลิ้งด้านล่าง หรือ ใน Play Store application ชื่อ Ardroid
https://play.google.com/store/apps/details?id=com.thechampanurag.arduino
ให้เข้าไปใน application Ardroid กดปุ่มที่มีรูป 3 จุด ขวาบน แล้วเลือก Bluetooth ที่จะเชื่อมต่อ
ถ้าเชื่อมต่อสำเร็จ ไฟที่กระพริบอยู่บน Bluetooth Module HC06 จะหยุดกระพริบ
เมื่อ กด Pin1 รีเลย์ตัวที่ 1 จะทำงาน ไฟสถานะบน Relay Module ช่องที่ 1 ก็จะติด ตามรูปด้านล่าง
เมื่อ กด Pin1 Pin2 Pin3 Pin4 มือถือจะส่งค่า การกดปุ่ม ผ่าน Bluetooth Module HC06 ส่งมาให้ Arduino UNO R3 ประมวลผล และสั่งงาน รีเลย์ตัวที่ 1 2 3 4 จะทำงาน ไฟสถานะบน Relay Module ช่องที่ 1 2 3 4 ก็จะติด ตามรูปด้านล่าง
การต่อหลอดไฟ 220v ให้ต่อตามรูปข้างล่างนี้ จะเห็นว่า ก่อนที่สั่งงาน Relay หน้าคอนแทค 2 กับ 3 ยังไม่ติดกัน ทำให้ไม่ครบวงจรไฟเลยไม่ติด แต่ถ้าส่งสัญญาณมาสั่งงาน Relay หน้าคอนแทค 2 ที่ติดอยู่กับ หน้าคอนแทค 1 จะโยกมาติดกับ หน้าคอนแทค 3 ไฟไหลครบวงจรไฟจะติด
วันพุธที่ 8 สิงหาคม พ.ศ. 2561
สัญลักษณ์ Flowchart
สัญลักษณ์ Flowchart คือ รูปภาพที่ใช้แทนความหมายการทำงานในลักษณะต่างๆ ภายในผังงาน (Flowchart) ประกอบไปด้วย การเริ่มต้น (Start), การจบ (End), การกระทำ (Process), การนำเข้าข้อมูล (Input), การแสดงผลข้อมูล (Output), การตัดสินใจ (Decision), คำอธิบาย (Annotation), จุดเชื่อมต่อ (Connector), ทิศทางการทำงาน (Direction Flow)สัญลักษณ์เหล่านี้เมื่อถูกนำมาเชื่อมต่อกัน จะกลายเป็น "ผังงาน (Flowchart)" ที่แสดงลำดับขั้นตอนการทำงานเพื่อ
- เป็นเครื่องมือในการจัดลำดับความคิด
- เห็นลำดับขั้นตอนการทำงานที่ชัดเจน
มาดูกันว่าสัญลักษณ์ต่างๆ มีความหมายว่าอย่างไรกันบ้างครับสัญลักษณ์ Flowchart (ผังงาน)
รูปภาพสัญลักษณ์ ความหมายของสัญลักษณ์ Start / Endการเริ่มต้นหรือจบ Flowchart (Start หรือ End) Process การกระทำ (Process) ถูกใช้เพื่อแสดงที่การกระทำใน Flowchartตัวอย่างเช่น "กำหนด 1 ให้ X", "บันทึกการเปลี่ยนแปลง", "แทนที่ X ด้วยค่า 10" Input / Output ส่วนการนำเข้าข้อมูลหรือแสดงผลข้อมูล (Input / Output)ตัวอย่างเช่น "นำเข้าค่า X จากผู้ใช้", "แสดงผลข้อมูล X"Decision การตัดสินใจ (Decision)นำมาใช้เพื่อพิจารณา True หรือ False เส้นการทำงานที่ออกจาก Decision จะมีสองเส้นเสมอเส้นแรกเมื่อเป็น True และอีกเส้นเมื่อเป็น FalseAnnotation คำอธิบายประกอบ (Annotation)สัญลักษณ์นี้ถูกนำมาใช้เพื่อเขียนคอมเม้นต์ให้กับ Flowchart Connector จุดเชื่อมต่อ (Connector)ใช้รวมเส้นการทำงานของ Flowchart ให้ออกไปเหลือเพียงเส้นเดียว Direction Flow ทิศทางการทำงาน (Direction Flow)ใช้เชื่อมต่อสัญลักษณ์ต่างๆ เพื่อแสดงการไหลการงานวิธีใช้เขียนผังงาน
หลักการนำสัญลักษณ์ Flowchart ต่างๆ มาเขียนผังงาน
- ผังงาน (Flowchart) ต้องมีจุดเริ่มต้น (Start) และจุดสิ้นสุด (End)
- สัญลักษณ์แต่ละรูปจะถูกเชื่อมต่อด้วยทิศทางการทำงาน (Direction Flow) เพื่อบอกว่าเมื่อทำงานนี้เสร็จต้องไปทำงานไหนต่อไป
- การทำงานจะต้องเริ่มต้นที่จุดเริ่มต้น (Start) และจบที่จุดสิ้นสุด (End) เท่านั้น
ตัวอย่างการใช้สัญลักษณ์ Flowchart ในการเขียนผังงานระบบ
ตัวอย่าง ผังงานการลาป่วย
อธิบายผังงานลาป่วย
- เริ่มต้น - Start
- ไปทำงาน - Process
- ฉันป่วยหรือไม่ ? - Decision ถ้าไม่ป่วยก็จบเลย - False
- ใช่ ฉันป่วย - True
- กรอกใบลาป่วย - Process
- ส่งอีเมล์ให้หัวหน้า - Process
- นอนพักผ่อน - Process
- จบ - End
ตัวอย่างการเขียนแผนผังงานเดินทางไปทำงาน