🍀ค่ายเปิดโลกปัญญาประดิษฐ์ ปีการศึกษา 2568
โรงเรียนพนมเบญจา อ.เขาพนม จ.กระบี่🤟
โรงเรียนพนมเบญจา อ.เขาพนม จ.กระบี่🤟
เอกสารประกอบการอบรม
Code Arduino -01-Analog to LCD
#include <Bonezegei_LCD1602_I2C.h>
Bonezegei_LCD1602_I2C lcd(0x27);
int a = 0;
void setup() {
pinMode (A0,INPUT);
lcd.begin();
Serial.begin(9600);
}
void loop() {
a = analogRead(A0);
String str ="val =";
str += a;
Serial.println(a);
lcd.clear();
lcd.setPosition(4, 0);
lcd.print("Kru-Santi");
lcd.setPosition(1, 1);
lcd.print(str.c_str());
delay(2000);
}
Code Arduino -02-Ultra Sonic
#include <Bonezegei_LCD1602_I2C.h>
#define TRIG 9
#define ECHO 10
Bonezegei_LCD1602_I2C lcd(0x27);
int a = 0;
void setup() {
pinMode (A0,INPUT);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
lcd.begin();
Serial.begin(9600);
}
void loop() {
long duration;
float distance_cm;
a = analogRead(A0);
Serial.println(a);
// String str ="val =";
// str += a;
// ส่งสัญญาณ Trigger
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// รับค่าระยะเวลา Echo
duration = pulseIn(ECHO, HIGH);
// คำนวณระยะ (หน่วย: cm)
distance_cm = duration * 0.0343 / 2;
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
String str ="Dis =";
str += distance_cm;
lcd.clear();
lcd.setPosition(4, 0);
lcd.print("Kru-Santi");
lcd.setPosition(1, 1);
lcd.print(str.c_str());
delay(500);
}
Code Arduino -03-Servo
#include <Servo.h>
#include <Bonezegei_LCD1602_I2C.h>
#define TRIG 9
#define ECHO 10
Bonezegei_LCD1602_I2C lcd(0x27);
int a = 0;
Servo myServo;
void setup() {
Serial.begin(9600);
pinMode (A0,INPUT);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
lcd.begin();
myServo.attach(4); // ต่อ servo ที่ขา 4
myServo.write(90); // ตั้งตำแหน่งเริ่มต้น
}
void loop() {
long duration;
float distance_cm;
a = analogRead(A0);
Serial.println(a);
// แปลงค่า VR ให้เป็นองศาที่ Servo ใช้ได้ (0–180)
int angle = map(a, 0, 1023, 0, 180);
// สั่ง Servo หมุนไปตามค่า VR
myServo.write(angle);
// String str ="val =";
// str += a;
// ส่งสัญญาณ Trigger
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// รับค่าระยะเวลา Echo
duration = pulseIn(ECHO, HIGH);
// คำนวณระยะ (หน่วย: cm)
distance_cm = duration * 0.0343 / 2;
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
String str ="Dis =";
str += distance_cm;
lcd.clear();
lcd.setPosition(4, 0);
lcd.print("Kru-Santi");
lcd.setPosition(1, 1);
lcd.print(str.c_str());
delay(500);
}
Code Arduino -03-Servo-2
//Servo-2
#include <Servo.h>
#include <Bonezegei_LCD1602_I2C.h>
#define TRIG 9
#define ECHO 10
Bonezegei_LCD1602_I2C lcd(0x27);
int a = 0;
Servo myServo;
void setup() {
Serial.begin(9600);
pinMode (A0,INPUT);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
lcd.begin();
myServo.attach(4); // ต่อ servo ที่ขา 4
myServo.write(0); // ตั้งตำแหน่งเริ่มต้น
}
void loop() {
long duration;
float distance_cm;
a = analogRead(A0);
Serial.println(a);
// แปลงค่า VR ให้เป็นองศาที่ Servo ใช้ได้ (0–180)
int angle = map(a, 0, 1023, 0, 180);
// สั่ง Servo หมุนไปตามค่า VR
// myServo.write(angle);
// String str ="val =";
// str += a;
// ส่งสัญญาณ Trigger
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// รับค่าระยะเวลา Echo
duration = pulseIn(ECHO, HIGH);
// คำนวณระยะ (หน่วย: cm)
distance_cm = duration * 0.0343 / 2;
if (distance_cm < 10 && distance_cm > 0) {
myServo.write(180); // หมุนไป 180°
delay(3000); // ค้าง 3 วินาที
return; // ออกจาก loop รอบนี้ ไม่อ่านค่า VR ต่อ
}
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
String str ="Dis =";
str += distance_cm;
lcd.clear();
lcd.setPosition(4, 0);
lcd.print("Kru-Santi");
lcd.setPosition(1, 1);
lcd.print(str.c_str());
myServo.write(0);
delay(500);
}