วันอาทิตย์ที่ 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 วินาที
}
ส่งงานครั้งที่ 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 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);
}
}
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);
}
}
ส่งงานครั้งที่ 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(); //เก็บค่าเวลาตอนที่ยังไม่มีวัตถุกั้น
}
}
ส่งงานครั้งที่ 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);
}
}
}
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);
}
}
}
สมัครสมาชิก:
บทความ (Atom)
Mini Project
Control Lamp 220v With LDR const int lamp = 12; const int ldrPin=A0; #include <Wire.h> #include <LiquidCrystal_I2C.h...
-
การเชื่อมต่อแบบอนุกรม (LCD I2C) # include <Wire.h> # include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 in PCF...
-
Door Alarm using Arduino and Ultrasonic Sensor #include <NewPing.h> // สั่งเปิด library NewPing.h #define TRIGGER_PIN 12 ...