Công nghệ chế tạo
  • Thiết kế
    • Phác thảo-Concept
    • Nguyên lý máy
    • Mô hình 3D
  • Gia công
    • Công nghệ Hàn
    • Dụng cụ
    • Chế biến thực phẩm
    • Đo lường
    • CNC
    • Nguội
  • Quy chuẩn
    • An toàn
    • Bảo dưỡng
    • Tiêu chuẩn
    • Vẽ kỹ thuật
  • Thiết bị
    • Máy bơm
    • Xây dựng
  • Cơ điện tử
    • Kỹ thuật điện
    • Động cơ
    • Robot
  • Phần mềm
    • Autocad
    • Solidworks
    • Inventor
    • Catia
    • Mastercam
  • Vật liệu
  • Hợp tác
    • Nghề Nghiệp
    • Tài liệu
No Result
View All Result
  • Thiết kế
    • Phác thảo-Concept
    • Nguyên lý máy
    • Mô hình 3D
  • Gia công
    • Công nghệ Hàn
    • Dụng cụ
    • Chế biến thực phẩm
    • Đo lường
    • CNC
    • Nguội
  • Quy chuẩn
    • An toàn
    • Bảo dưỡng
    • Tiêu chuẩn
    • Vẽ kỹ thuật
  • Thiết bị
    • Máy bơm
    • Xây dựng
  • Cơ điện tử
    • Kỹ thuật điện
    • Động cơ
    • Robot
  • Phần mềm
    • Autocad
    • Solidworks
    • Inventor
    • Catia
    • Mastercam
  • Vật liệu
  • Hợp tác
    • Nghề Nghiệp
    • Tài liệu
No Result
View All Result
Công nghệ chế tạo
No Result
View All Result
Home Cơ điện tử Kỹ thuật điện

Arduino cơ bản_Bài 2: Led nhấp nháy. Đèn sáng khi nhấn phím. Led sáng dần từ led 1 đến led 10 và ngược lại

July 14, 2019
in Kỹ thuật điện
0
0
SHARES
5.2k
VIEWS
Share on FacebookShare on Twitter

arduino50

Giao tiếp Arduino với một số linh kiện điện tử.

1) Project 1: Led nhấp nháy.

Sau đây tôi sẽ tạo một project nhấp nháy led thời gian delay là 1 giây sử dụng proteus để mô phỏng.

 Sơ đồ mạch:

arduino40

 Code chương trình.

arduino41

Sau khi gõ code vào chương trình soạn thảo bạn cần click và  arduino42để kiểm tra lổi.

Tạo File Hex.

Chúng ta cần phải có file Hex để cung cấp cho proteus và khi bấm play chương trình mới hoạt động được. Cách tạo file Hex trên Arduino IDE như sau:

Click vào File chọn Preferences.

arduino43arduino44

Chương trình sẽ tự động built một file hex được lưu ở đường dẫn như hình dưới

arduino45
Hình 20: Đường dẫn chứa file hex.

Các bạn chép file hex ra một thư mục nào đó sau đó mở proteus lên và double click vào Aruino Uno.
Hình 21: Add file Hex cho Proteus.

arduino46
 Giải thích chương trình.

arduino44 arduino47

Trong Arduino sketch cần phải có hàm setup() và loop() nếu không có thì chương trình báo lỗi. Hàm Setup() chỉ chạy một lần kể từ khi bắt đầu chương trình. Hàm này có chức năng thiết lập chế độ vào, ra cho các chân digital hay tốc độ baud cho giao tiếp Serial…

Cấu trúc của hàm pinMode() là như sau:

pinMode(pin,Mode); pin : là vị trí chân digital.

Mode: là chế độ vào ( INPUT), ra (OUTPUT).

Lệnh tiếp theo.

pinMode(ledPin, OUTPUT);

Lệnh này thiết lập chân số 9 trên board là chân ngõ ra (OUTPUT). Nếu không khai báo “ int ledPin = 9; ” thì bạn có thể viết cách sau nhưng ý nghĩa không thay đổi:

pinMode(9, OUTPUT);

Bắt buộc khai báo một hàm loop() trong Arduino IDE. Hàm này là vòng lặp vô hạn
void loop() {

digitalWrite(ledPin, HIGH);

delay(1000);

digitalWrite(ledPin, LOW);

delay(1000);
}

Tiếp theo ta sẽ phân tích hàm digitalWrite( ledPin, HIGH); lệnh này có ý nghĩa là xuất ra chân digital có tên là ledPin ( chân 9) mức cao ( HIGH), mức cao tướng ứng là 5 volt.

delay(1000);

Lệnh này tạo một khoảng trễ với thời gian là 1 giây. Trong hàm delay() của IDE thì 1000 tương ứng với 1 giây.

digitalWrite(ledPin, LOW);

Cũng giống như digitalWrite( ledPin, HIGH); lệnh này xuất ra chân ledPin mức thấp (LOW) tức là 0 volt.

Và tiếp tục là một hàm delay().

Như vậy chúng ta có thể thấy chương trình sẽ thực hiện tắt sáng led liên tục không ngừng trừ khi ta ngắt nguồn.

2) Project 2 : Đèn sáng khi nhấn phím.

 Sơ đồ mạch:

arduino48

 Code chương trình :

const int buttonPin = 2;

const int ledPin = 13;

int buttonState = LOW;

void setup() {

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);       }

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

digitalWrite(ledPin, HIGH);      }

else {

digitalWrite(ledPin, LOW);

}}

 Giải thích chương trình :

Trước tiên ta khai báo hai biến để lưu trữ vị trí chân của phím nhấn và led :

const int buttonPin = 2;

const int ledPin = 13;

Phím nhấn sẽ ở vị trí chân số 2 và led chân số 13.

Ta khai báo một biến trang thái của phím nhấn là int buttonState = LOW;

Trong hàm setup() là khai chế độ (Mode) cho chân button và chân led. Chân button là chân ngõ vào và chân led là chân ngõ ra.

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

Trong hàm loop() ta có câu lệnh đầu tiên là :

buttonState = digitalRead(buttonPin);

Câu lệnh này có nghĩa là gán giá trị đọc được từ chân button (chân 2) cho biến buttonState.. buttonState sẽ có giá trị 0 nếu như button không được nhấn và có giá trị 1 nếu được nhấn. Bằng cách sử dụng hàm digitalRead() ta có thể kiểm tra được các chân digital đang ở mức cao hay thấp.

Sau khi đọc được giá trị có ở chân buttonPin ( chân 2) ta kiểm tra xem là button có nhấn hay không.

Nếu có tức là buttonState =HIGH thì lúc này ta bật led bằng lệnh digitalWrite()

if (buttonState == HIGH) {

digitalWrite(ledPin, HIGH); }

Ngược lại thì ta một lần nửa sử dụng hàm digitalWrite() để tắt led

else {

digitalWrite(ledPin, LOW);

}

3) Project 3 : Led sáng dần từ led 1 đến led 10 và ngược lại.

 Sơ đồ mạch.

arduino49
Hình 23: Led sáng dần từ led 1 đến led 10 và ngược lại.

 Code chương trình.

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

int direction = 1;

int currentLED = 0;

void setup() {

for (int x=0; x<10; x++) {

pinMode(ledPin[x], OUTPUT);} }

void loop() {

for (int x=0; x<10; x++) {

digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[currentLED], HIGH);

currentLED += direction;

if (currentLED == 9) {direction = -1;}

if (currentLED == 0) {direction = 1;}

delay(500);

}

 Giải thích chương trình.

Trong Project này chúng ta sử dụng 10 chân digital để điều khiển 10 led, để cho chương trình ngắn gọn thì ở đây tôi sử dụng mảng 1 chiều gồm 10 phần tử trong đó chứa 10 vị trí chân led mà ta sử dụng trong project

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

Tiếp tục khai báo 2 biến integer là :

int direction = 1;

int currentLED = 0;

Trong hàm setup() tôi sử dụng một vòng lặp để định nghĩa mode cho các chân led. Tôi nghĩ là không khó để hiểu được các câu lệnh này.

Tiếp theo là hàm loop(), đầu tiên tôi tắt tất cả các led bằng các câu lệnh:

for (int x=0; x<10; x++) {

digitalWrite(ledPin[x], LOW);}

Sau đó cho sáng led đầu tiên bằng câu lệnh :

digitalWrite(ledPin[currentLED], HIGH);

Vì ta đã khai báo currentLED = 0 nên mãng sẽ truy xuất phần tử đầu tiên trong mãng có giá trị là 4 vì thế led ở vị trí chân digital số 4 sẽ sáng.

currentLED += direction;

Tăng currentLED lên 1 đơn vị ( direction =1 ). Vòng lặp tiếp theo sẽ là led ở chân digital 5 sáng và cứ như thế cho đến led ở chân số 13 sáng, thì lúc này currentLED == 9, câu lệnh “ if (currentLED == 9) {direction = -1;}” sẽ thực hiện và led sẽ sáng ngược lại từ led 10 xuống led thứ 1.

Hai câu lệnh :

if (currentLED == 9) {direction = -1;}

if (currentLED == 0) {direction = 1;}

dùng để quy định chiều sáng của led là tăng dần hay giảm dần. Nếu là Led thứ 10 sang thì tiếp theo sẽ giảm xuống led thứ 9 và ngược lại nếu led thứ 0 sang thì chu kỳ tiếp theo led 1 sẽ sáng.

Related Posts

Pin mặt trời có thể phát ra điện khi mặt trời lặn
Kỹ thuật điện

Pin mặt trời có thể phát ra điện khi mặt trời lặn

February 12, 2020
trạm biến áp
Kỹ thuật điện

Thông số và vị trí trạm biến áp

September 19, 2019
chùm điện từ
Kỹ thuật điện

Gia công bằng chùm tia điện tử

August 26, 2019
Chống sét ống
Kỹ thuật điện

Nguyên lý và cách lắp đặt chống sét

August 26, 2019
Kỹ thuật điện

Đo điện áp, dòng điện, công suất (1 chiều và xoay chiều)

August 26, 2019
Kỹ thuật điện

Linh kiện và thuộc tính trong Orcad

July 24, 2019

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest

Hình chiếu trong bản vẽ kỹ thuật

March 11, 2021

Quy định về hình cắt – mặt cắt

November 12, 2020

Ghi chữ – số – kích thước trong bản vẽ kỹ thuật

July 19, 2019
Kiểm tra độ đồng tâm, độ đồng trục và độ đảo

Kiểm tra độ đồng tâm, độ đồng trục và độ đảo

November 29, 2019
Tài liệu tự học Solidworks nâng cao

Tài liệu tự học Solidworks nâng cao

10
Cấu tạo và nguyên lý làm việc của máy xay xát gạo

Cấu tạo và nguyên lý làm việc của máy xay xát gạo

9
Gia nhập nhóm sáng tạo kỹ thuật TECHLAB

Gia nhập nhóm sáng tạo kỹ thuật TECHLAB

8
Tuyển nhân viên hoặc part-time thiết kế mô hình 3D

Tuyển nhân viên hoặc part-time thiết kế mô hình 3D

8
Máy in 3d giá rẻ dành cho học sinh

Máy in 3d giá rẻ dành cho học sinh

February 26, 2025
Máy in 3d phù hợp với sinh viên và học sinh

Máy in 3d phù hợp với sinh viên và học sinh

February 26, 2025
Máy in 3d, máy tạo mẫu nhanh khổ lớn

Máy in 3d, máy tạo mẫu nhanh khổ lớn

February 6, 2025
Bơm định lượng chất lỏng, bơm chiết rót giá rẻ

Bơm định lượng chất lỏng, bơm chiết rót giá rẻ

February 5, 2025

Bài viết gần đây

Máy in 3d giá rẻ dành cho học sinh

Máy in 3d giá rẻ dành cho học sinh

February 26, 2025
Máy in 3d phù hợp với sinh viên và học sinh

Máy in 3d phù hợp với sinh viên và học sinh

February 26, 2025
Máy in 3d, máy tạo mẫu nhanh khổ lớn

Máy in 3d, máy tạo mẫu nhanh khổ lớn

February 6, 2025
Bơm định lượng chất lỏng, bơm chiết rót giá rẻ

Bơm định lượng chất lỏng, bơm chiết rót giá rẻ

February 5, 2025
Công nghệ chế tạo

© 2021 Kỹ Thuật Chế Tạo - Phát Triển Công Nghiệp

Giới thiệu về chúng tôi

  • About
  • Advertise
  • Privacy & Policy
  • Contact

Theo dõi chúng tôi

No Result
View All Result
  • Thiết kế
    • Phác thảo-Concept
    • Nguyên lý máy
    • Mô hình 3D
  • Gia công
    • Công nghệ Hàn
    • Dụng cụ
    • Chế biến thực phẩm
    • Đo lường
    • CNC
    • Nguội
  • Quy chuẩn
    • An toàn
    • Bảo dưỡng
    • Tiêu chuẩn
    • Vẽ kỹ thuật
  • Thiết bị
    • Máy bơm
    • Xây dựng
  • Cơ điện tử
    • Kỹ thuật điện
    • Động cơ
    • Robot
  • Phần mềm
    • Autocad
    • Solidworks
    • Inventor
    • Catia
    • Mastercam
  • Vật liệu
  • Hợp tác
    • Nghề Nghiệp
    • Tài liệu

© 2021 Kỹ Thuật Chế Tạo - Phát Triển Công Nghiệp