โค้ด FXCT

กระทู้สนทนา
//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); // หน่วงเวลาเพื่อรอให้ค่าความสว่างเปลี่ยนแปลง
}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่