Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Node.js Raspberry Pi GPIO - Đèn LED chảy


Sử dụng mảng có đầu ra để tạo đèn LED chạy

Trong chương này, chúng ta sẽ sử dụng một số chân GPIO để tạo hiệu ứng "chảy" bằng cách bật và tắt chúng theo trình tự.


Chúng ta cần gì?

Đối với điều này bạn cần:

Lưu ý: Điện trở bạn cần có thể khác với điện trở chúng tôi sử dụng tùy thuộc vào loại đèn LED bạn sử dụng. Hầu hết các đèn LED nhỏ chỉ cần một điện trở nhỏ, khoảng 200-500 ohm. Nói chung, giá trị chính xác bạn sử dụng không quan trọng, nhưng giá trị của điện trở càng nhỏ thì đèn LED sẽ càng sáng.

Nhấp vào các liên kết trong danh sách ở trên để xem mô tả về các thành phần khác nhau.


Xây dựng mạch

Bây giờ là lúc xây dựng mạch trên Breadboard của chúng ta.

Nếu bạn chưa quen với thiết bị điện tử, chúng tôi khuyên bạn nên tắt nguồn cho Raspberry Pi. Và sử dụng thảm chống tĩnh điện hoặc dây nối đất để tránh làm hỏng nó.

Tắt Raspberry Pi đúng cách bằng lệnh:

pi@w3demopi:~ $ sudo shutdown -h now

Sau khi đèn LED ngừng nhấp nháy trên Raspberry Pi, hãy rút phích cắm nguồn ra khỏi Raspberry Pi (hoặc tắt dải nguồn mà nó được kết nối).

Chỉ cần rút phích cắm mà không tắt đúng cách có thể gây hỏng thẻ nhớ.

Raspberry Pi 3 với Breadboard. Mạch đèn LED chảy

Nhìn vào hình minh họa ở trên của mạch.

  1. Trên Raspberry Pi, kết nối chân cái của dây nhảy với chân GND . Trong ví dụ của chúng tôi, chúng tôi đã sử dụng Chân vật lý 6 ( GND , hàng 3, cột bên phải)
  2. Trên Breadboard, nối chân đực của dây nhảy nối với nguồn GND , với Ground Bus ở phía bên phải. Toàn bộ cột của bảng mạch của bạn được kết nối, do đó, hàng nào không quan trọng. Trong ví dụ của chúng tôi, chúng tôi đã đính kèm nó vào hàng 1
  3. Đối với mỗi đèn LED: Nối đèn LED sao cho nối vào 2 hàng Tie-Point. Trong ví dụ của chúng tôi, chúng tôi đã kết nối:
    1. LED1 tới hàng 5 (cực âm) & cột 6 (cực dương) J
    2. LED2 đến hàng 8 (cực âm) & cột 9 (cực dương) J
    3. LED3 đến hàng 11 (cực âm) & cột 12 (cực dương) J
    4. LED4 đến hàng 14 (cực âm) & cột 15 (cực dương) J
    5. LED5 đến hàng 17 (cực âm) & cột 18 (cực dương) J
    6. LED6 đến hàng 20 (cực âm) & 21 (cực dương) cột J
    7. LED7 đến hàng 23 (cực âm) & 24 (cực dương) cột J
    8. LED8 đến hàng 26 (cực âm) & 27 (cực dương) cột J
  4. Đối với mỗi đèn LED: Kết nối một trong các chân của điện trở 220 ohm từ cột Ground Bus ở bên phải và chân còn lại với hàng Tie-Point bên phải nơi nó kết nối với chân cực âm của đèn LED. Trong ví dụ của chúng tôi, chúng tôi đã kết nối:
    1. LED1 đến hàng 5 cột I
    2. LED2 đến hàng 8 cột I
    3. LED3 đến hàng 11 cột I
    4. LED4 đến hàng 14 cột I
    5. LED5 đến hàng 17 cột I
    6. LED6 đến hàng 20 cột I
    7. LED7 đến hàng 23 cột I
    8. LED8 tới hàng 26 cột I
  5. Đối với mỗi đèn LED: Kết nối chân cái của dây nhảy với chân GPIO trên Raspberry Pi và chân đực của dây nhảy với hàng Tie-Point bên phải nơi nó kết nối với chân cực dương của đèn LED. Trong ví dụ của chúng tôi, chúng tôi đã kết nối:
    1. LED1 từ Chân vật lý 7 ( GPIO 4 , hàng 4, cột bên trái) đến Điểm liên kết hàng 6 cột F
    2. LED2 từ Chân vật lý 11 ( GPIO 17 , hàng 6, cột bên trái) đến Điểm liên kết hàng 9 cột F
    3. LED3 từ Chân vật lý 13 ( GPIO 27 , hàng 7, cột bên trái) đến Tie-point hàng 12 cột F
    4. LED4 từ Chân vật lý 15 ( GPIO 22 , hàng 8, cột bên trái) đến Điểm liên kết hàng 15 cột F
    5. LED5 từ Chân vật lý 12 ( GPIO 18 , hàng 6, cột bên phải) đến Tie-point hàng 18 cột F
    6. LED6 từ Chân vật lý 16 ( GPIO 23 , hàng 8, cột bên phải) đến Điểm liên kết hàng 21 cột F
    7. LED7 từ Chân vật lý 18 ( GPIO 24 , hàng 9, cột bên phải) đến Điểm liên kết hàng 24 cột F
    8. LED8 từ Chân vật lý 22 ( GPIO 25 , hàng 11, cột bên phải) đến Tie-point hàng 27 cột F

Mạch của bạn bây giờ đã hoàn tất và các kết nối của bạn sẽ trông khá giống với hình minh họa ở trên.

Bây giờ là lúc khởi động Raspberry Pi và viết tập lệnh Node.js để tương tác với nó.



Tập lệnh đèn LED chạy của Raspberry Pi và Node.js

Chuyển đến thư mục "nodetest" và tạo một tệp mới có tên " flowingleds.js ":

pi@w3demopi:~ $ nano flowingleds.js

Tệp hiện đã mở và có thể được chỉnh sửa bằng Nano Editor tích hợp.

Viết hoặc dán nội dung sau:

flowleds.js

var Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
var LED04 = new Gpio(4, 'out'), //use declare variables for all the GPIO output pins
  LED17 = new Gpio(17, 'out'),
  LED27 = new Gpio(27, 'out'),
  LED22 = new Gpio(22, 'out'),
  LED18 = new Gpio(18, 'out'),
  LED23 = new Gpio(23, 'out'),
  LED24 = new Gpio(24, 'out'),
  LED25 = new Gpio(25, 'out');

//Put all the LED variables in an array
var leds = [LED04, LED17, LED27, LED22, LED18, LED23, LED24, LED25];
var indexCount = 0; //a counter
dir = "up"; //variable for flowing direction

var flowInterval = setInterval(flowingLeds, 100); //run the flowingLeds function every 100ms

function flowingLeds() { //function for flowing Leds
  leds.forEach(function(currentValue) { //for each item in array
    currentValue.writeSync(0); //turn off LED
  });
  if (indexCount == 0) dir = "up"; //set flow direction to "up" if the count reaches zero
  if (indexCount >= leds.length) dir = "down"; //set flow direction to "down" if the count reaches 7
  if (dir == "down") indexCount--; //count downwards if direction is down
  leds[indexCount].writeSync(1); //turn on LED that where array index matches count
  if (dir == "up") indexCount++ //count upwards if direction is up
};

function unexportOnClose() { //function to run when exiting program
  clearInterval(flowInterval); //stop flow interwal
  leds.forEach(function(currentValue) { //for each LED
    currentValue.writeSync(0); //turn off LED
    currentValue.unexport(); //unexport GPIO
  });
};

process.on('SIGINT', unexportOnClose); //function to run when user closes using ctrl+cc

Nhấn " Ctrl+x " để lưu mã. Xác nhận bằng " y " và xác nhận tên bằng " Enter ".

Chạy mã:

pi@w3demopi:~ $ node flowingleds.js

Bây giờ các đèn LED sẽ bật và tắt theo trình tự, tạo hiệu ứng chảy.

Kết thúc chương trình bằng Ctrl+c .


×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .