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

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

ARDUINO LCD PROJECT FOR MEASURING DISTANCE WITH ULTRASONIC SENSOR

#include <LiquidCrystal.h> //เปิดไฟล์ที่ชื่อ LiquidCrystal.h ใน library

LiquidCrystal LCD(10, 9, 5, 4, 3, 2);  //กำหนดขาให้ lcd

 

int trigPin=13; 

int echoPin=11; 

int myCounter=0;  

int servoControlPin=6; 

float pingTime;  //กำหนดเวลาสำหรับ ping เพื่อเดินทางจากเซนเซอร์ไปยังเป้าหมายและกลับ

float targetDistance; //ระยะทางไปยังเป้าหมายเป็นนิ้ว

float speedOfSound=776.5; //ความเร็วของเสียงเป็นไมล์ต่อชั่วโมงเมื่ออุณหภูมิอยู่ที่ 77 องศา

 

void setup() {

  

Serial.begin(9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

 

LCD.begin(16,2); //บอก Arduino ให้เริ่ม LCD 16 คอลัมน์ 2 แถว

LCD.setCursor(0,0);  //ตั้งค่าเคอร์เซอร์ LCD ไปที่มุมซ้ายบน, คอลัมน์ 0, แถว 0

LCD.print("Target Distance:");  //พิมพ์ข้อความในแถวแรกว่า Target Distance


}

 

void loop() {

  

  digitalWrite(trigPin, LOW); 

  delayMicroseconds(2000); //ปล่อยสัญญาณให้เรียบร้อย

  digitalWrite(trigPin, HIGH); 

  delayMicroseconds(15); //ความล่าช้าในสภาวะสูง

  digitalWrite(trigPin, LOW); 

  delayMicroseconds(10); //ความล่าช้าในสภาวะสูง

  

  pingTime = pulseIn(echoPin, HIGH);  

  pingTime=pingTime/1000000; //แปลง pingTime เป็นวินาทีโดยการหารด้วย 1000000 (microseconds ในหนึ่งวินาที)

  pingTime=pingTime/3600; //แปลง pingtime เพื่อ hourse โดยการหารด้วย 3600 (วินาทีในหนึ่งชั่วโมง)

  targetDistance= speedOfSound * pingTime;  //เป็นไมล์เพราะความเร็วของเสียงเป็นไมล์ต่อชั่วโมง

  targetDistance=targetDistance/2; //ping เดินทางไปยังเป้าหมายและกลับจากเป้าหมายดังนั้นคุณต้องหารด้วย 2 สำหรับระยะทางที่แท้จริง

  targetDistance= targetDistance*63360;    //แปลงไมล์เป็นนิ้วโดยการคูณด้วย 63360 (นิ้วต่อไมล์)

  

  LCD.setCursor(0,1);  //ตั้งเคอร์เซอร์ไปที่แถวแรกของแถวที่สอง

  LCD.print("                "); //สั่ง lcd แสดงผล "                "

  LCD.setCursor(0,1);   //ตั้งค่าเคอร์เซอร์อีกครั้งเป็นแถวแรกของแถวที่สอง

  LCD.print(targetDistance); //เเสดงผลคำว่า  targetDistance

  LCD.print(" inches");  //เเสดงผลคำว่า  inches

  delay(250);   

  

  }  


LCD Arduino

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

การใช้งาน Arduino รับค่า MQ-3 alcohol sensor

const int AOUTpin=0;
const int DOUTpin=8;
const int ledPin=13;
int limit; //กำหนดตัวแปลว่าง
int value; //กำหนดตัวแปลว่าง
void setup() {
Serial.begin(115200); //กำหนดอัตราการรับส่งข้อมูล 115200 บิต/วินาที
pinMode(DOUTpin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
value= analogRead(AOUTpin);
limit= digitalRead(DOUTpin);
Serial.print(“Alcohol value: “); //เเสดงผลคำว่า Alcohol value
Serial.println(value);
Serial.print(“Limit: “);
Serial.print(limit);
delay(100);  //หน่วงเวลา 0.1วินาที
if (limit == HIGH){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
}

Image result for การใช้งาน Arduino รับค่า MQ-3 alcohol sensor

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

DC Motor Control using Arduino


volatile int i=0;//กำหนดตัวแปร i

void setup()

{

                pinMode(3, OUTPUT);   

                pinMode(0, INPUT);

                pinMode(1, INPUT);

}


void loop()

{

                analogWrite(3, i);  // ค่า analogWrite ตั้งแต่ 0 ถึง 255
                if (digitalRead(0)==LOW)

                {

                                if (i<255) ถ้า pin0 ถูกกดและค่า duty ratio น้อยกว่า 255

                                {

                                                i++;// เพิ่ม i ทีละ1
                                                delay(30);

                                }

                }

                if (digitalRead(1)==LOW)

                {

                                if (i>0) //ถ้า pin1 ถูกกดและอัตราส่วนของ duty ratio จะมากกว่า 0
                                {

                                                i--;// ลบ i ทีละ1
                                                delay(30);

                                }

                }

}


Arduino DC Motor Control Circuit Diagram

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

Servo Motor Control using Arduino

volatile int i=0;//กำหนดตัวแปร i

#include <Servo.h>//สั่งเปิดไฟล์ที่ชื่อ Servo.h

Servo servo;//กำหนดการใช้ชื่อ servo
void setup()

{

                pinMode(3, OUTPUT); 

                pinMode(0, INPUT);

                pinMode(1, INPUT);

}



void loop()

{

                servo.write(i);//กำหนดค่า servo องศา ‘i’

             

                if (digitalRead(0)==LOW)

                {

                                if (i<180)//ถ้า ตัวแปร i น้อยกว่า180

                                {

                                                i++;//ให้ตัวแปร i เพิ่มทีละ1

                                                delay(30);

                                }

                }

                if (digitalRead(1)==LOW)

                {

                                if (i>0) //ถ้าตัวแปร i มากกว่า 0

                                {

                                                i--;//ให้ตัวแปร i ลบทีละ1

                                                delay(30);

                                }

                }

}


Arduino Uno Servo Motor Interfacing Circuit Diagram

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

LED Binary Clock Circuit using Arduino

#include <Wire.h> //เปิดไฟล์ที่ชื่อ Wire.h
#include "RTClib.h" //เปิดไฟล์ที่ชื่อ RTClib.h (เป็นไฟล์ที่เกี่ยวข้องกับโปรเเกรมไม่ใช่ใน Library)
#include <TimerOne.h> //เปิดไฟล์ที่ชื่อ TimerOne.h

RTC_DS1307 RTC;
int temp,inc,hours1,minut,add=11; //กำหนดตัวแปร temp,hours,minut ที่ตำแหน่ง11

#define d1 12 //กำหนดตัวแปร d1 ที่ขา 12
#define d2 11
#define d3 10
#define d4 9
#define d5 8
#define d6 7

#define r1 6
#define r2 5
#define r3 4
#define r4 3

int HOUR,MINUT,SECOND; //กำหนดตัวแปร HOUR,MINUT,SECOND

volatile int count=0; //กำหนดตัวแปร count

void Clear(int d) //เปิดฟังค์ชั่น Clear จากตัวแปร d
{
    digitalWrite(d1, HIGH);
    digitalWrite(d2, HIGH);
    digitalWrite(d3, HIGH);
    digitalWrite(d4, HIGH);
    digitalWrite(d5, HIGH);
    digitalWrite(d6, HIGH);
}

void callback() //เปิดฟังค์ชั่น callback
{
  digitalWrite(13, digitalRead(13) ^ 1);
  count++;
  if(count>=7)
  count=1;
  switch(count%7)
  {
    case 1:
    Clear(d1);
    temp=SECOND%10;
    show(temp);
    digitalWrite(d1, LOW);
    break;

    case 2:
    Clear(d2);
    temp=SECOND/10;
    show(temp);
    digitalWrite(d2, LOW);
    for(int i=0;i<10000;i++)
    {
    }
    break;
    
    case 3:
    Clear(d3);
    temp=MINUT%10;
    show(temp);
    digitalWrite(d3, LOW);
    for(int i=0;i<10000;i++)
    {
    }
    break;  

    case 4:
    Clear(d4);
    temp=MINUT/10;
    show(temp);
    digitalWrite(d4, LOW);
    for(int i=0;i<10000;i++)
    {
    }
    break;

    case 5:
    Clear(d5);
    temp=HOUR%10;
    show(temp);
    digitalWrite(d5, LOW);
    for(int i=0;i<10000;i++)
    {
    }
    break;  

    case 6:
    Clear(d6);
    temp=HOUR/10;
    show(temp);
    digitalWrite(d6, LOW);
    for(int i=0;i<10000;i++)
    {
    }
    break;    
  }
}

void show(int d)
{
    for(int i=0;i<1;i++)
    {
      digitalWrite(r4, !((temp>>0)&1));
      digitalWrite(r3, !((temp>>1)&1));
      digitalWrite(r2, !((temp>>2)&1));
      digitalWrite(r1, !((temp>>3)&1));
     // delay(1);
     for(int i=0;i<1000;i++);
    }
}

void setup()
{
 Wire.begin();
 Serial.begin(9600);
 RTC.begin();
 digitalWrite(next, HIGH);
 digitalWrite(set_mad, HIGH);
 digitalWrite(INC, HIGH);
 pinMode(14, OUTPUT);
 for(int i=2;i<=12;i++)
 {
  pinMode(i, OUTPUT);
  digitalWrite(i, HIGH);
 }
    
 if(!RTC.isrunning())
 {
 RTC.adjust(DateTime(__DATE__,__TIME__));
 }

 Timer1.initialize(1000);
 Timer1.attachInterrupt(callback); 
}
void loop()
{
 int temp=0,val=1,temp4;
 DateTime now = RTC.now();
 HOUR=now.hour();
 MINUT=now.minute();
 SECOND=now.second();

 Serial.print(HOUR);
 Serial.print(":");
 Serial.print(MINUT);
 Serial.print(":");
 Serial.println(SECOND);
 delay(200);
}

Binary Clock Circuit Diagram

ส่งงานครั้งที่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 การต่อวงจรสวิตช์ควบคุมด้วยแสง

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

Arduino - LED Bar Graph
const int analogPin = A0;
const int ledCount = 8;
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
void setup() {
   for (int thisLed = 0; thisLed < ledCount; thisLed++) { //กำหนด thisLed=0 ถ้า thisLed น้อยกว่า ledCount ให้เพิ่ม thisLed ทีละ 1
      pinMode(ledPins[thisLed], OUTPUT);
   }
}
void loop() {
   int sensorReading = analogRead(analogPin);
   int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); //กำหนดค่า sensorReading จาก 0,1023 เป็น 0,ledCount
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
      if (thisLed < ledLevel) {
         digitalWrite(ledPins[thisLed], HIGH);
      }else {
         digitalWrite(ledPins[thisLed], LOW);
      }
   }
Bar Breadboard

Mini Project

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