วันอาทิตย์ที่ 25 มีนาคม พ.ศ. 2561
ส่งงานครั้งที่19
การใช้งาน Arduino รับค่า MQ-3 alcohol sensor
const int AOUTpin=0;
const int DOUTpin=8;
const int ledPin=13;
const int DOUTpin=8;
const int ledPin=13;
int limit; //กำหนดตัวแปลว่าง
int value; //กำหนดตัวแปลว่าง
int value; //กำหนดตัวแปลว่าง
void setup() {
Serial.begin(115200); //กำหนดอัตราการรับส่งข้อมูล 115200 บิต/วินาที
pinMode(DOUTpin, INPUT);
pinMode(ledPin, OUTPUT);
}
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);
}
}

{
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);
}
}
ส่งงานครั้งที่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);
}
}
}

ส่งงานครั้งที่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);
}
}
}
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);
}
}
}
ส่งงานครั้งที่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);
}

ส่งงานครั้งที่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
}
}

ส่งงารครั้งที่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);
}
}

ส่งงารครั้งที่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);
}

ส่งงานครั้งที่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;
}
}

ส่งงานครั้งที่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);
}

วันพุธที่ 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 วินาที
}

สมัครสมาชิก:
บทความ (Atom)
Mini Project
Control Lamp 220v With LDR const int lamp = 12; const int ldrPin=A0; #include <Wire.h> #include <LiquidCrystal_I2C.h...
-
Arduino ควบคุมหลอด LED RGB int RGBPin[] = { 9, 10, 11 }; //กำหนดตัวเเปรRGBPinที่ขา 9,10,11 void setup () { pinMode(RGBPin[0], OUTPU...
-
Arduino Switch ควบคุม LED int sw0=5; //กำหนดตัวแปร sw0 ที่ ขา 5 int sw1=6; //กำหนดตัวแปร sw1 ที่ ขา 6 int sw2=7; //กำหนดตัวแปร sw...