วันอังคารที่ 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 และอีกเส้นเมื่อเป็น False
Annotation
คำอธิบายประกอบ (Annotation) 
สัญลักษณ์นี้ถูกนำมาใช้เพื่อเขียนคอมเม้นต์ให้กับ Flowchart
Connector

จุดเชื่อมต่อ (Connector) 
ใช้รวมเส้นการทำงานของ Flowchart ให้ออกไปเหลือเพียงเส้นเดียว
Direction Flow
ทิศทางการทำงาน (Direction Flow)
ใช้เชื่อมต่อสัญลักษณ์ต่างๆ เพื่อแสดงการไหลการงาน

วิธีใช้เขียนผังงาน

หลักการนำสัญลักษณ์ Flowchart ต่างๆ มาเขียนผังงาน
  1. ผังงาน (Flowchart) ต้องมีจุดเริ่มต้น (Start) และจุดสิ้นสุด (End)
  2. สัญลักษณ์แต่ละรูปจะถูกเชื่อมต่อด้วยทิศทางการทำงาน (Direction Flow) เพื่อบอกว่าเมื่อทำงานนี้เสร็จต้องไปทำงานไหนต่อไป
  3. การทำงานจะต้องเริ่มต้นที่จุดเริ่มต้น (Start) และจบที่จุดสิ้นสุด (End) เท่านั้น

ตัวอย่างการใช้สัญลักษณ์ Flowchart ในการเขียนผังงานระบบ

 

ตัวอย่าง ผังงานการลาป่วย 


อธิบายผังงานลาป่วย
  1. เริ่มต้น - Start
  2. ไปทำงาน - Process
  3. ฉันป่วยหรือไม่ ? - Decision ถ้าไม่ป่วยก็จบเลย - False
  4. ใช่ ฉันป่วย - True
  5. กรอกใบลาป่วย - Process
  6. ส่งอีเมล์ให้หัวหน้า - Process
  7. นอนพักผ่อน - Process
  8. จบ - End

ตัวอย่างการเขียนแผนผังงานเดินทางไปทำงาน