วันอาทิตย์ที่ 30 กันยายน พ.ศ. 2561

งานแก้ไข แยก อธิบายส่วนต่างๆของproject


Hardware

1.Arduino uno r32.bluetooth hc 063.1N40074.2N22225.relay6.load

INPUT

1.bluetooth hc 06

OUTPUT

1.relay
2.load

SOFTWARE


#include <SoftwareSerial.h>                         เรียกใช้Library bluetooth

const int rxPin = 4;                                         Rx PIN ใช้ขา4
const int txPin = 2;                                         TX PIN ใช้ขา2

SoftwareSerial mySerial(rxPin, txPin);         กำหนดค่าลงใน Library bluetooth

const int 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และน้อยกว่า4 ให้ i+ไปเรื่อยๆ
    {
      pinMode(Loads[i], OUTPUT);              กำหนดให้ Load I เป็น OUTPUT  
    }
   mySerial.begin(9600);                                 แสดงค่า ออกทาง SERIAL MONITER 9600
   for (int i=0;i<4;i++)                                     ถ้า I เท่ากับ0และน้อยกว่า 4 ให้ i+ไปเรื่อยๆ
    {
      digitalWrite(Loads[i], LOW);                   ให้Load iเป็นสถานะ LOW
    }
   
}

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

               flag=1;                                                           flag เท่ากับ 1
               break;                                                             หยุดการทำงาน
     }
}

FLOWCHART





mini project


เปิดปิดไฟด้วยเสียง


อุปกรณ์ที่ใช้
- arduino R3
- จอLCD
- Relay
- หลอดไฟ
-เซ็นเซอร์เสียง

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


Hardware




Code
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27

LiquidCrystal_I2C lcd(I2C_ADDR,2,1,0,4,5,6,7);

int sound_sensor = 4;
int relay = 5;

int clap = 0;
long detection_range_start = 0;
long detection_range = 0;
boolean status_lights = false;


void setup() {
  pinMode(sound_sensor, INPUT);
  pinMode(relay, OUTPUT);
  lcd.begin (16,2);

}

void loop() {
  int status_sensor = digitalRead(sound_sensor);
  if (status_sensor == 0)
  {
    if (clap == 0)
    {
      detection_range_start = detection_range = millis();
      clap++;
    }
    else if (clap > 0 && millis()-detection_range >= 50)
    {
      detection_range = millis();
      clap++;
    }
  }
  if (millis()-detection_range_start >= 400)
  {
    if (clap == 2)
    {
      if (!status_lights)
        {
          status_lights = true;
          digitalWrite(relay, HIGH);          
          lcd.setCursor(0, 0);
          lcd.print("Bundit");
          lcd.setCursor(0,1);
          lcd.print(" ON  NAJA ");
        }
        else if (status_lights)
        {
          status_lights = false;
          digitalWrite(relay, LOW);          
          lcd.setCursor(0, 0);
          lcd.print("Bundit");
          lcd.setCursor(0,1);
          lcd.print(" OFF NAJA ");
        }
    }
    clap = 0;
  }

}

วันศุกร์ที่ 28 กันยายน พ.ศ. 2561

งานปฏิบัติ 18

code

#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;
const int SW_ON = 2; 
const int led_ON =  13; int CSW_ON = 0; int C_CSW_ON =0;
int Relay1=12,Relay2=11,Relay3=10,Relay4=9;
int sensorPin = A0;
int sensorValue = 0;
void setup() {
  lcd.backlight();
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(led_ON, OUTPUT);pinMode(SW_ON, INPUT);
  pinMode(Relay1,OUTPUT);pinMode(Relay2,OUTPUT);
  pinMode(Relay3,OUTPUT);pinMode(Relay4,OUTPUT);
//
  digitalWrite(Relay1,HIGH);digitalWrite(Relay2,HIGH);
  digitalWrite(Relay3,HIGH);digitalWrite(Relay4,HIGH);
  lcd.setCursor(0,0);
  lcd.print("Project2017");
  lcd.setCursor(0,1);
  lcd.print("standby");
}
//END Setup
void loop() {
  CSW_ON = digitalRead(SW_ON);
  sensorValue = analogRead(sensorPin);//Serial.println(sensorValue);
  //=======================================================================
  int c_sensorValue1 = map(sensorValue,0,1023,0,255);
  //Serial.print("c_sensorValue1 = ");Serial.println(c_sensorValue1);
  int c_sensorValue2 = map(sensorValue,0,1023,255,0);
  //Serial.print("c_sensorValue2 = ");Serial.println(c_sensorValue2);
  //=======================================================================
  //check SW_ON
  if (CSW_ON == LOW) { delay(1000);
    lcd.clear();
    C_CSW_ON++;
      Serial.print("C_CSW_ON = ");Serial.println(C_CSW_ON);
    //OPEN Project
    digitalWrite(led_ON, HIGH);
  //END check SW_ON
    if(C_CSW_ON == 1){
    lcd.setCursor(0,0);
    lcd.print("Power On ");
    delay(1000);
    lcd.clear();
    lcd.print("Power On ");
    delay(1000);
    lcd.clear();
    }
  }
  if(C_CSW_ON == 1){//OPEN PROJECT
    digitalWrite(led_ON, HIGH);
    //delay(1000);
    digitalWrite(Relay1, HIGH);
    //ตรวจสอบค่า VR================
      //lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(c_sensorValue1);
      lcd.print(" ");
      //==============================
      if(c_sensorValue1 >= 150){
      digitalWrite(Relay2, LOW);
      }else{
        digitalWrite(Relay2, HIGH);
        }
      //=============================
    //RelaySTART();
    }else{//OFF PROJECT
    lcd.setCursor(0,0);
    //lcd.print("Power Off");
    lcd.setCursor(0,1);
    lcd.print("standby");
    digitalWrite(led_ON, LOW); C_CSW_ON = 0;
    RelaySTOP();
    }
  }//END Loop
//======โปรแกรมย่อย==========
void RelaySTOP(){
digitalWrite(Relay1,HIGH);digitalWrite(Relay2,HIGH);
digitalWrite(Relay3,HIGH);digitalWrite(Relay4,HIGH);  
  }
void RelaySTART(){
digitalWrite(Relay1,LOW);digitalWrite(Relay2,LOW);
digitalWrite(Relay3,LOW);digitalWrite(Relay4,LOW); 
}  

งานปฏิบัติที่17


int buttonPin = 4;
int ledPin =  13;
boolean buttonState = 0;
void setup() {

  pinMode (buttonPin,INPUT);
  pinMode (ledPin,OUTPUT);

}

void loop()
{  buttonState = digitalRead(buttonPin);

      if (buttonState == HIGH) {
         digitalWrite(ledPin, LOW);
      } else {
         digitalWrite(ledPin, HIGH);
      }

}

งานปฏิบัติ 15


#include <LiquidCrystal_I2C.h> 
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Tfloat;
LiquidCrystal_I2C lcd(0x27,16,2);
void setup(void)
{
  sensors.begin();
  lcd.begin();
  Serial.begin(9600);
void loop(void)
{
  sensors.requestTemperatures(); 
  Tfloat = sensors.getTempCByIndex(0);
  Serial.print(Tfloat);
  lcd.setCursor(0,0);
  lcd.print("T = ");
  lcd.print(Tfloat,4);
  delay(250);
}

งานปฏิบัติ16

#define LED_PIN1 2 //
#define LED_PIN2 3
#define LED_PIN3 4
#define LED_PIN4 5
#define LED_PIN5 6
#define LED_PIN6 7
#define LED_PIN7 8
#define LED_PIN8 9
int inByte1 = 0; // incoming serial byte
int inByte2 = 0;
byte bit0 = B00000001; // 1
byte bit1 = B00000010; // 2
byte bit2 = B00000100; // 4
byte bit3 = B00001000; // 8
byte bit4 = B00010000; // 16
byte bit5 = B00100000; // 32
byte bit6 = B01000000; // 64
byte bit7 = B10000000; // 128
byte bitDelay = 100;
boolean status_unlock;
boolean status_bluetooth;
long interval = 100; // interval at which to blink (milliseconds)
long previousMillis = 0; // will store last time LED was updat
int minite,sec;
void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
pinMode(LED_PIN3, OUTPUT);
pinMode(LED_PIN4, OUTPUT);
pinMode(LED_PIN5, OUTPUT);
pinMode(LED_PIN6, OUTPUT);
pinMode(LED_PIN7, OUTPUT);
pinMode(LED_PIN8, OUTPUT);
digitalWrite(LED_PIN1, LOW); // switch on LED
digitalWrite(LED_PIN2, LOW); // switch on LED
digitalWrite(LED_PIN3, LOW); // switch on LED
digitalWrite(LED_PIN4, LOW); // switch on LED
digitalWrite(LED_PIN5, LOW); // switch on LED
digitalWrite(LED_PIN6, LOW); // switch on LED
digitalWrite(LED_PIN7, LOW); // switch on LED
digitalWrite(LED_PIN8, LOW); // switch on LED
Serial.print("Arduino control LEDs Start");
Serial.print('\n');
}
void loop()
{
while (Serial.available() > 0) {
inByte1 = Serial.parseInt(); // get incoming byte:
char c = Serial.read();
if ( (c == '\n') || (c == '\r')) {
Serial.println(" ");
if (inByte1 & bit0){ // if bitwise AND resolves to true
digitalWrite(LED_PIN1,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN1,LOW); // send 0
}
if (inByte1 & bit1){ // if bitwise AND resolves to true
digitalWrite(LED_PIN2,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN2,LOW); // send 0
}
if (inByte1 & bit2){ // if bitwise AND resolves to true
digitalWrite(LED_PIN3,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN3,LOW); // send 0
}
if (inByte1 & bit3){ // if bitwise AND resolves to true
digitalWrite(LED_PIN4,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN4,LOW); // send 0
}
if (inByte1 & bit4){ // if bitwise AND resolves to true
digitalWrite(LED_PIN5,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN5,LOW); // send 0
}
if (inByte1 & bit5){ // if bitwise AND resolves to true
digitalWrite(LED_PIN6,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN6,LOW); // send 0
}
if (inByte1 & bit6){ // if bitwise AND resolves to true
digitalWrite(LED_PIN7,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN7,LOW); // send 0
}
if (inByte1 & bit7){ // if bitwise AND resolves to true
digitalWrite(LED_PIN8,HIGH); // send 1
}
else{ // if bitwise and resolves to false
digitalWrite(LED_PIN8,LOW); // send 0
}
Serial.print(inByte1);
Serial.print(" OK");
}
//delay(inByte2 * bitDelay); //delay
//Serial.println("OK");
} // if(Serial
} //Loop

งานแก้ไข แยก อธิบายส่วนต่างๆของproject

Hardware 1.Arduino uno r3 2.bluetooth hc 06 3.1N4007 4.2N2222 5.relay 6.load INPUT 1.bluetooth hc 06 OUTPUT 1.relay 2.lo...