//LAB03-5 การประยุกต์ใช้คําสั่งSerial กับ Digital I/O
//1.เขียนโปรแกรมให้รับค่าจากคีย์บอร์ด
// คอมพิวเตอร์ โดย
// 1.เขียนโปรแกรมให้รับค่าจากคีย์บอร์ด
// คอมพิวเตอร์ โดย
// -รับค่าจากการกดตัวอักษร a ให้ LED1,LED3,LED5 ติด ที่เหลือดับ
// -รับค่าจากการกดตัวอักษร b ให้ LED2,LED4,LED6 ติด ที่เหลือดับ
// -รับค่าจากการกดตัวอักษร c ให้ LEDติด ทั้งหมด
// -รับค่าจากการกดตัวอักษร#define ledPin1 8
#define ledPin1 8
#define ledPin2 9
#define ledPin3 10
#define ledPin4 11
#define ledPin5 12
#define ledPin6 13
int keyboardInput = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
}
void loop() {
// reply only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
keyboardInput = Serial.read();
Serial.print("Input");
Serial.println(keyboardInput);
if (keyboardInput == 97) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin6, LOW);
}
if (keyboardInput == 98) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin5, LOW);
}
if (keyboardInput == 99) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
}
if (keyboardInput == 100) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
}
if (keyboardInput == 100) {
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin5, LOW);
}
}
}
//LAB03-6 การประยุกต์ใช้คําสั่ง Digital I/O
//1.เขียนโปรแกรมให้รับค่าจากการกดสวิตซ์ โดย
int T = 50;
int sw1 = 3;
int sw2 = 2;
int swMode;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(sw1, INPUT);
pinMode(sw2, INPUT);
Serial.begin(9600);
}
void loop() {
if (swMode = digitalRead(sw1) == 0) {
digitalWrite(8, 1);
delay(T);
digitalWrite(8, 0);
delay(T);
digitalWrite(9, 1);
delay(T);
digitalWrite(9, 0);
delay(T);
digitalWrite(10, 1);
delay(T);
digitalWrite(10, 0);
delay(T);
digitalWrite(11, 1);
delay(T);
digitalWrite(11, 0);
delay(T);
digitalWrite(12, 1);
delay(T);
digitalWrite(12, 0);
delay(T);
digitalWrite(13, 1);
delay(T);
digitalWrite(13, 0);
delay(T);
}
if (swMode = digitalRead(sw2) == 1) {
digitalWrite(13, 1);
delay(T);
digitalWrite(13, 0);
delay(T);
digitalWrite(12, 1);
delay(T);
digitalWrite(12, 0);
delay(T);
digitalWrite(11, 1);
delay(T);
digitalWrite(11, 0);
delay(T);
digitalWrite(10, 1);
delay(T);
digitalWrite(10, 0);
delay(T);
digitalWrite(9, 1);
delay(T);
digitalWrite(9, 0);
delay(T);
digitalWrite(8, 1);
delay(T);
digitalWrite(8, 0);
delay(T);
}
}
//LAB04-1 การประยุกต์ใช้คําสั่ง Analog I/O
//1.เขียนโปรแกรมให้ไฟLEDวิ่งจากซ้ายไปขวาซ์
//โดย
int sensorPin = A1;
int sensorValue = 0;
void setup() {
for (int i=8;i<=13;i++){
pinMode( i , OUTPUT);
}
Serial.begin(9600);
}
void loop() {
for (int i=8;i<=13;i++){
sensorValue = analogRead(sensorPin);
digitalWrite( i ,HIGH);
delay(sensorValue);
digitalWrite( i , LOW);
delay(sensorValue);
}
}
//LAB04-2 การประยุกต์ใช้คําสั่ง Analog I/O (PWM)
//1.เขียนโปรแกรมให้หรี่ไฟ LED จํานวน 2 หลอด
//โดย
int sensorPin = A1;
int Voltage ;
int Volto255 ;
void setup() {
pinMode( 10 , OUTPUT);
pinMode( 11 , OUTPUT);
pinMode( sensorPin , INPUT);
Serial.begin(9600);
}
void loop() {
Voltage = analogRead(sensorPin);
Voltage = map(Voltage, 0, 1023, 0, 255);
analogWrite(10,255-Voltage);
analogWrite(11,255-Voltage);
Serial.print(Voltage);
delay(10);
}
//LAB04-2 การประยุกต์ใช้คําสั่ง Analog I/O (PWM)
//1.เขียนโปรแกรมให้หรี่ไฟ LED จํานวน 2 หลอด
//โดย
int VR1 = A1; // กำหนดพินที่เชื่อมกับเซ็นเซอร์แบบอนาล็อก
int LED1 = 10; // กำหนดพินที่เชื่อมกับ LED1
int LED2 = 11; // กำหนดพินที่เชื่อมกับ LED2
int brightness; // ตัวแปรเก็บค่าความสว่าง
void setup() {
pinMode(LED1, OUTPUT); // กำหนด LED1 เป็น OUTPUT
pinMode(LED2, OUTPUT); // กำหนด LED2 เป็น OUTPUT
Serial.begin(9600); // เปิดการใช้งาน Serial Monitor
}
void loop() {
brightness = analogRead(VR1); // อ่านค่าความสว่างจากเซ็นเซอร์
brightness = map(brightness, 0, 1023, 0, 255); // แปลงค่าให้อยู่ในช่วง 0-255
analogWrite(LED1, brightness); // ปรับความสว่าง LED1 ตามค่าที่ได้
analogWrite(LED2, 255 - brightness); // ปรับความสว่าง LED2 ให้ตรงข้ามกับ LED1
delay(10); // หน่วงเวลาเพื่อรอให้ค่าความสว่างเปลี่ยนแปลง
}
โค้ด FXCT
//1.เขียนโปรแกรมให้รับค่าจากคีย์บอร์ด
// คอมพิวเตอร์ โดย
// 1.เขียนโปรแกรมให้รับค่าจากคีย์บอร์ด
// คอมพิวเตอร์ โดย
// -รับค่าจากการกดตัวอักษร a ให้ LED1,LED3,LED5 ติด ที่เหลือดับ
// -รับค่าจากการกดตัวอักษร b ให้ LED2,LED4,LED6 ติด ที่เหลือดับ
// -รับค่าจากการกดตัวอักษร c ให้ LEDติด ทั้งหมด
// -รับค่าจากการกดตัวอักษร#define ledPin1 8
#define ledPin1 8
#define ledPin2 9
#define ledPin3 10
#define ledPin4 11
#define ledPin5 12
#define ledPin6 13
int keyboardInput = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
}
void loop() {
// reply only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
keyboardInput = Serial.read();
Serial.print("Input");
Serial.println(keyboardInput);
if (keyboardInput == 97) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin6, LOW);
}
if (keyboardInput == 98) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin5, LOW);
}
if (keyboardInput == 99) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
}
if (keyboardInput == 100) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin5, HIGH);
}
if (keyboardInput == 100) {
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin5, LOW);
}
}
}
//LAB03-6 การประยุกต์ใช้คําสั่ง Digital I/O
//1.เขียนโปรแกรมให้รับค่าจากการกดสวิตซ์ โดย
int T = 50;
int sw1 = 3;
int sw2 = 2;
int swMode;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(sw1, INPUT);
pinMode(sw2, INPUT);
Serial.begin(9600);
}
void loop() {
if (swMode = digitalRead(sw1) == 0) {
digitalWrite(8, 1);
delay(T);
digitalWrite(8, 0);
delay(T);
digitalWrite(9, 1);
delay(T);
digitalWrite(9, 0);
delay(T);
digitalWrite(10, 1);
delay(T);
digitalWrite(10, 0);
delay(T);
digitalWrite(11, 1);
delay(T);
digitalWrite(11, 0);
delay(T);
digitalWrite(12, 1);
delay(T);
digitalWrite(12, 0);
delay(T);
digitalWrite(13, 1);
delay(T);
digitalWrite(13, 0);
delay(T);
}
if (swMode = digitalRead(sw2) == 1) {
digitalWrite(13, 1);
delay(T);
digitalWrite(13, 0);
delay(T);
digitalWrite(12, 1);
delay(T);
digitalWrite(12, 0);
delay(T);
digitalWrite(11, 1);
delay(T);
digitalWrite(11, 0);
delay(T);
digitalWrite(10, 1);
delay(T);
digitalWrite(10, 0);
delay(T);
digitalWrite(9, 1);
delay(T);
digitalWrite(9, 0);
delay(T);
digitalWrite(8, 1);
delay(T);
digitalWrite(8, 0);
delay(T);
}
}
//LAB04-1 การประยุกต์ใช้คําสั่ง Analog I/O
//1.เขียนโปรแกรมให้ไฟLEDวิ่งจากซ้ายไปขวาซ์
//โดย
int sensorPin = A1;
int sensorValue = 0;
void setup() {
for (int i=8;i<=13;i++){
pinMode( i , OUTPUT);
}
Serial.begin(9600);
}
void loop() {
for (int i=8;i<=13;i++){
sensorValue = analogRead(sensorPin);
digitalWrite( i ,HIGH);
delay(sensorValue);
digitalWrite( i , LOW);
delay(sensorValue);
}
}
//LAB04-2 การประยุกต์ใช้คําสั่ง Analog I/O (PWM)
//1.เขียนโปรแกรมให้หรี่ไฟ LED จํานวน 2 หลอด
//โดย
int sensorPin = A1;
int Voltage ;
int Volto255 ;
void setup() {
pinMode( 10 , OUTPUT);
pinMode( 11 , OUTPUT);
pinMode( sensorPin , INPUT);
Serial.begin(9600);
}
void loop() {
Voltage = analogRead(sensorPin);
Voltage = map(Voltage, 0, 1023, 0, 255);
analogWrite(10,255-Voltage);
analogWrite(11,255-Voltage);
Serial.print(Voltage);
delay(10);
}
//LAB04-2 การประยุกต์ใช้คําสั่ง Analog I/O (PWM)
//1.เขียนโปรแกรมให้หรี่ไฟ LED จํานวน 2 หลอด
//โดย
int VR1 = A1; // กำหนดพินที่เชื่อมกับเซ็นเซอร์แบบอนาล็อก
int LED1 = 10; // กำหนดพินที่เชื่อมกับ LED1
int LED2 = 11; // กำหนดพินที่เชื่อมกับ LED2
int brightness; // ตัวแปรเก็บค่าความสว่าง
void setup() {
pinMode(LED1, OUTPUT); // กำหนด LED1 เป็น OUTPUT
pinMode(LED2, OUTPUT); // กำหนด LED2 เป็น OUTPUT
Serial.begin(9600); // เปิดการใช้งาน Serial Monitor
}
void loop() {
brightness = analogRead(VR1); // อ่านค่าความสว่างจากเซ็นเซอร์
brightness = map(brightness, 0, 1023, 0, 255); // แปลงค่าให้อยู่ในช่วง 0-255
analogWrite(LED1, brightness); // ปรับความสว่าง LED1 ตามค่าที่ได้
analogWrite(LED2, 255 - brightness); // ปรับความสว่าง LED2 ให้ตรงข้ามกับ LED1
delay(10); // หน่วงเวลาเพื่อรอให้ค่าความสว่างเปลี่ยนแปลง
}