📣ความรู้ไปประยุกต์ใช้อุปกรณ์อิเล็กทรอนิกส์เพื่อสร้างสรรค์เป็นโครงงานตามที่โจทย์กำหนดได้ คำสั่งเขียน
#include <Servo.h>Servo servo_4; //ตั้งชื่อ servoconst int trigPin = 9;//กำหนด pin ที่ต้องการใช้งานคือ pin 9const int echoPin = 10;//กำหนด pin ที่ต้องการใช้งานคือ pin 10int ledPin = 6;//กำหนด led ขาที่6int analogPin = 5;//ประกาศตัวแปรให้ analogPin แทนขา analog ขาที่ 5int val = 0;//กำหนดค่าแสงให้เริ่มต้นที่ 0 long duration; //ตัวแปรชนิด long(ตัวแปรที่ใช้เก็บตัวเลขจำนวนเต็มที่มีความยาว)ตัวแปรชื่อ durationint distance;//ตัวแปรชนิด int(ตัวแปรใช้เก็บตัวเลขvoid setup() { servo_4.attach(4); //servo_4 เสียบ pin 4 อยู่ pinMode(trigPin, OUTPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Output pinMode(echoPin, INPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Input Serial.begin(9600);//ตั้งความเร็วสื่อสารที่ 9600 และสั่งให้เริ่มทำงาน pinMode(ledPin, OUTPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Output Serial.begin(9600);//ตั้งความเร็วสื่อสารที่ 9600 และสั่งให้เริ่มทำงาน}void loop() { digitalWrite(trigPin, LOW);//กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1 delayMicroseconds(2); //หน่วงเวลา 2 us digitalWrite(trigPin, HIGH); //กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1 delayMicroseconds(10);//หน่วงเวลา 10 us digitalWrite(trigPin, LOW);//กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1 duration = pulseIn(echoPin, HIGH); //รอ echoPin ให้ไฟเข้า distance = duration * 0.034 / 2; //คำนวณระยะทางโดยใช้สูตร Serial.print("distance: "); //ให้แสดงdistanceบนหน้าจอ Serial.println(distance); //ให้แสดงระยะทางบนหน้าจอ delay(500); //หน่วงเวลา 0.5 วินาที if(distance<=150)//ถ้าระยะทางน้อยกว่าหรือเท่ากับ 150 { servo_4.write(90);//servo หมุน 90 องศา delay(500); //หน่วงเวลา 0.5 วินาที servo_4.write(180);//servo หมุน 180 องศา delay(500); //หน่วงเวลา 0.5 วินาที servo_4.write(90);//servo หมุน 90 องศา delay(500); //หน่วงเวลา 0.5 วินาที } else { servo_4.write(0); //servo หมุน 0 องศา delay(500); //หน่วงเวลา 0.5 วินาที } val = analogRead(analogPin);//อ่านค่าสัญญาณที่ analog ขาที่ 5 ที่ต่อกับ LDR Serial.print("val =");//พิมพ์ข้อความส่งเข้าคอมพิวเตอร์"val =" Serial.println(val);//พิมพ์ค่าของตัวแปรval =" if(val<=400){//ค่า 400 น้อยกว่าหรือเท่ากับ 400 สามารถกำหนดปรับได้ตามค่าแสงในห้องต่างๆ digitalWrite(ledPin, HIGH);//สั่งให้ LED ติดสว่าง } else { digitalWrite(ledPin, LOW);//สั่งให้ LED ดับ }}
#include <Servo.h>
Servo servo_4; //ตั้งชื่อ servo
const int trigPin = 9;//กำหนด pin ที่ต้องการใช้งานคือ pin 9
const int echoPin = 10;//กำหนด pin ที่ต้องการใช้งานคือ pin 10
int ledPin = 6;//กำหนด led ขาที่6
int analogPin = 5;//ประกาศตัวแปรให้ analogPin แทนขา analog ขาที่ 5
int val = 0;//กำหนดค่าแสงให้เริ่มต้นที่ 0
long duration; //ตัวแปรชนิด long(ตัวแปรที่ใช้เก็บตัวเลขจำนวนเต็มที่มีความยาว)ตัวแปรชื่อ duration
int distance;//ตัวแปรชนิด int(ตัวแปรใช้เก็บตัวเลข
void setup() {
servo_4.attach(4); //servo_4 เสียบ pin 4 อยู่
pinMode(trigPin, OUTPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Output
pinMode(echoPin, INPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Input
Serial.begin(9600);//ตั้งความเร็วสื่อสารที่ 9600 และสั่งให้เริ่มทำงาน
pinMode(ledPin, OUTPUT); //กำหนดให้ pin ที่ต้องการใช้งาน ทำงานเป็น Output
Serial.begin(9600);//ตั้งความเร็วสื่อสารที่ 9600 และสั่งให้เริ่มทำงาน
}
void loop() {
digitalWrite(trigPin, LOW);//กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1
delayMicroseconds(2); //หน่วงเวลา 2 us
digitalWrite(trigPin, HIGH); //กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1
delayMicroseconds(10);//หน่วงเวลา 10 us
digitalWrite(trigPin, LOW);//กำหนดให้ pin ที่ต้องการใช้งาน มีสถานะลิจิกเป็น 1
duration = pulseIn(echoPin, HIGH); //รอ echoPin ให้ไฟเข้า
distance = duration * 0.034 / 2; //คำนวณระยะทางโดยใช้สูตร
Serial.print("distance: "); //ให้แสดงdistanceบนหน้าจอ
Serial.println(distance); //ให้แสดงระยะทางบนหน้าจอ
delay(500); //หน่วงเวลา 0.5 วินาที
if(distance<=150)//ถ้าระยะทางน้อยกว่าหรือเท่ากับ 150
{
servo_4.write(90);//servo หมุน 90 องศา
delay(500); //หน่วงเวลา 0.5 วินาที
servo_4.write(180);//servo หมุน 180 องศา
delay(500); //หน่วงเวลา 0.5 วินาที
servo_4.write(90);//servo หมุน 90 องศา
delay(500); //หน่วงเวลา 0.5 วินาที
}
else
{
servo_4.write(0); //servo หมุน 0 องศา
delay(500); //หน่วงเวลา 0.5 วินาที
}
val = analogRead(analogPin);//อ่านค่าสัญญาณที่ analog ขาที่ 5 ที่ต่อกับ LDR
Serial.print("val =");//พิมพ์ข้อความส่งเข้าคอมพิวเตอร์"val ="
Serial.println(val);//พิมพ์ค่าของตัวแปรval ="
if(val<=400){//ค่า 400 น้อยกว่าหรือเท่ากับ 400 สามารถกำหนดปรับได้ตามค่าแสงในห้องต่างๆ
digitalWrite(ledPin, HIGH);//สั่งให้ LED ติดสว่าง
}
else {
digitalWrite(ledPin, LOW);//สั่งให้ LED ดับ
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น
ครูเต้ง เทคโนฯ