Tự học Arduino - Phần 2: Điều khiển đèn Led
azunite
2 nămBình luận: 0
Xin chào các bạn!

Hôm nay chúng ta sẽ tiếp tục phần 2 của loạt bài tự học Arduino. Ở phần 1 các bạn đã có thể chạy được chương trình đầu tiên và ở phần tiếp theo này chúng ta sẽ học cách điều khiển các thiết bị ngoại vi và ở đây ví dụ là một số đèn Led, đơn giản vì đèn Led sẽ phát sáng và rất dễ để chúng ta nhìn thấy kết quả.

1. Chuẩn bị:
Để có thể thực hành bài này các bạn chuẩn bị một số thứ như sau:
+ Arduino
+ Board Test hay còn gọi là BreadBoard: cái này để mình cắm thiết bị vào thay vì hàn lên mạch
+ 3 con đèn Led 5mm: Bạn có thể mua ngoài 3k 1 nắm

Quảng cáo


+ 3 con điện trở 100 Ohm hoặc hơn
+ Dây cắm đực đực

IMAG0032.jpg

Sau đây mời các bạn xem clip thành quả trước khi đọc tiếp nhé. Xem để hình dung được chúng ta sẽ làm gì và kết quả như thế nào, sau đó mình sẽ giải thích từng bước:



2. Sơ đồ cắm dây

Các bạn cắm dây theo hình nhé, lưu ý đèn LED có cực âm và dương, bạn phải cắm đúng cực nó mới sáng, nếu nó không sáng thì bạn có thể kiểm tra lại chân, rút ra cắm ngược lại xem sao. Thường thì chân cực âm nó sẽ ngắn hơn chân cực dương.

Dieu khien den LED_bb.png

Sau khi cắm xong các bạn sẽ được như hình. Ở đây mình cắm cực âm bên trái nên nhìn nó ngược với hình vẽ (nguyên nhân là do mình cắm trước khi vẽ, giờ lười cắm lại quá ^^), các bạn có thể cắm như mình hoặc cắm như hình vẽ đều được.

Quảng cáo



IMAG0035.jpg

3. Code

Code:
int redLed = 5;
int yellowLed = 6;
int greenLed = 7;
 
void setup() {
  pinMode(redLed, OUTPUT);
  pinMode(yellowLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
}

void loop() {
  digitalWrite(redLed, HIGH);
  delay(300);
  digitalWrite(yellowLed, HIGH);
  delay(300);
  digitalWrite(greenLed, HIGH);
  delay(300);
  digitalWrite(redLed, LOW);
  delay(300);
  digitalWrite(yellowLed, LOW);
  delay(300);
  digitalWrite(greenLed, LOW);
  delay(300);
  for (int i = 1; i< 10; i++){
    digitalWrite(redLed, HIGH);
    digitalWrite(yellowLed, HIGH);
    digitalWrite(greenLed, HIGH);
    delay(70);
    digitalWrite(redLed, LOW);
    digitalWrite(yellowLed, LOW);
    digitalWrite(greenLed, LOW);
     delay(70);
  }
}
Bây giờ hãy nạp vào Arduino để tận hưởng thành quả xem nào.
Ok, đã chạy thành công rồi phải không bạn, bây giờ mình sẽ giải thích code nhé:
Đầu tiên là khai báo 3 biến số nguyên
Code:
int redLed = 5;
int yellowLed = 6;
int greenLed = 7;
Arduino giao tiếp với các thiết bị thông qua các chân gọi là Pin. Các bạn nhìn ở sơ đồ cắm dây sẽ thấy các dây ở đây mình đang cắm vào các chân 5, 6, 7. Còn dây màu đen thì cắm vào chân GND, đây là chân cấp nguồn âm (-) nha các bạn, chỉ có tác dụng cấp nguồn. Như vậy ở đây mình khai báo các biến này là để xác định vị trí các Pin cho dễ thao tác.

Tiếp theo trong hàm setup() là hàm sẽ chạy một lần duy nhất khi bắt đầu cấp nguồn cho Arduino. Ở đây chúng ta có hàm pinMode(), hàm này có nhiệm vụ thiết lập các chân cắm sang chế độ OUTPUT tức là chân phát ra xung tín hiệu. Các chân này vừa có thể phát tín hiệu vừa có thể nhận tín hiệu luôn nên chúng ta cần phải thiết lập.

Quảng cáo


Tiếp theo trong hàm loop() là hàm sẽ chạy liên tục cho đến khi hết điện.
Ở đây chúng ta có hàm digitalWrite(), hàm này có tác dụng xuất tín hiệu digital ra các chân, tín hiệu digital tức là tín hiệu chỉ có yes hoặc no. Hàm có 2 tham số, tham số thứ 1 là chân xuất tín hiệu, tham số thứ 2 là xung sẽ xuất, tham số này sẽ có 2 giá trị HIGH là xung có, LOW là xung không. Cụ thể ở đây khi xuất tín hiệu HIGH thì Arduino sẽ xuất ra một hiệu điện thế 5V (bật), còn LOW thì sẽ xuất 0V (tắt).

Và hàm cuối cùng là hàm delay(a), hàm này có tác dụng dừng chương trình lại, tham số đưa vào được tính theo mili giây.

Vậy là bây giờ các bạn đã hiểu rõ các hàm và cách xuất tín hiệu để bật tắt một cái gì đó rồi. Thật đơn giản và thú vị phải không. Các bạn hãy đọc code, hiểu và sửa theo ý của mình để xem nó sẽ thay đổi như thế nào nhé.

Ở phần tiếp theo chúng ta sẽ học về nhận tín hiệu và mình sẽ hướng dẫn các bạn thực hiện một project nhỏ có thể áp dụng thực tiễn luôn. Đó là sẽ làm một bộ bật tắt thiết bị bằng remote tivi hoặc bất cứ remote gì. Các bạn hãy theo dõi nhé.








  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2022 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019