» Điện tử » Arduino »Arduino cho người mới bắt đầu

Arduino cho người mới bắt đầu


Arduino là một bảng vi điều khiển mà bạn có thể lập trình để điều khiển các thiết bị bên ngoài. Nó tương tác với thế giới bên ngoài thông qua các cảm biến, động cơ, đèn LED, loa ... và thậm chí cả Internet, biến nó thành một nền tảng linh hoạt cho các dự án khác nhau. Có khá nhiều bộ vi điều khiển, nhưng Arduino rất phổ biến do thực tế là các dự án khác nhau được đưa ra và thảo luận rất tích cực trên Internet. Nếu bạn tìm kiếm trên google hoặc youtube, bạn sẽ tìm thấy hàng triệu ý tưởng và thông tin để bắt đầu tự khám phá Arduino.
Ngay cả khi bạn không có kinh nghiệm lập trình vi điều khiển - với Arduino, bạn sẽ nhanh chóng học và học được điều gì đó về điện tử sử dụng thí nghiệm.

Bạn cần gì để bắt đầu?
Arduino Uno- 1 cái
Cáp USB-1 chiếc
Jumpers 1 cái
1 bảng phát triển
Đèn LED đỏ 4 chiếc
Điện trở 220 ohm 4 cái
Điện trở 10 phòng 1 chiếc
Nút mà không sửa
Máy đo điện thế
Đèn LED RGB với cực âm phổ biến

Tất cả điều này có thể được mua tại một cửa hàng radio địa phương hoặc đặt hàng trên Internet.

Một trình giả lập trực tuyến đã được sử dụng để trình diễn và mô phỏng các mạch điện.

Trình giả lập này hoạt động tốt nhất trong trình duyệt Chrome.
Chúng ta hãy xem xét kỹ hơn về Arduino.

Arduino không phải là một máy tính lớn mà các mạch ngoài có thể kết nối. Arduino Uno sử dụng Atmega 328P
Đây là con chip lớn nhất trên bảng. Con chip này thực thi các chương trình được lưu trữ trong bộ nhớ của nó. Bạn có thể tải chương trình qua usb bằng Arduino IDE. Cổng usb cũng cung cấp năng lượng cho arduino.

Có một đầu nối nguồn riêng biệt. Có hai đầu ra trên bo mạch, được chỉ định 5v và 3.3v, cần thiết để cấp nguồn cho các thiết bị khác nhau. Bạn cũng sẽ tìm thấy các chân được đánh dấu là GND, đây là các đầu nối đất (mặt đất là 0V). Nền tảng Arduino cũng có 14 đầu ra kỹ thuật số (chân), được đánh dấu bằng các số từ 0 đến 13, được kết nối với các nút bên ngoài và có hai trạng thái, cao hoặc thấp (bật hoặc tắt). Các liên hệ này có thể hoạt động như đầu ra hoặc đầu vào, tức là họ có thể truyền một số dữ liệu và điều khiển các thiết bị bên ngoài hoặc nhận dữ liệu từ các thiết bị. Các kết luận sau đây trên bảng được chỉ định A0-A5. Đây là những đầu vào tương tự có thể nhận dữ liệu từ các cảm biến khác nhau. Điều này đặc biệt thuận tiện khi bạn cần đo một phạm vi, chẳng hạn như nhiệt độ. Các đầu vào tương tự có các chức năng bổ sung có thể được kích hoạt riêng.


Làm thế nào để sử dụng một Breadboard.

Một bảng mạch là cần thiết để tạm thời kết nối các bộ phận, để kiểm tra cách thiết bị hoạt động, trước khi bạn hàn mọi thứ lại với nhau.
Tất cả các ví dụ sau đây được thu thập trên bảng mạch để bạn có thể nhanh chóng thực hiện các thay đổi đối với mạch và tái sử dụng các bộ phận mà không cần bận tâm đến hàn.

Breadboard có các hàng lỗ, trong đó bạn có thể chèn các bộ phận và dây. Một số các lỗ này được kết nối điện với nhau.

Hai hàng trên và dưới được kết nối thành chuỗi dọc theo toàn bộ bảng. Những hàng này được sử dụng để cấp nguồn cho mạch. Nó có thể là 5v hoặc 3,3v, nhưng trong mọi trường hợp, điều đầu tiên bạn cần làm là kết nối 5v và GND với bảng mạch, như trong hình. Đôi khi các kết nối hàng này có thể bị gián đoạn ở giữa bảng, sau đó nếu bạn cần, bạn có thể kết nối chúng, như trong hình.




Các lỗ còn lại nằm ở giữa bảng được nhóm thành năm lỗ. Chúng được sử dụng để kết nối các bộ phận mạch.

Điều đầu tiên chúng tôi kết nối với vi điều khiển của chúng tôi là đèn LED. Sơ đồ kết nối điện được hiển thị trong hình.


Tại sao tôi cần một điện trở trong mạch? Trong trường hợp này, nó giới hạn dòng điện đi qua đèn LED. Mỗi đèn LED được thiết kế cho một dòng điện cụ thể và nếu dòng điện này lớn hơn, thì đèn LED sẽ thất bại. Tìm ra giá trị nào mà điện trở nên sử dụng định luật Ohm. Đối với những người không biết hoặc đã quên, định luật Ohm nói rằng có sự phụ thuộc tuyến tính của dòng điện vào điện áp. Đó là, chúng ta càng đặt điện áp vào điện trở, dòng điện sẽ chạy qua nó càng nhiều.
V = I * R
Ở đâu V-Điện áp trên điện trở
Tôi- dòng điện qua điện trở
R- sức đề kháng được tìm thấy.
Đầu tiên, chúng ta cần tìm ra điện áp trên điện trở. Hầu hết các đèn LED 3 mm hoặc 5 mm mà bạn sẽ sử dụng đều có điện áp hoạt động 3V. Vì vậy, trên điện trở chúng ta cần trả hết 5-3 = 2v.

Sau đó, chúng tôi tính toán dòng điện đi qua điện trở.
Hầu hết các đèn LED 3 và 5 mm phát sáng ở độ sáng tối đa ở mức 20mA. Dòng điện nhiều hơn mức này có thể vô hiệu hóa chúng và dòng điện có cường độ nhỏ hơn sẽ làm giảm độ sáng của chúng, mà không gây ra bất kỳ tác hại nào.

Vì vậy, chúng tôi muốn bật đèn LED trong mạch 5v để nó có dòng điện 20mA. Vì tất cả các bộ phận được bao gồm trong một mạch, điện trở cũng sẽ có dòng điện 20 mA.
Chúng tôi nhận được
2V = 20 mA * R
2V = 0,02A * R
R = 100 ohms

100 Ohms là điện trở tối thiểu, tốt hơn là sử dụng nhiều hơn một chút, vì đèn LED có một số thay đổi về đặc tính.
Trong ví dụ này, một điện trở 220 ohm được sử dụng. Chỉ vì tác giả có rất nhiều người trong số họ: nháy mắt :.

Chèn đèn LED vào các lỗ ở giữa bảng để thiết bị đầu cuối dài của nó được kết nối với một trong các thiết bị đầu cuối của điện trở. Kết nối đầu thứ hai của điện trở với 5V và kết nối đầu ra thứ hai của đèn LED với GND. Đèn LED sẽ sáng lên.

Xin lưu ý rằng có một sự khác biệt trong cách kết nối đèn LED. Dòng điện từ một thiết bị đầu cuối dài hơn đến một thiết bị ngắn hơn. Trong sơ đồ có thể tưởng tượng rằng dòng điện chạy theo hướng mà tam giác được định hướng. Hãy thử lật đèn LED và bạn sẽ thấy nó sẽ không sáng.

Nhưng làm thế nào bạn kết nối điện trở, không có sự khác biệt nào cả. Bạn có thể lật lại hoặc thử kết nối nó với đầu ra khác của đèn LED, điều này sẽ không ảnh hưởng đến hoạt động của mạch. Nó vẫn sẽ giới hạn dòng điện thông qua đèn LED.

Cấu tạo của một bản phác thảo Arduino.

Các chương trình cho Arduino được gọi là phác thảo. Chúng bao gồm hai chức năng chính. Chức năng thiết lập và chức năng vòng lặp
bên trong chức năng này, bạn sẽ thiết lập tất cả các cài đặt cơ bản. Kết luận nào sẽ hoạt động trên đầu vào hoặc đầu ra, thư viện nào để kết nối, khởi tạo các biến. Chức năng Cài đặt () Nó chỉ bắt đầu một lần trong khi phác thảo, khi chương trình bắt đầu.
đây là chức năng chính được thực hiện sau thiết lập (). Trong thực tế, đây là chương trình chính nó. Chức năng này sẽ chạy vô thời hạn cho đến khi bạn tắt nguồn.

Đèn LED nhấp nháy Arduino




Trong ví dụ này, chúng tôi sẽ kết nối một mạch với đèn LED với một trong các chân kỹ thuật số Arduino và bật và tắt nó bằng chương trình, và bạn cũng sẽ tìm hiểu một số chức năng hữu ích.



- chức năng này được sử dụng trong thiết lập () các phần của chương trình và phục vụ để khởi tạo kết luận mà bạn sẽ sử dụng làm đầu vào (VÀO) hoặc thoát (ĐẦU RA). Bạn không thể đọc hoặc ghi dữ liệu từ pin cho đến khi bạn đặt nó phù hợp thành pinMode. Hàm này có hai đối số: số pin- Đây là số pin mà bạn sẽ sử dụng.

Chế độ- thiết lập cách thức pin sẽ hoạt động. Ở lối vào (VÀO) hoặc thoát (ĐẦU RA). Để bật đèn LED, chúng ta phải đưa ra tín hiệu Từ Arduino Để làm điều này, chúng tôi cấu hình pin để thoát.
- chức năng này phục vụ để thiết lập trạng thái (tiểu bang) pina (số pin). Có hai trạng thái chính (nói chung có 3), một là Cao, pin sẽ là 5v, khác là Thấp và pin sẽ là 0v. Vì vậy, để làm sáng đèn LED, chúng ta cần đặt mức cao trên chân được kết nối với đèn LED Cao.

- trì hoãn. Phục vụ để trì hoãn chương trình trong một khoảng thời gian xác định trong ms.
Dưới đây là mã làm cho đèn LED nhấp nháy.
// Nhấp nháy đèn LED

int ledPin = 7; // Pin Arduino được kết nối với đèn LED

void setup () {
  pinMode (ledPin, OUTPUT); // đặt pin là EXIT
}

void loop () {
  digitalWrite (ledPin, CAO); // sáng đèn LED
  độ trễ (1000); // độ trễ 1000 ms (1 giây)
  digitalWrite (ledPin, THẤP); // Tắt đèn LED
  độ trễ (1000); // chờ 1 giây
}


Một lời giải thích nhỏ về mã.
Các dòng bắt đầu bằng "//" là các nhận xét của Arduino mà bỏ qua chúng.
Tất cả các lệnh kết thúc bằng dấu chấm phẩy, nếu bạn quên chúng, bạn sẽ nhận được thông báo lỗi.

cái kẹplà một biến Các biến được sử dụng trong các chương trình để lưu trữ giá trị. Trong ví dụ này, biến cái kẹp được gán một giá trị là 7, đây là số pin của Arduino. Khi Arduino trong chương trình gặp một chuỗi có một biến cái kẹp , nó sẽ sử dụng giá trị mà chúng tôi đã chỉ định trước đó.
Vì vậy, ghi lại pinMode (ledPin, OUTPUT) tương tự như hồ sơ pinMode (7, ĐẦU RA).
Nhưng trong trường hợp đầu tiên, nó đủ để bạn thay đổi biến và nó sẽ thay đổi theo từng dòng được sử dụng và trong trường hợp thứ hai, để thay đổi biến, bạn phải thay đổi bút trong mỗi lệnh.

trong dòng đầu tiên chỉ ra loại biến. Khi lập trình Arduino, điều quan trọng là luôn luôn khai báo loại biến. Cho đến bây giờ, nó đủ để bạn biết rằng INT thông báo số âm và dương.
Dưới đây được trình bày người mẫu phác họa. Nhấn bắt đầu để xem hoạt động của mạch.



Đúng như dự đoán, đèn LED tắt và sáng lên sau một giây. Hãy thử thay đổi độ trễ để xem nó hoạt động như thế nào.

Quản lý một số đèn LED.

Trong ví dụ này, bạn sẽ học cách điều khiển nhiều đèn LED. Để làm điều này, cài đặt thêm 3 đèn LED trên bảng và kết nối chúng với điện trở và chân Arduino, như hình dưới đây.



Để bật và tắt đèn LED lần lượt, bạn cần viết một chương trình như thế này:
// Nhấp nháy nhiều đèn LED

int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;

void setup () {
  // đặt chân là EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

void loop () {
  digitalWrite (led1Pin, CAO); // sáng đèn LED
  độ trễ (1000); // độ trễ 1 giây
  digitalWrite (led1Pin, THẤP); // đưa ra đèn LED
  độ trễ (1000); // độ trễ 1 giây

  // làm tương tự cho 3 đèn LED khác
  digitalWrite (led2Pin, CAO); // sáng đèn LED
  độ trễ (1000); // độ trễ 1 giây
  digitalWrite (led2Pin, THẤP); // đưa ra đèn LED
  độ trễ (1000); // độ trễ 1 giây

  digitalWrite (led3Pin, CAO); // sáng đèn LED
  độ trễ (1000); // độ trễ 1 giây
  digitalWrite (led3Pin, THẤP); // đưa ra đèn LED
  độ trễ (1000); // độ trễ 1 giây

  digitalWrite (led4Pin, CAO); // sáng đèn LED
  độ trễ (1000); // độ trễ 1 giây
  digitalWrite (led4Pin, THẤP); // đưa ra đèn LED
  độ trễ (1000); // độ trễ 1 giây
}


Chương trình này sẽ hoạt động tốt, nhưng đây không phải là giải pháp hợp lý nhất. Mã cần phải được thay đổi. Để chương trình hoạt động lặp đi lặp lại, chúng ta sẽ sử dụng cấu trúc được gọi.
Chu kỳ thuận tiện khi bạn cần lặp lại hành động tương tự nhiều lần. Trong đoạn mã trên, chúng tôi lặp lại các dòng

kỹ thuật sốWrite (led4Pin, CAO);
độ trễ (1000);
kỹ thuật sốWrite (led4Pin, THẤP);
độ trễ (1000); 

mã phác thảo đầy đủ trong tệp đính kèm for.zip [720 b] (tải xuống: 1410)

Điều chỉnh độ sáng LED

Đôi khi bạn sẽ cần thay đổi độ sáng của đèn LED trong chương trình. Điều này có thể được thực hiện bằng cách sử dụng lệnh analogWrite (). Lệnh này bật và tắt đèn LED nhanh đến mức mắt không nhìn thấy ánh sáng nhấp nháy này. Nếu đèn LED được bật một nửa thời gian và một nửa tắt, nó sẽ xuất hiện trực quan rằng nó được thắp sáng ở một nửa độ sáng của nó. Điều này được gọi là điều chế độ rộng xung (PWM hoặc PWM bằng tiếng Anh). PWM được sử dụng khá thường xuyên, vì nó có thể được sử dụng để điều khiển thành phần tương tự thành công bằng cách sử dụng mã kỹ thuật số. Không phải tất cả các chân Arduino đều phù hợp cho các mục đích này. Chỉ những kết luận xung quanh việc chỉ định như vậy được rút ra "~"Bạn sẽ thấy nó bên cạnh các chân 3,5,6,9,10,11.
Kết nối một trong các đèn LED của bạn với một trong các đầu ra PWM (đối với tác giả, đây là chân 9). Bây giờ hãy chạy đèn LED nhấp nháy phác thảo, nhưng trước tiên hãy thay đổi lệnh kỹ thuật sốWrite () trên analogWrite (). analogWrite () Nó có hai đối số: đầu tiên là số pin và thứ hai là giá trị PWM (0-255), liên quan đến đèn LED, nó sẽ là độ sáng của chúng và đối với động cơ điện tốc độ quay. Dưới đây là một mã ví dụ cho độ sáng LED khác nhau.
// Thay đổi độ sáng của đèn LED

int ledPin = 9; // LED được kết nối với pin này
void setup () {
  pinMode (ledPin, OUTPUT); // khởi tạo pin thành đầu ra
}

void loop () {
  analogWrite (ledPin, 255); // độ sáng đầy đủ (255/255 = 1)
  độ trễ (1000); // tạm dừng 1 giây
  digitalWrite (ledPin, THẤP); // tắt đèn LED
  độ trễ (1000); // tạm dừng 1 giây

  analogWrite (ledPin, 191); // độ sáng ở 3/4 (191/255 ~ = 0,75)
  độ trễ (1000); // tạm dừng 1 giây
  digitalWrite (ledPin, THẤP); // tắt đèn LED
  độ trễ (1000); // tạm dừng 1 giây

  analogWrite (ledPin, 127); // độ sáng một nửa (127/255 ~ = 0,5)
  độ trễ (1000); // tạm dừng 1 giây
  digitalWrite (ledPin, THẤP); // tắt đèn LED
  độ trễ (1000); // tạm dừng 1 giây

  analogWrite (ledPin, 63); // độ sáng quý (63/255 ~ = 0,25)
  độ trễ (1000); // tạm dừng 1 giây
  digitalWrite (ledPin, THẤP); // tắt đèn LED
  độ trễ (1000); // tạm dừng 1 giây
}


Hãy thử thay đổi giá trị PWM trong lệnh analogWrite ()để xem làm thế nào nó ảnh hưởng đến độ sáng.
Tiếp theo, bạn sẽ học cách điều chỉnh độ sáng mượt mà từ đầy đủ đến không. Tất nhiên, bạn có thể sao chép một đoạn mã 255 lần
analogWrite (ledPin, độ sáng);
độ trễ (5); // độ trễ ngắn
độ sáng = độ sáng + 1;

Nhưng, bạn hiểu - nó sẽ không thực tế. Để làm điều này, tốt nhất là sử dụng vòng lặp FOR đã được sử dụng trước đó.
Ví dụ sau sử dụng hai chu kỳ, một để giảm độ sáng từ 255 xuống 0
for (int độ sáng = 0; độ sáng = 0; độ sáng -) {

analogWrite (ledPin, độ sáng);
trì hoãn (5);

}

trì hoãn (5) được sử dụng để làm chậm tốc độ tăng và giảm độ sáng 5 * 256 = 1280 ms = 1,28 giây.)
Dòng đầu tiên sử dụng "độ sáng-"để giá trị độ sáng giảm đi 1, mỗi lần chu kỳ lặp lại. Xin lưu ý rằng chu trình sẽ hoạt động miễn là độ sáng> = 0Thay thế các dấu hiệu > trên bảng hiệu >= chúng tôi bao gồm 0 trong phạm vi độ sáng. Bản phác thảo này được mô hình dưới đây.
// thay đổi độ sáng

int ledPin = 9; // LED được kết nối với chân này

void setup () {
  pinMode (ledPin, OUTPUT); // khởi tạo pin để thoát
}

void loop () {
  // tăng dần độ sáng (0 đến 255)
  for (int độ sáng = 0; độ sáng = 0; độ sáng -) {
    analogWrite (ledPin, độ sáng);
    trì hoãn (5);
  }

  độ trễ (1000); // chờ 1 giây
 // giảm độ sáng một cách trơn tru (255 xuống 0)
  for (int độ sáng = 255; độ sáng> = 0; độ sáng -) {
    analogWrite (ledPin, độ sáng);
    trì hoãn (5);
  }

  độ trễ (1000); // chờ 1 giây
}
}

Điều này không phải là rất rõ ràng, nhưng ý tưởng là rõ ràng.



Đèn LED RGB và Arduino

Đèn LED RGB thực sự là ba đèn LED có màu khác nhau trong một vỏ.



Bao gồm các đèn LED khác nhau với độ sáng khác nhau, bạn có thể kết hợp và có được màu sắc khác nhau. Đối với Arduino, trong đó số lượng độ sáng là 256, bạn nhận được 256 ^ 3 = 16581375 màu sắc có thể. Trong thực tế, tất nhiên, sẽ có ít hơn trong số họ.
Đèn LED mà chúng ta sẽ sử dụng là cực âm phổ biến. Tức là cả ba đèn LED được kết nối có cấu trúc bởi catốt với một thiết bị đầu cuối. Chúng tôi sẽ kết nối pin này với pin GND. Các thiết bị đầu cuối còn lại, thông qua các điện trở giới hạn, phải được kết nối với các thiết bị đầu cuối PWM. Tác giả đã sử dụng kết luận 9-11. Do đó, sẽ có thể điều khiển từng đèn LED riêng biệt. Bản phác thảo đầu tiên cho thấy cách bật riêng từng đèn LED.



// Đèn LED RGB - thử nghiệm

// kết nối pin
int đỏ = 9;
int xanh = 10;
int xanh = 11;

void setup () {
  pinMode (màu đỏ, OUTPUT);
  pinMode (màu xanh, OUTPUT);
  pinMode (màu xanh lá cây, OUTPUT);
}

void loop () {
  // bật / tắt đèn LED màu đỏ
  kỹ thuật sốWrite (màu đỏ, CAO);
  độ trễ (500);
  kỹ thuật sốWrite (màu đỏ, THẤP);
  độ trễ (500);
  
  // bật / tắt đèn LED màu xanh
  kỹ thuật sốWrite (màu xanh lá cây, CAO);
  độ trễ (500);
  kỹ thuật sốWrite (màu xanh lá cây, THẤP);
  độ trễ (500);

  // bật / tắt đèn LED màu xanh
  kỹ thuật sốWrite (màu xanh, CAO);
  độ trễ (500);
  kỹ thuật sốWrite (màu xanh, THẤP);
  độ trễ (500);
}


Ví dụ sau sử dụng các lệnh analogWrite () và để có được các giá trị độ sáng ngẫu nhiên khác nhau cho đèn LED. Bạn sẽ thấy màu sắc khác nhau thay đổi ngẫu nhiên.
// Đèn LED RGB - màu sắc ngẫu nhiên

// kết nối pin
int đỏ = 9;
int xanh = 10;
int xanh = 11;
void setup () {
  pinMode (màu đỏ, OUTPUT);
  pinMode (màu xanh, OUTPUT);
  pinMode (màu xanh lá cây, OUTPUT);
}
void loop () {
  // chọn một màu ngẫu nhiên
  analogWrite (đỏ, ngẫu nhiên (256));
  analogWrite (màu xanh, ngẫu nhiên (256));
  analogWrite (màu xanh lá cây, ngẫu nhiên (256));
  độ trễ (1000); // đợi một giây
}


Ngẫu nhiên (256)-Trở lại một số ngẫu nhiên trong phạm vi từ 0 đến 255.
Trong tệp đính kèm có một bản phác thảo cho thấy sự chuyển đổi mượt mà của màu sắc từ đỏ sang xanh lục, sau đó sang xanh lam, đỏ, xanh lục, v.v. chuyển tiếp.zip [373 b] (tải xuống: 386)
Một ví dụ phác thảo hoạt động, nhưng có rất nhiều mã trùng lặp. Bạn có thể đơn giản hóa mã bằng cách viết hàm trợ giúp của riêng bạn, nó sẽ thay đổi trơn tru màu này sang màu khác.
Đây là những gì nó sẽ trông như thế nào: function.zip [263 b] (tải xuống: 420)
Chúng ta hãy xem định nghĩa của một chức năng trong các bộ phận. Chức năng được gọi là nhà mốt và có hai đối số. Mỗi đối số được phân tách bằng dấu phẩy và có một loại được khai báo trong dòng đầu tiên của định nghĩa hàm: void fader (int color1, int color2). Bạn thấy rằng cả hai đối số được khai báo là intvà họ được đặt tên màu1màu2 như các biến có điều kiện để xác định hàm. Vô hiệu có nghĩa là hàm không trả về bất kỳ giá trị nào, nó chỉ đơn giản thực hiện các lệnh. Nếu cần phải viết một hàm trả về kết quả của phép nhân, nó sẽ trông như thế này:
số nhân int (int number1, int number2) {

int sản phẩm = số1 * số2;
trả lại sản phẩm;

} 

Lưu ý cách chúng tôi khai báo Loại int như kiểu trả về
khoảng trống.
Bên trong hàm có các lệnh mà bạn đã sử dụng trong bản phác thảo trước đó, chỉ các số pin được thay thế bằng màu1màu2. Chức năng được gọi là nhà mốt, các đối số của nó được tính là màu1 = đỏmàu2 = xanh. Lưu trữ đầy đủ bản phác thảo sử dụng các chức năng Hàm.zip [392 b] (tải xuống: 320)

Nút

Trong bản phác thảo tiếp theo, một nút với các tiếp điểm thường mở sẽ được sử dụng mà không cần sửa.

Arduino cho người mới bắt đầu

Điều này có nghĩa là trong khi nút không được nhấn, dòng điện không chảy qua nó và sau khi phát hành, nút sẽ trở về vị trí ban đầu.
Trong mạch, ngoài nút, một điện trở được sử dụng. Trong trường hợp này, nó không giới hạn dòng điện, nhưng "kéo" nút về 0v (GND). Tức là cho đến khi nút được nhấn vào chân của Arduino mà nó được kết nối, mức sẽ thấp. Các điện trở được sử dụng trong mạch 10 kΩ.

// xác định nút bấm
int nútPin = 7;
void setup () {
  pinMode (buttonPin, INPUT); // khởi tạo pin đầu vào
  Serial.begin (9600); // khởi tạo cổng nối tiếp
}
void loop () {
  if (digitalRead (buttonPin) == CAO) {// nếu nhấn nút
    Serial.println ("đã nhấn"); // in "ép"
  } khác {
    Serial.println ("không được nhấn"); // nếu không "không được nhấn"
  }
}

Có một vài đội mới trong bản phác thảo này.
- Lệnh này lấy giá trị Cao (mức cao) và thấp (mức thấp) của đầu ra mà chúng tôi đang kiểm tra. Đầu tiên, trong setup (), đầu ra này phải được cấu hình cho đầu vào.
; // trong đó buttonPin là số pin nơi nút được kết nối.
Cổng nối tiếp cho phép bạn gửi tin nhắn Arduino đến máy tính, trong khi bộ điều khiển tự chạy chương trình. Điều này rất hữu ích để gỡ lỗi chương trình, gửi tin nhắn đến các thiết bị hoặc ứng dụng khác. Để cho phép truyền dữ liệu qua cổng nối tiếp (còn được gọi là UART hoặc USART), bạn phải khởi tạo nó trong thiết lập ()

Nối tiếp.begin () chỉ có một đối số là tốc độ truyền dữ liệu giữa Arduino và máy tính.
phác thảo, một lệnh được sử dụng để hiển thị một thông báo trên màn hình trong Arduino IDE (Công cụ >> Màn hình nối tiếp).
- thiết kế cho phép bạn kiểm soát tiến trình của chương trình bằng cách kết hợp nhiều kiểm tra ở một nơi.
Nếu (if) digitalRead trả về CAO, thì từ "được nhấn" được hiển thị trên màn hình. Khác (nếu không) từ "vắt" được hiển thị trên màn hình. Bây giờ bạn có thể thử bật và tắt đèn LED chỉ bằng một nút bấm.
// nhấn nút phát hiện với đầu ra LED
int nútPin = 7;
int ledPin = 8;
void setup () {
  pinMode (buttonPin, INPUT); // lần này chúng ta sẽ đặt pin pin là INPUT
  pinMode (ledPin, OUTPUT);
  Nối tiếp.begin (9600);
}
void loop () {
  if (digitalRead (buttonPin) == CAO) {
    kỹ thuật sốWrite (ledPin, CAO);
    Serial.println ("đã nhấn");
  } khác {
    kỹ thuật sốWrite (ledPin, THẤP);
    Serial.println ("không nhấn");
  }
}


Đầu vào tương tự.

tương tự cho phép bạn đọc dữ liệu từ một trong các chân tương tự Arduino và hiển thị một giá trị trong phạm vi từ 0 (0V) đến 1023 (5V). Nếu điện áp ở đầu vào tương tự là 2,5V, thì 2,5 / 5 * 1023 = 512 sẽ được in
tương tự chỉ có một đối số- Đây là số đầu vào tương tự (A0-A5). Phác thảo sau đây cung cấp một mã để đọc điện áp từ chiết áp. Để thực hiện việc này, hãy kết nối một điện trở thay đổi, các chân cực với các chân 5V và GND và chân giữa với đầu vào A0.


Chạy đoạn mã sau và xem trong màn hình nối tiếp cách các giá trị thay đổi tùy thuộc vào vòng quay của núm điện trở.
// đầu vào tương tự

int potPin = A0; // đầu ra trung tâm của chiết áp được kết nối với pin này

void setup () {
  // pin analog được bật theo đầu vào theo mặc định, do đó không cần khởi tạo
  Nối tiếp.begin (9600);
}

void loop () {
  int potVal = analogRead (potPin); // potVal là một số trong khoảng từ 0 đến 1023
  Nối tiếp.println (potVal);
}

Bản phác thảo tiếp theo kết hợp một bản phác thảo nhấp vào nút và bản phác thảo kiểm soát độ sáng LED. Đèn LED sẽ bật từ nút và chiết áp sẽ kiểm soát độ sáng của ánh sáng.
// phát hiện nhấn nút với đầu ra LED và cường độ thay đổi
int nútPin = 7;
int ledPin = 9;
int potPin = A0;
void setup () {
  pinMode (buttonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Nối tiếp.begin (9600);
}
void loop () {
  if (digitalRead (buttonPin) == CAO) {// nếu nhấn nút
    int analogVal = analogRead (potPin);
    int scaledVal = map (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // bật led với cường độ được đặt bởi pot
    Serial.println ("đã nhấn");
  } khác {
    digitalWrite (ledPin, THẤP); // tắt nếu không nhấn nút
    Serial.println ("không nhấn");
  }
}
8.7
9
9

Thêm một bình luận

    • cườinhững nụ cườixaxađược rồikhông biếtyahookhông
      ông chủvết xướcđồ ngốcvângvâng-vânghung hăngbí mật
      xin lỗinhảynhảy2nhảy3ân xágiúp đỡđồ uống
      dừng lạibạn bètốttốt lànhcòingấtlưỡi
      hút thuốcvỗ taycraytuyên bốgiễu cợtdon-t_mentiontải về
      nhiệttôi rấtcười1mdacuộc họpmoskingtiêu cực
      không phảibỏng ngôtrừng phạtđọcsợsợ hãitìm kiếm
      chế nhạocảm ơncái nàyto_cluecựu sinh viêncấp tínhđồng ý
      xấubeeeđen_eyeblum3đỏ mặttự hàobuồn chán
      bị kiểm duyệtdễ chịubí mật2đe dọachiến thắngyusun_bespectacled
      shokrespekthahacó trướcchào mừngkrutoyya_za
      ya_dobryingười trợ giúpne_huliganne_othodifludcấmđóng
4 bình luận
Đây là cách nó hoạt động như bình thường - // tăng dần độ sáng (0 đến 255)
for (int độ sáng = 0; độ sáng <= 255; độ sáng ++) {
analogWrite (ledPin, độ sáng);
trì hoãn (5);
lúc biên dịch bị lỗi Arduino: 1.6.5 (Windows 7), Bảng "Arduino Nano, ATmega328"

sketch_sep20a: 25: error: khai báo dự kiến ​​trước mã thông báo '}'
khai báo dự kiến ​​trước mã thông báo '}'
Tôi đã sao chép bản phác thảo của đánh lửa trơn tru.
Đèn LED của tôi sáng lên mạnh mẽ, nhưng nó tắt đi một cách trơn tru.

Hãy giải thích.
Tôi đã sao chép bản phác thảo của đánh lửa trơn tru.
Đèn LED của tôi sáng lên mạnh mẽ, nhưng nó tắt đi một cách trơn tru.

Hãy giải thích.

Chúng tôi khuyên bạn nên đọc:

Đưa nó cho điện thoại thông minh ...