Bước đầu tiên trong quá trình làm quen với Arduino là sử dụng các chân điều khiển tín hiệu vào/ra thông dụng. Trong bài này ta sẽ đọc trạng thái tại một chân lối vào và gửi tín hiệu về máy tính trên bo UNO.
- Gắn dây theo sơ đồ:
Linh kiện: 01 công tắc + 01 điện trở giá trị 1KOhm (hoặc hơn)


- Chú ý: Bên dưới công tắc có 4 chân tạo thành 2 cặp chân. Đường gạch kẻ dọc bên dưới công tắc đánh dấu 2 phía của công tắc, khi nhấn công tắc thì chân công tắc ở 2 phía được nối với nhau.
- Để biết giá trị điện trở: sử dụng đồng hồ đo hoặc đọc giá trị theo mã màu.
Trạng thái ban đầu, công tắc chưa nhấn thì chân số 2 trên bo nối qua điện trở đi xuống đất. Trạng thái này thường được quy định là 0, mức thấp. Khi nhấn công tắc, chân số 2 được nối với mức điện áp 5V. Trạng thái này thường được quy định là 1, mức cao.
Phân tích chương trình
- Đầu tiên là cài đặt chân lối vào, trường hợp này là chân 2:
pinMode(2,INPUT);
Như trong bài trước, để tác động lên LED ta cài đặt chân gắn LED là lối ra. Vì mạch UNO có gắn sẵn LED ở chân 13:
pinMode(13, OUTPUT);
- Gọi hàm truyền thông, tín hiệu truyền qua cáp USB về máy tính. Tốc độ thông dụng là 9600:
Serial.begin(9600);
- Đặt biến để nhận trạng thái của chân (2) lối vào. Biến int là biến số nguyên
int sensorValue = digitalRead(2);
- Truyền trạng thái về máy tính:
Serial.println(sensorValue);
- Mở cửa sổ theo dõi trạng thái tín hiệu truyền về:

- Nếu chương trình báo lỗi cổng COM, vào Device Manager kiểm tra lại cổng. Ví dụ COM1 bị đổi sang COM4.

- Khi đó vào Tools –> chọn lại Port

- Thử nghiệm bật tắt LED trên bo bằng việc kết hợp sử dụng chân lối ra như bài đầu tiên.
/*
DigitalReadSerial
Đọc trạng thái chân 2, hiện kết quả trên máy tính
This example code is in the public domain.
*/
// chân 2 nối đến công tắc. Đặt tên biến:
int pushButton = 2;
// các hàm này chỉ chạy 1 lần sau khi cấp điện:
void setup() {
// khởi tạo tốc độ truyền 9600 bits per second:
Serial.begin(9600);
// gán chân 2 là lối vào:
pinMode(pushButton, INPUT);
}
// lặp lại liên tục:
void loop() {
// đọc giá trị chân:
int buttonState = digitalRead(pushButton);
// hiện trạng thái:
Serial.println(buttonState);
// chờ 1ms để hạn chế lỗi
delay(1);
}
