Câp nguồn 5v vào arduino chịu được dòng bao nhiêu năm 2024

Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO. Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 [R3]. Bạn sẽ bắt đầu đến với Arduino qua thứ này. Bạn có thể dùng Arduino Nano cũng được nhưng mình khuyên bạn nên dùng cái này.

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác.

Arduino Uno được xây dựng với phân nhân là vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz. Với vi điều khiển này, ta có tổng cộng 14 pin [ngõ] ra / vào được đánh số từ 0 tới 13 [trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin]. Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường [như pin 0 - 13]. Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên board.

Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn.

Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:

  • Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện. Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board. Chương trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory. Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá.
  • RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi xoá rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.
  • EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi / xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ. Để đọc / ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino.

Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND...

Arduino Uno là một vi điều khiển dựa trên ATmega328P. Nó có 14 chân đầu vào/đầu ra kỹ thuật số [trong đó 6 chân có thể được sử dụng làm đầu ra PWM], 6 đầu vào tương tự, tinh thể thạch anh 16 MHz, kết nối USB, giắc cắm nguồn, header ICSP và nút reset. Mạch chứa mọi thứ cần thiết để hỗ trợ vi điều khiển, chỉ cần kết nối với máy tính bằng cáp USB hoặc cấp nguồn bằng bộ chuyển đổi AC-to-DC hoặc qua chân nguồn để bắt đầu .

Sơ đồ chân Arduino Uno:

Power:

  • LED: Chân D13 của Arduino được kết nối với 1 led. Khi chân có giá trị mức cao [HIGH] thì LED sẽ sáng và mức thấp LED sẽ tắt
  • VIN: dùng để cung cấp nguồn khi không dùng USB hoặc các nguồn khác, điện áp 7-12VDC
  • 5V: Chân này xuất ra nguồn 5V
  • 3V3: Nguồn cung cấp 3.3V [dòng điện trên chân này tối đa là 50mA].
  • GND: Là chân mang điện cực âm trên board.
  • IOREF: chân này dùng để cung cấp tham chiếu điện áp mà bộ vi điều khiển hoạt động.
  • Reset: dùng để kết nối với nút reset ra bên ngoài.

Chức năng các chân đặc biệt:

Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra, chúng sử dụng các hàm pinMode[], digitalWrite[], digitalRead[]. Điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm. Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch. Uno có 6 chân đầu vào Analog từ A0 đến A5, mỗi chân cung cấp 10 bit độ phân giải [tức là 1024 giá trị khác nhau].

Ngoài ra, một số chân có chức năng đặt biệt:

  • Serial: chân 0 [RX] và 1 [TX]: Được sử dụng để nhận dữ liệu [RX] và truyền dữ liệu [TX] TTL.
  • Ngắt ngoài: chân 2 và 3
  • PWM [điều chế độ rộng xung]: chân 3, 5, 6, 9 và 11 cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite [].
  • SPI: 10 [SS], 11 [MOSI], 12 [MISO], 13 [SCK]. Các chân này hỗ trợ giao tiếp SPI bằng thư viện SPI.
  • TWI/I2C: A4 [SDA] và A5 [SCL] hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
  • AREF: điện áp tham chiếu cho các đầu vào tương tự.

ĐÈN LED

Đèn led hay còn gọi là điốt phát quang, là một biến thể của diode cơ bản, nó xác định độ chênh lệch điện áp nhỏ nhất giữa Anode [+ ] và Cathode [-], led khác diode ở chỗ là tạo ra ánh sáng khi dòng điện đi qua. Đèn led cần được kết nối đúng âm dương của nguồn điện để hoạt động. Đèn led có rất nhiều màu sắc khác nhau: đỏ, vàng, xanh lá, xanh dường, trắng…

Điện áp: Mỗi đèn led đều có một mức điện áp đầu vào nhất định [led 5mm dao động 1.9 – 3.2 Vol], nếu cung cấp không đủ đèn sẽ không phát sáng hoặc cung cấp nguồn lớn hơn thì cần phải sử dụng trở để giảm điện thế vào led. Nếu bạn mắc nhiều đèn led nối tiếp, song song thì cần phải tính toán mức điện áp, dòng điện cung cấp cho tất cả các led.

Dòng điện: Nếu bạn cung cấp dòng điện vượt qua ngưỡng cho phép, tương đương với việc làm gia tăng nhiệt độ và làm giảm tuổi thọ của led. Dòng điện phù hợp với led 5mm thường ở mức 20mA, tối đa có thể là 30mA, chúng ta kiểm soát dòng điện bằng cách mắc một điện trở nối tiếp với đèn led,nó giúp dòng điện của led luôn ở mức cho phép.

Thực hành: Điều khiển đèn LED qua Arduino

Chuẩn bị phần cứng:

  • ArduinoUno
  • 8 đèn led [màu nào cũng được]
  • Testboard cắm
  • Dây cắm
  • 8 điện trở 220 Ohm

Kết nối theo sơ đồ sau:

Code điều khiển bật tắt lần lượt 8 đèn LED

CÁCH 1 : ĐƠN GIẢN NHƯNG . . . DÀI DÒNG & TỐN THỜI GIAN

void setup[]
{
    pinMode[2,OUTPUT]; //Cấu hình chân số 2 là OUTPUT
    pinMode[3,OUTPUT]; //Cấu hình chân số 3 là OUTPUT
    pinMode[4,OUTPUT]; //Cấu hình chân số 4 là OUTPUT
    pinMode[5,OUTPUT]; //Cấu hình chân số 5 là OUTPUT
    pinMode[6,OUTPUT]; //Cấu hình chân số 6 là OUTPUT
    pinMode[7,OUTPUT]; //Cấu hình chân số 7 là OUTPUT
    pinMode[8,OUTPUT]; //Cấu hình chân số 8 là OUTPUT
    pinMode[9,OUTPUT]; //Cấu hình chân số 9 là OUTPUT
}
void setup[]
{
    pinMode[2,OUTPUT]; //Cấu hình chân số 2 là OUTPUT
    pinMode[3,OUTPUT]; //Cấu hình chân số 3 là OUTPUT
    pinMode[4,OUTPUT]; //Cấu hình chân số 4 là OUTPUT
    pinMode[5,OUTPUT]; //Cấu hình chân số 5 là OUTPUT
    pinMode[6,OUTPUT]; //Cấu hình chân số 6 là OUTPUT
    pinMode[7,OUTPUT]; //Cấu hình chân số 7 là OUTPUT
    pinMode[8,OUTPUT]; //Cấu hình chân số 8 là OUTPUT
    pinMode[9,OUTPUT]; //Cấu hình chân số 9 là OUTPUT
}
void setup[]
{
    pinMode[2,OUTPUT]; //Cấu hình chân số 2 là OUTPUT
    pinMode[3,OUTPUT]; //Cấu hình chân số 3 là OUTPUT
    pinMode[4,OUTPUT]; //Cấu hình chân số 4 là OUTPUT
    pinMode[5,OUTPUT]; //Cấu hình chân số 5 là OUTPUT
    pinMode[6,OUTPUT]; //Cấu hình chân số 6 là OUTPUT
    pinMode[7,OUTPUT]; //Cấu hình chân số 7 là OUTPUT
    pinMode[8,OUTPUT]; //Cấu hình chân số 8 là OUTPUT
    pinMode[9,OUTPUT]; //Cấu hình chân số 9 là OUTPUT
}

CÁCH 2 : SỬ DỤNG VÒNG LẶP FOR

byte led[ ] = {2,3,4,5,6,7,8,9}; // Mảng lưu vị trí các chân Digital mà các đèn LED sử dụng theo thứ tự từ 1->8
byte TongLed; // Khai báo biến TongLed cho việc lưu tổng số chân LED
void setup[]
{
    TongLed = sizeof[led]; //Kiểm tra độ dài của mảng led
    for [int i=0;i8
byte TongLed; // Khai báo biến TongLed cho việc lưu tổng số chân LED
void setup[]
{
    TongLed = sizeof[led]; //Kiểm tra độ dài của mảng led
    for [int i=0;i

Chủ Đề