วันพุธที่ 3 ตุลาคม พ.ศ. 2561

Mini Project


Mini Project 

LED RGB CUBE 3x3x3






บล็อกไดอะแกรม







Software



int led1_red   = 3;              // กำหนดให้ led1_red ใช้ขาที่ 3
int led1_green = 4;            // กำหนดให้ led1_green ใช้ขาที 4  
int led1_blue  = 5;            // กำหนดให้ led1_blue ใช้ขาที่ 5


int led2_red   = 6;              // กำหนดให้ led2_red ใช้ขาที่ 6
int led2_green = 7;           // กำหนดให้ led2_green ใช้ขาที่ 7
int led2_blue  = 8;            // กำหนดให้ led2_blue ใช้ขาที่ 8


int led3_red   = 9;            // กำหนดให้ led3_red ใช้ขาที่ 9 
int led3_green = 10;         // กำหนดให้ led3_green ใช้ขาที่ 10   
int led3_blue  = 11;         // กำหนดให้ led3_blue ใช้ขาที่ 11  

int sw1 = 12;
int SW2;                           // กำหนดให้ sw1 ใช้ขาที่ 12   

void setup() {
  Serial.begin(9600);
  pinMode(led1_red,OUTPUT);     
  pinMode(led1_green,OUTPUT);
  pinMode(led1_blue,OUTPUT);

  pinMode(led2_red,OUTPUT);
  pinMode(led2_green,OUTPUT);
  pinMode(led2_blue,OUTPUT);

  pinMode(led3_red,OUTPUT);     // กำหนดให้ led1_red,led2_red,led3_red เป็น OUTPUT
  pinMode(led3_green,OUTPUT);  // กำหนดให้ led1_green,led2_green,led3_green เป็น OUTPUT  
  pinMode(led3_blue,OUTPUT);    // กำหนดให้ led1_blue,led2_blue,led3_blue เป็น OUTPUT

  pinMode(sw1,INPUT);           // กำหนดให้ sw1 เป็น INPUT

}

void loop() {
  SW2= digitalRead(sw1);
  Serial.println(SW2); 
   if (SW2 == 1){              // ถ้า sw1 = 1 ให้ทำต่อ
     LEDRED1();                 
     delay(500);
     LEDGREEN1();
     delay(500);
     LEDBLUE1();
     delay(500);
     LEDRED2();
     delay(500);
     LEDGREEN2();
     delay(500);
     LEDBLUE2();
     delay(500);
     LEDRED3();            // ให้ LEDRED1,LEDRED2,LEDRED3 ทำงาน       
     delay(500);              // หน่วงเวลา 0.5 วิ  
     LEDGREEN3();     // ให้ LEDGREEN1,LEDGREEN2,LEDGREEN3 ทำงาน         
     delay(500);             // หน่วงเวลา 0.5 วิ
     LEDBLUE3();        // ให้ LEDBLUE1,LEDBLUE2,LEDBLUE3 ทำงาน    
     delay(500);             // หน่วงเวลา 0.5 วิ  
 
}
  else                         // ถ้าไม่ใช่
  {
    LEDRED();          // ให้ LEDRED ทำงาน       
   delay (500);           // หน่วงเวลา 0.5 วิ    
   LEDGREEN();     // ให้ LEDGREEN ทำงาน         
   delay (500);          // หน่วงเวลา 0.5 วิ     
   LEDBLUE();       // ให้ LEDBLUE ทำงาน          
   delay (500);         // หน่วงเวลา 0.5 วิ     
  }
  }

void LEDRED(){
  digitalWrite(led1_red,HIGH);
  digitalWrite(led1_green,LOW);
  digitalWrite(led1_blue,LOW);
  digitalWrite(led2_red,HIGH);
  digitalWrite(led2_green,LOW);
  digitalWrite(led2_blue,LOW);
  digitalWrite(led3_red,HIGH);        // เขียน led1_red,led2_red,led3_red เป็น HIGH
  digitalWrite(led3_green,LOW);     // เขียน led1_green,led2_green,led3_green เป็น LOW
  digitalWrite(led3_blue,LOW);       // เขียน led1_blue,led2_blue,(led3_blue เป็น LOW
}

void LEDGREEN(){
  digitalWrite(led1_red,LOW);
  digitalWrite(led1_green,HIGH);
  digitalWrite(led1_blue,LOW);
  digitalWrite(led2_red,LOW);
  digitalWrite(led2_green,HIGH);
  digitalWrite(led2_blue,LOW);
  digitalWrite(led3_red,LOW);          // เขียน led1_red,led2_red,led3_red เป็น LOW
  digitalWrite(led3_green,HIGH);    // เขียน led1_green,led2_green,led3_green เป็น HIGH
  digitalWrite(led3_blue,LOW);        // เขียน led1_blue,led2_blue,(led3_blue เป็น LOW
}

void LEDBLUE(){
  digitalWrite(led1_red,LOW);
  digitalWrite(led1_green,LOW);
  digitalWrite(led1_blue,HIGH);
  digitalWrite(led2_red,LOW);
  digitalWrite(led2_green,LOW);
  digitalWrite(led2_blue,HIGH);
  digitalWrite(led3_red,LOW);         // เขียน led1_red,led2_red,led3_red เป็น LOW
  digitalWrite(led3_green,LOW);     // เขียน led1_green,led2_green,led3_green เป็น LOW
  digitalWrite(led3_blue,HIGH);      // เขียน led1_blue,led2_blue,(led3_blue เป็น HIGH
}
void LEDRED1(){
  digitalWrite(led1_red,HIGH);   // เขียน led1_red เป็น HIGH
  digitalWrite(led2_red,LOW);    // เขียน led2_red เป็น LOW
  digitalWrite(led3_red,LOW);    // เขียน led3_red เป็น LOW
}
void LEDRED2(){
  digitalWrite(led1_red,LOW);   // เขียน led1_red เป็น LOW
  digitalWrite(led2_red,HIGH);  // เขียน led2_red เป็น HIGH
  digitalWrite(led3_red,LOW);   // เขียน led3_red เป็น LOW
}
void LEDRED3(){
  digitalWrite(led1_red,LOW);   // เขียน led1_red เป็น LOW
  digitalWrite(led2_red,LOW);   // เขียน led2_red เป็น LOW
  digitalWrite(led3_red,HIGH);  // เขียน led3_red เป็น HIGH 
}
void LEDGREEN1(){
  digitalWrite(led1_green,HIGH);   // เขียน led1_green เป็น HIGH
  digitalWrite(led2_green,LOW);    // เขียน led2_green เป็น LOW
  digitalWrite(led3_green,LOW);    // เขียน led3_green เป็น LOW
}
void LEDGREEN2(){
  digitalWrite(led1_green,LOW);    // เขียน led1_green เป็น LOW
  digitalWrite(led2_green,HIGH);   // เขียน led2_green เป็น HIGH
  digitalWrite(led3_green,LOW);    // เขียน led3_green เป็น LOW
}
void LEDGREEN3(){
  digitalWrite(led1_green,LOW);    // เขียน led1_green เป็น LOW
  digitalWrite(led2_green,LOW);    // เขียน led2_green เป็น LOW
  digitalWrite(led3_green,HIGH);   // เขียน led3_green เป็น HIGH
}
void LEDBLUE1(){
  digitalWrite(led1_blue,HIGH);     // เขียน led1_blue เป็น HIGH
  digitalWrite(led2_blue,LOW);      // เขียน led2_blue เป็น LOW
  digitalWrite(led3_blue,LOW);      // เขียน led3_blue เป็น LOW
}
void LEDBLUE2(){
  digitalWrite(led1_blue,LOW);       // เขียน led1_blue เป็น LOW
  digitalWrite(led2_blue,HIGH);     // เขียน led2_blue เป็น HIGH
  digitalWrite(led3_blue,LOW);       // เขียน led3_blue เป็น LOW

}
void LEDBLUE3(){
  digitalWrite(led1_blue,LOW);    // เขียน led1_blue เป็น LOW
  digitalWrite(led2_blue,LOW);   // เขียน led2_blue เป็น LOW
  digitalWrite(led3_blue,HIGH);  // เขียน led3_blue เป็น HIGH
}



ลิงก์วิดีโอตัวอย่าง  https://youtu.be/oDJ-wighUXg
                                                                 







วันอังคารที่ 2 ตุลาคม พ.ศ. 2561

ปรับคะแนน


 

Arduino Based Automation ผ่าน Bluetooth


 Hardware  
  Input
  • Module Bluetooh HC - 05         
  Output
  • Relay 12V 4 ตัว
  • หลอดไฟ 12V 4 หลอด

 Software

#include <SoftwareSerial.h>                                 // เรียกใช้ไลบารี่

const int rxPin = 4;                                                // กำหนด rxPin ใช้ขา 4
const int txPin = 2;                                                // กำหนด txPin ใช้ขา 2             

SoftwareSerial mySerial(rxPin, txPin);                 // ตั้งค่าข้อมูล

const int Loads[] = {9, 10, 11, 12};                       // กำหนด Loads = 9,10,11,12

int state = 0;                                                           // ตั้ง state = 0
int flag = 0;                                                            // ตั้ง flag = 0

void setup() 
{
   for (int i=0;i<4;i++)                                           // กำหนด i=0 ถ้า i น้อยกว่า 4 ให้ i บวกเพิ่ม    
    {
      pinMode(Loads[i], OUTPUT);                       // กำหนด Loads[i] เป็น OUTPUT
    }
   mySerial.begin(9600);                                       // ความเร็บในการรับ-ส่งข้อมูล 9600
   for (int i=0;i<4;i++)                                           // กำหนด i=0 ถ้า i น้อยกว่า 4 ให้ i บวกเพิ่ม
    {
      digitalWrite(Loads[i], LOW);                        // เขียน Loads[i] = LOW โดยใช้วนลูป for
    }
   
}

void loop() 
{
    
    if(mySerial.available() > 0)                             // ถ้า mySerial.available มากกว่า 0
    {
      state = mySerial.read();                                 // state = mySerial.read
      flag=0;                                                           // flag = 0 
    }
    
    switch(state)                                                    // ให้ switch รับค่าจาก state
    {
      case '0':digitalWrite(Loads[0], HIGH);         // กรณี 0 ให้ Loads[0] เป็น HIGH
               flag=1;                                                  // flag = 1
               break;                                                    // หยุด
      case '1':digitalWrite(Loads[0], LOW);          // กรณี 1 ให้ Loads[0] เป็น LOW
               flag=1;                                                  // flag = 1
               break;                                                    // หยุด
      case '2':digitalWrite(Loads[1], HIGH);         // กรณี 2 ให้ Loads[1] เป็น HIGH
               flag=1;                                                  // flag = 1
               break;                                                   // หยุด
      case '3':digitalWrite(Loads[1], LOW);         // กรณี 3 ให้ Loads[1] เป็น LOW
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
      case '4':digitalWrite(Loads[2], HIGH);        // กรณี 4 ให้ Loads[2] เป็น HIGH
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
      case '5':digitalWrite(Loads[2], LOW);         // กรณี 5 ให้ Loads[2] เป็น LOW
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
      case '6':digitalWrite(Loads[3], HIGH);        // กรณี 6 ให้ Loads[3] เป็น HIGH
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
      case '7':digitalWrite(Loads[3], LOW);         // กรณี 1 ให้ Loads[0] เป็น LOW
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
      case '8':digitalWrite(Loads[0], LOW);         // กรณี 8 ให้ Loads[0] เป็น LOW
               digitalWrite(Loads[1], LOW);            // ให้ Loads[1] เป็น LOW
               digitalWrite(Loads[2], LOW);            // ให้ Loads[2] เป็น LOW
               digitalWrite(Loads[3], LOW);            // ให้ Loads[3] เป็น LOW
               flag=1;                                                 // flag = 1
               break;                                                   // หยุด
     }
}


FlowChart