/* 
Đèn led -> led -> pin 13
Điện trở -> resistor
Nút nhấn -> Button -> pin 8
THỰC HIỆN BÀI TẬP TRONG VÒNG 15 PHÚT BAO GỒM VIẾT CÂU LỆNH VÀ VẼ SƠ ĐỒ MẠCH ĐIỆN
*/
void setup() {
  // khai báo chân tín hiệu 
  pinMode(8, INPUT_PULLUP); 
  pinMode(13, OUTPUT);      
  digitalWrite(13, LOW);   

  Serial.begin(9600);      
}
void loop() {
  if (Serial.available()) {
    char data_rcvd = Serial.read();  
    if (data_rcvd == '1')
    {
    digitalWrite(13, HIGH); 
    delay(1000);
    } 
    if (data_rcvd == '0') 
    {
      digitalWrite(13, LOW); 
    }
  }
  if (digitalRead(8) == HIGH) 
  {
    Serial.write('0');
    digitalWrite(13, LOW);
      } 
  else 
  { 
    Serial.write('1');  
    digitalWrite(13, HIGH);
  }   
  delay(1000);            
}
/*
Giao tiếp Serial:
Chương trình lắng nghe các ký tự được nhận qua cổng serial phần cứng của Arduino (thường được kết nối với máy tính  qua cổng USB).
Nếu ký tự nhận được là '1', đèn LED sẽ bật sáng (HIGH).
Nếu ký tự nhận được là '0', đèn LED sẽ tắt (LOW).
Nhập trạng thái từ nút nhấn:
Chương trình đọc trạng thái của một nút nhấn được kết nối với chân 8 (có điện trở pull-up).
Nếu nút được nhấn (HIGH), chương trình sẽ gửi ký tự '0' qua cổng serial và tắt đèn LED.
Nếu nút không được nhấn (LOW), chương trình sẽ gửi ký tự '1' qua cổng serial và bật đèn LED.
void setup():
pinMode(8, INPUT_PULLUP);: Cấu hình chân 8 thành chân vào với điện trở pull-up. Điều này đảm bảo chân đọc HIGH khi không có gì được kết nối hoặc nút không được nhấn.
pinMode(13, OUTPUT);: Thiết lập chân 13 thành chân ra để điều khiển LED.
digitalWrite(13, LOW);: Khởi tạo LED tắt (LOW) khi khởi động.
Serial.begin(9600);: Bắt đầu giao tiếp serial trên cổng serial phần cứng với tốc độ baud là 9600 bit/giây. Tốc độ baud này thiết lập tốc độ truyền và nhận dữ liệu.
Kiểm tra Giao tiếp Serial:
if (Serial.available()) { ... }: Kiểm tra xem có dữ liệu nào sẵn sàng để đọc từ cổng serial không.
char data_rcvd = Serial.read();: Đọc byte (ký tự) tiếp theo có sẵn từ cổng serial và lưu trữ nó trong biến data_rcvd.
if (data_rcvd == '1') { ... }: Nếu ký tự nhận được là '1', bật LED (HIGH).
if (data_rcvd == '0') { ... }: Nếu ký tự nhận được là '0', tắt LED (LOW).



*/