วันอาทิตย์ที่ 25 มีนาคม พ.ศ. 2561

ส่งงานครั้งที่15

Arduino Light Sensor Circuit using LDR


#define relay 10 //กำหนดตัวแปร relay ที่ขา 10
int LED = 9; // กำหนดตัวแปร LED ที่ขา 9
int LDR = A0; //กำหนดตัวแปร LDR ที่ขาอนาล็อก A0

void setup() 
{
Serial.begin(9600); //กำหนดอัตราการรับส่งข้อมูล 9600 บิต/วินาที
pinMode(LED, OUTPUT); //กำหนด LED เป็น OUTPUT
pinMode(relay, OUTPUT); //กำหนด relay เป็น OUTPUT
pinMode(LDR, INPUT);  //กำหนด LDR เป็น INPUT
}

void loop() {
int LDRValue = analogRead(LDR); //กำหนดตัวแปร LDRValue ให้อ่านค่าอนาล็อกจากตัวแปร LDR
Serial.print("sensor = "); //เเสดงผลคำว่า  sensor =
Serial.print(LDRValue); //เเสดงผลคำว่า LDRValue

if (LDRValue <=700)  //ถ้า LDRValue น้อยกว่าหรือเท่ากับ 700
{
digitalWrite(LED, HIGH); //ให้ส่งค่าไปที่ LED เป็น HIGH
digitalWrite(relay, HIGH); // ให้ส่งค่าไปที่ relay เป็น HIGH
Serial.println("It's Dark Outside; Lights status: ON"); //เเสดงผลคำว่า It's Dark Outside; Lights status: ON
}
else  // ถ้าไม่
{
digitalWrite(LED, LOW); //ให้ส่งค่าไปที่ LED เป็น LOW
digitalWrite(relay, LOW); //ให้ส่งค่าไปที่ relay เป็น LOW 
Serial.println("It's Bright Outside; Lights status: OFF"); //เเสดงผลคำว่า It's Bright Outside; Lights status: OFF
}
}
Arduino Light Sensor Circuit diagram using LDR and Relay

ส่งงารครั้งที่14

Clap Switch using Arduino


const int analogInPin = A0;  // กำหรดตัวแปร analogInPin ที่ขา A0
int sensorValue = 0;   

void setup() 
{
 DDRD = 0xFF;  //ชี้ตำเเหน่งของ DDRD ที่ตำเเหน่ง 0xFF
}

void loop() 
{
 sensorValue = analogRead(analogInPin);    
 if(sensorValue>60)
 {
  PORTD ^=(1<<7); //หากมีการสลับระหว่าง LED บนและปิดบน pin7
  delay(250);
  }
}


Clap Switch using Arduino Circuit Diagram

ส่งงารครั้งที่13

Interfacing Joystick with Arduino


#define joyX A0 //กำหนดตัวแปร joyX ที่ขา อนาล็อก  A0
#define joyY A1

int button=2; //กำหนดตัวแปร button ที่ขา 2
int buttonState = 0; //กำหนดตวแปรว่าง
int buttonState1 = 0; //กำหนดตวแปรว่าง

void setup() {
  pinMode(7,OUTPUT); //กำหนดขา 7 เป็น OUTPUT 
  pinMode(button,INPUT);  // กำหนดตัวแปร  button เป็น INPUT
  digitalWrite(button, HIGH); //ให้ส่งค่าที่ตัวแปร button เป็ร HIGH
  Serial.begin(9600); //กำหนดอัตราการรับส่งข้อมูล 9600 บิต/วินาที
}
void loop() {
 int xValue = analogRead(joyX); //กำหนดตัวแปร xValue ให้อ่านค่าอนาล็อกจาก joyX
 int yValue = analogRead(joyY);
  Serial.print(xValue); //เเสดงผลคำว่า xValue
  Serial.print("\t"); 
  Serial.println(yValue); //เเสดงผลคำว่า yValue
  
  buttonState = digitalRead(button);
  Serial.println(buttonState);
  if (xValue>=0 && yValue<=10)  // ถ้าxValue มากกว่าหรือเท่ากับ 0 เเละ yValue น้อยกว่าหรือเท่ากับ 10
  {
    digitalWrite(10, HIGH);
  }
  else{digitalWrite(10, LOW);}

  if (xValue<=10 && yValue>=500)
  {
    digitalWrite(11, HIGH);
  }
  else{digitalWrite(11, LOW);}

  if (xValue>=1020 && yValue>=500)
  {
    digitalWrite(9, HIGH);
  }
  else{digitalWrite(9, LOW);}

  if (xValue>=500 && yValue>=1020)
  {
    digitalWrite(8, HIGH);
  }
  else{digitalWrite(8, LOW);}

  if (xValue>=1020 && yValue>=1020)
  {
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
  }

  if (buttonState == LOW)
  {
    Serial.println("Switch = High");
    digitalWrite(7, HIGH);
  }
  else{digitalWrite(7, LOW);}
  buttonState1 = digitalRead(7);
  Serial.println(buttonState1);
  delay(50);
}

Interfacing Circuit diagram of Joystick with Arduino

ส่งงานครั้งที่12

Door Alarm using Arduino and Ultrasonic Sensor


#include <NewPing.h> // สั่งเปิด library NewPing.h
#define TRIGGER_PIN  12  
#define ECHO_PIN     11  .
#define MAX_DISTANCE 500 // กำหนดค่าสูงสุด 500

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // กำหนดค่า TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE โดยตัวแปร NewPing

unsigned int pingSpeed = 50; // ให้ pingSpeed เเสดงค่าเท่ากับ 50
unsigned long pingTimer;
int flag = 0; // กำหนดใชช้ ping ต่อไป

void setup() {
  Serial.begin(115200); // กำหนดอัตราการรับส่งข้อมูล 115200 บิต/วินาที
  pingTimer = millis();
  pinMode(10, OUTPUT); 

}

void loop() {
  if (millis() >= pingTimer) {   // ถ้ามิลลิวินาทีมากกว่าหรือเท่ากับ pingTimer
    pingTimer += pingSpeed;      //ให้ไปที่ pingต่อไป
    sonar.ping_timer(echoCheck); // ส่ง Ping ให้เรียกฟังก์ชัน "echoCheck" ทุกๆ 24uS ซึ่งคุณสามารถตรวจสอบสถานะ ping ได้
  }
  if (flag == 1)
  {
    digitalWrite(10, HIGH);

    delay(500);
    digitalWrite(10, LOW);

    delay(500);
    digitalWrite(10, HIGH);

    delay(500);
    digitalWrite(10, LOW);

    delay(500);
  }
  else
  {
    digitalWrite(10, LOW);
  }
}

void echoCheck() { 
  if (sonar.check_timer()) { // เชคว่าได้รับ ping หรือไม่
    Serial.print("Ping: "); 
    Serial.print(sonar.ping_result / US_ROUNDTRIP_CM); // Ping ส่งคืนผลลัพธ์ uS ใน ping_result แปลงเป็น cm โดยใช้ US_ROUNDTRIP_CM
    Serial.println("cm");
    if ((sonar.ping_result / US_ROUNDTRIP_CM) < 50) //ถ้า sonar.ping_result / US_ROUNDTRIP_CM มีค่าน้อยกว่า 50
      flag = 1;
    else if ((sonar.ping_result / US_ROUNDTRIP_CM) > 50) //ถ้าsonar.ping_result / US_ROUNDTRIP_CM มีค่ามากกว่า 50
      flag = 0;
  }
}



Arduino Burglar Alarm Circuit Diagram using Ultrasonic Sensor

ส่งงานครั้งที่11

DIY Smart Vacuum Cleaning Robot using Arduino

void setup()
{
Serial.begin(9600); //กำหนดการรับส่งข้อมูล 9600 บิต/วินที
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}

void loop()
{
delay(1000);
Serial.print("forward"); //ให้เเสดงผลคำว่า  forward
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(500);
Serial.print("backward"); //ให้เเสดงผลคำว่า backward
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
}

Arduino-vacuum-cleaner-robot-using-IR-and-ultrasonic-sensor

วันพุธที่ 14 มีนาคม พ.ศ. 2561

ส่งงานครั้งที่ 10

การเชื่อมต่อแบบอนุกรม (LCD I2C)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 in PCF8574 by NXP and Set to 0x3F in PCF8574A by Ti
LiquidCrystal_I2C lcd(0x3F, 16, 2); // จอกว้าง 16 ตัวอักษร 2 บรรทัด รหัสประจำตัว 0x3F

void setup() {
  lcd.begin();
  lcd.print("LCDisplay"); // แสดงผลคำว่า Hello, world! ออกหน้าจอ
  lcd.setCursor(0, 1); // เลื่อนเคเซอร์ไปบรรทัดที่ 2 ลำดับที่ 0 (ก่อนหน้าตัวอักษรแรก)
  lcd.print("www.ioxhop.com"); // แสดงผลคำว่า www.ioxhop.com
  delay(3000); // หน่วงเวลา 3 วินาที
  lcd.clear(); // ล้างหน้าจอ
}

void loop() {
  lcd.setCursor(3, 0);
  lcd.print("InFunction ");
  lcd.setCursor(2, 1);
  lcd.print("void loop(){ ");
  delay(500); // หน่วงเวลา 0.5 วินาที
  lcd.clear(); // ล้างหน้าจอ
  delay(500); // หน่วงเวลา 0.5 วินาที
}

ส่งงานครั้งที่ 9

การใช้งาน Character LCD กับ Arduino การเชื่อมต่อแบบขนาน


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

void setup() {
  lcd.begin(16, 2); // จอกว้าง 16 ตัวอักษร 2 บรรทัด
  lcd.print("LCDisplay"); // แสดงผลคำว่า Hello, world! ออกหน้าจอ
  lcd.setCursor(0, 1); // เลื่อนเคเซอร์ไปบรรทัดที่ 2 ลำดับที่ 0 (ก่อนหน้าตัวอักษรแรก)
  lcd.print("www.ioxhop.com"); // แสดงผลคำว่า www.ioxhop.com
  delay(3000); // หน่วงเวลา 3 วินาที
  lcd.clear(); // ล้างหน้าจอ
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print(" InFunction ");
  lcd.setCursor(0, 1);
  lcd.print(" void loop(){ ");
  delay(500); // หน่วงเวลา 0.5 วินาที
  lcd.clear(); // ล้างหน้าจอ
  delay(500); // หน่วงเวลา 0.5 วินาที
}

ส่งงานครั้งที่ 8

Code โปรเจค Arduino เปิด ปิดไฟด้วยเสียง


int sound_sensor = 4;
int relay = 5;

int clap = 0; //กำหนดตัวแปรว่าง
long detection_range_start = 0; // กำหนดตัวแปร detection_range_start ให้มีค่า = 0
long detection_range = 0;
boolean status_lights = false; // กำหนดตัวแปร status_lights มีค่าเป็น false หรือ 0

void setup() {
  pinMode(sound_sensor, INPUT);
  pinMode(relay, OUTPUT);
}

void loop() {
  int status_sensor = digitalRead(sound_sensor); //กำหนดตัวแปร status_sensor อ่านค่าดิจิตอลจาก sound_sensor
  if (status_sensor == 0)
  {
    if (clap == 0)
    {
      detection_range_start = detection_range = millis();  //  detection_range_start เท่ากับ  detection_range
      clap++; //เพิ่ม clap ทีละ 1
    }
    else if (clap > 0 && millis()-detection_range >= 50) // ต้องมากกว่าหรือเท่ากับ 500
    {
      detection_range = millis();
      clap++;
    }
  }
  if (millis()-detection_range_start >= 400) // detection_range_start  ต้องมากกว่าหรือเท่ากับ 400
  {
    if (clap == 2)
    {
      if (!status_lights)
        {
          status_lights = true;
          digitalWrite(relay, HIGH);
        }
        else if (status_lights)
        {
          status_lights = false;
          digitalWrite(relay, LOW);
        }
    }
    clap = 0;
  }
}

ส่งงานครั้งที่ 7


code โปรเจครถบังคับ 2WD Arduino

#include <SoftwareSerial.h> //โหลด library file ที่ชื่อ oftwareSerial.h
SoftwareSerial BTSerial(9, 10); //กำหนด 9,10 เป็นSoftwareSerial BTSerial
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6;
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 7;
void setup()
{  
  Serial.begin(9600);
  pinMode(dir1PinA,OUTPUT);
  pinMode(dir2PinA,OUTPUT);
  pinMode(speedPinA,OUTPUT);
  pinMode(dir1PinB,OUTPUT);
  pinMode(dir2PinB,OUTPUT);
  pinMode(speedPinB,OUTPUT);
  pinMode(8,OUTPUT);
  digitalWrite(8, HIGH);
  Serial.begin(9600);
  BTSerial.begin(9600); //กำหนดอัตราการรับส่งข้อมูลของBTSerial เท่ากับ 9600บิตต่อวินาที
}
void loop()
{ 
  if (BTSerial.available()) 
    Serial.write(BTSerial.read()); //ส่งค่าตัวแปรBTSerial.readออกทางพอร์ทอนุกรม
  if (Serial.available())
    BTSerial.write(Serial.read());
  if (BTSerial.available() > 0) {
    int inByte = BTSerial.read();
    int speed;
    switch (inByte) {  //กำหนดตัวเเปรสวิตเเทนฟังชั่นการทำงาน
    case 'F': //เปิดฟังชั่นการทำงาน สวิต F
      analogWrite(speedPinA, 500);
      analogWrite(speedPinB, 500);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinA, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 1 Forward");
      Serial.println("Motor 2 Forward");
      Serial.println("   ");
      break;  //สั่งหยุด
    case 'S':
      analogWrite(speedPinA, 0);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Stop");
      analogWrite(speedPinB, 0);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Stop");
      Serial.println("   ");
      break;
    case 'B':
      analogWrite(speedPinA, 500);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back");
      analogWrite(speedPinB, 500);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back");
      Serial.println("   ");
      break;
    case 'L':
      analogWrite(speedPinA, 0);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Left");
      analogWrite(speedPinB, 500);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Left");
      Serial.println("   ");
      break;
    case 'R':
      analogWrite(speedPinA, 500);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Right");
      analogWrite(speedPinB, 0);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Right");
      Serial.println("   ");
      break;
    case 'I':
      analogWrite(speedPinA, 150);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Forward L");
      analogWrite(speedPinB, 500);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Forward L");
      Serial.println("   ");
      break;
    case 'G':
      analogWrite(speedPinA, 500);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Forward R");
      analogWrite(speedPinB, 150);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Forward R");
      Serial.println("   ");

      break;
    case 'J':
      analogWrite(speedPinA, 200);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back L");
      analogWrite(speedPinB, 500);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back L");
      Serial.println("   ");
      break;
    case 'H':
      analogWrite(speedPinA, 500);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back R");
      analogWrite(speedPinB, 200);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back R");
      Serial.println("   ");
      break;
    default: //กลับไปเชคใหม่ 
      for (int thisPin = 2; thisPin < 11; thisPin++)
      {
        digitalWrite(thisPin, LOW);
      }
    }
  }
}

ส่งงานครั้งที่ 6

Arduino Relay Control



const int buttonPin = 12;
const int transistorPin = 7;

int buttonState = 0;

void setup()
{

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

}

void loop()
{

 buttonState = digitalRead(buttonPin);

 if (buttonState == LOW)
  {

   digitalWrite (transistorPin, HIGH);
 
  }

 else
  {
 
   digitalWrite (transistorPin, LOW);

  }

}
ผลการค้นหารูปภาพสำหรับ code arduino control 12v relay

ส่งงานครั้งที่ 5

การต่อวงจรสวิตช์ควบคุมด้วยแสง


const byte Vin = 3; //รับค่าแรงดัน Vout จากวงจรสวิตซ์ควบคุมด้วยแสงที่pin 3 const byte Vout = 5; //ปล่อยแรงดันให้วงจรLEDหรือPeizo buzzerที่pin 5 int t0 = 0; //ตัวแปรเก็บค่าเวลาช่วงที่ไม่มีวัตถุกั้นในสวิตซ์ควบคุมด้วยแสง int t = 0; //ตัวแปรเก็บค่าเวลาช่วงที่มีวัตถุกั้น boolean count = false; //ตัวแปรกำหนดสถานะว่ามีวัตถุกั้นแล้ว void setup() { pinMode(Vin, INPUT); //กำหนดpin 3 เป็นอินพุต pinMode(Vout, OUTPUT); //กำหนดpin 5 เป็นเอาต์พุต Serial.begin( 9600 ); // open serial port } void loop() { if(digitalRead(Vin)==HIGH){ //เมื่อมีวัตถุกั้นจะอ่านได้ค่า HIGH digitalWrite(Vout,HIGH); //เมื่อมีวัตถุกั้นจะทำให้LEDติดหรือBuzzerดัง t = millis(); //เก็บค่าเวลาตอนที่วัตถุกั้นอยู่ count = true; //เปลี่ยนค่าสถานะเป็น มีวัตถุกั้นอยู่แล้ว }else{ //เมื่อไม่มีวัตถุกั้น digitalWrite(Vout,LOW); //LEDดับหรือBuzzerไม่ดัง if(count){ //หากมีวัตถุกั้นอยู่แล้วแล้วเอาออกจะแสดงค่าเวลา int time = t-t0; //นำเวลาตอนที่มีวัตถุกั้นแล้วลบด้วยเวลาตอนที่ยังไม่ใส่วัตถุกั้น Serial.print("time = "); Serial.println(time); //แสดงเวลาหน่วยมิลลิวินาที count = false; //เปลี่ยนสถานะกลับไปเป็นยังไม่มีวัตถุกั้น } t0 = millis(); //เก็บค่าเวลาตอนที่ยังไม่มีวัตถุกั้น } }
ผลการค้นหารูปภาพสำหรับ arduino การต่อวงจรสวิตช์ควบคุมด้วยแสง

Mini Project

 Control Lamp 220v  With LDR const int lamp = 12; const int ldrPin=A0; #include <Wire.h> #include <LiquidCrystal_I2C.h...