Đào tạo Arduino uno. Cám ơn vì sự quan tâm của bạn! Học Arduino: Công cụ và kỹ thuật cho thuật sĩ kỹ thuật

Bạn sẽ cần

  • Bảng Arduino UNO;
  • cáp USB (USB A - USB B);
  • Máy tính cá nhân;
  • Điốt phát sáng;
  • một cặp dây nối dài 5-10 cm;
  • nếu có - bảng mạch.
Arduino IDE

Tải xuống môi trường phát triển Arduino (Arduino IDE) từ trang web chính thức cho hệ điều hành của bạn (hỗ trợ Windows, Mac OS X, Linux). Bạn có thể chọn trình cài đặt ( Trình cài đặt), bạn có thể lưu trữ ( Tệp ZIP để cài đặt không phải quản trị viên). Trong trường hợp thứ hai, chương trình chỉ được khởi chạy từ thư mục mà không cần cài đặt. Tệp đã tải xuống, ngoài môi trường phát triển, còn chứa trình điều khiển cho các bo mạch thuộc họ Arduino.

Đang tải môi trường phát triển Arduino IDE từ trang web chính thức

2 Kết nối Arduinođến máy tính

Kết nối bo mạch Arduino bằng cáp USB (loại USB-A đến USB-B) với máy tính. Đèn LED BẬT màu xanh lục trên bảng sẽ sáng lên.


Cáp USB-A đến USB-B dành cho Kết nối Arduinođến máy tính

3 Cài đặt trình điều khiển cho Arduino

Cài đặt trình điều khiển cho Arduino. Hãy xem xét phương án lắp đặt nó trong phòng mổ Hệ thống Windows. Để thực hiện việc này, hãy đợi cho đến khi hệ điều hành nhắc bạn cài đặt trình điều khiển. Sự suy sụp. Nhấn các phím Thắng + Tạm dừng, chạy quản lý thiết bị. Tìm một phần "Cổng (COM và LPT)". Bạn sẽ thấy một cổng ở đó có tên Arduino UNO (COMxx). Nhấp chuột click chuột phải chuột vào đó và chọn Cập nhật driver. Chỉ định hệ điều hành vị trí lái xe. Nó nằm trong thư mục con trình điều khiển trong thư mục chúng tôi vừa tải xuống.

Lưu ý cổng mà bo mạch Arduino được kết nối. Để tìm số cổng, hãy khởi chạy Trình quản lý thiết bị và tìm phần “Cổng (COM và LPT)”. Số cổng sẽ được ghi trong ngoặc đơn sau tên bo mạch. Nếu bo mạch không có trong danh sách, hãy thử ngắt kết nối nó khỏi máy tính và đợi vài giây rồi kết nối lại.

Arduino trong Trình quản lý thiết bị Windows

4 Cài đặt Arduino IDE

Trỏ môi trường phát triển của bạn vào bảng của bạn. Để làm điều này trong menu Bảng công cụ lựa chọn Arduino UNO.


Chọn bảng Arduino UNO trong cài đặt

Chỉ định số cổng COM mà bo mạch Arduino được kết nối: Cổng công cụ.


Đặt cổng nối tiếp mà bo mạch Arduino được kết nối

5 Mở ví dụ chương trình

Môi trường phát triển đã chứa nhiều chương trình ví dụ để nghiên cứu hoạt động của bo mạch. Mở ví dụ "Blink": Tệp mẫu 01.Basics Blink.Nhân tiện, các chương trình dành cho Arduino được gọi là “bản phác thảo”.


Mở một bản phác thảo ví dụ cho Arduino

6 lắp ráp mạch với đèn LED

Ngắt kết nối Arduino khỏi máy tính. Lắp ráp mạch như hình vẽ. Lưu ý chân ngắn của LED phải nối với chân GND, chân dài với chân digital “13” Bo mạch Arduino. Thật thuận tiện khi sử dụng bảng mạch, nhưng nếu bạn không có, hãy kết nối dây bằng một vòng xoắn.

Chân kỹ thuật số "13" có điện trở tích hợp trên bảng. Do đó, khi kết nối đèn LED với bảng mạch, không cần thiết phải sử dụng điện trở hạn chế dòng điện bên ngoài. Khi kết nối đèn LED với bất kỳ chân Arduino nào khác, cần phải sử dụng điện trở, nếu không bạn sẽ làm cháy đèn LED và trong trường hợp xấu nhất là cổng Arduino mà đèn LED được kết nối!


Sơ đồ kết nối LED với Arduino trong bộ nhớ Arduino

Bây giờ bạn có thể tải chương trình vào bộ nhớ của bo mạch. Kết nối bo mạch với máy tính, đợi vài giây trong khi bo mạch khởi chạy. Nhấn vào nút Tải xuống và bản phác thảo của bạn sẽ được ghi vào bộ nhớ của bo mạch Arduino. Đèn LED sẽ bắt đầu nhấp nháy vui vẻ với bạn cứ sau 2 giây (bật 1 giây, tắt 1 giây). Dưới đây là mã cho chương trình Arduino đầu tiên của chúng tôi.

thiết lập void() (// khối khởi tạo pinMode(13, OUTPUT); // đặt chân 13 làm đầu ra. } vòng lặp trống() (// vòng lặp lặp đi lặp lại vô tận cho đến khi bo mạch được bật: digitalWrite(13, HIGH); // áp dụng mức cao cho chân 13 - bật đèn LED trễ (1000); // trong 1000 ms = 1 giây. digitalWrite(13, THẤP); // áp dụng mức thấp cho chân 13 - tắt độ trễ LED (1000); // trong 1 giây. } // sau đó chu kỳ lặp lại

Đọc các nhận xét trong nội dung của chương trình - chúng đủ để hiểu thử nghiệm đầu tiên của chúng tôi. Đầu tiên chúng ta mô tả khối khởi tạo cài đặt(), trong đó chúng tôi đặt giá trị ban đầu các biến và chức năng chân Arduino. Một vòng lặp vô tận theo sau vòng(), điều này lặp đi lặp lại miễn là bo mạch được cấp nguồn. Trong chu trình này, chúng tôi thực hiện tất cả các hành động cần thiết. TRONG trong trường hợp này- bật và tắt đèn LED. Nhà điều hành trì hoãn() chỉ định thời lượng thực hiện (tính bằng mili giây) của câu lệnh trước đó. Nhà điều hành Viết kỹ thuật số() cho Arduino biết chân nào sẽ được cấp điện áp và mức điện áp nào. Bản phác thảo đầu tiên của bạn đã sẵn sàng!

Có rất nhiều trang web trên Internet dành riêng cho việc làm việc với các bo mạch gia đình Arduino. Hãy đọc đi, chủ nhân, đừng ngại thử nghiệm và học hỏi những điều mới! Đây là một hoạt động thú vị và bổ ích sẽ mang lại cho bạn rất nhiều niềm vui.

ghi chú

Hãy cẩn thận khi làm việc với bo mạch Arduino - điều này sản phẩm điện tửđòi hỏi thái độ cẩn thận. Ở dưới cùng của bảng có các dây dẫn lộ ra ngoài và nếu bạn đặt bảng trên bề mặt dẫn điện thì có khả năng làm bảng bị cháy. Ngoài ra, không chạm vào bảng khi tay ẩm hoặc ướt và tránh những nơi ẩm ướt khi làm việc.

Bài viết này sẽ giúp bạn bắt đầu với Arduino và bao gồm mô tả về các loại Arduino khác nhau, cách tải xuống môi trường phát triển phần mềm Arduino và mô tả bảng khác nhau và các phụ kiện có sẵn cho Arduino mà bạn sẽ cần để phát triển các dự án Arduino.

Arduino là một bộ điều khiển bo mạch đơn mở mã nguồn, có thể được sử dụng trong nhiều ứng dụng khác nhau. Đây có lẽ là lựa chọn vi điều khiển đơn giản và rẻ nhất dành cho những người có sở thích, sinh viên và chuyên gia phát triển các dự án dựa trên vi điều khiển. Các bo mạch Arduino sử dụng bộ vi điều khiển Atmel AVR hoặc bộ vi điều khiển Atmel ARM và một số có Giao diện USB. Chúng cũng có sáu chân đầu vào tương tự trở lên và mười bốn chân đầu vào/đầu ra kỹ thuật số (I/O) trở lên, được sử dụng để kết nối các cảm biến, bộ truyền động và các thiết bị khác với bộ vi điều khiển. mạch ngoại vi. Giá của bo mạch Arduino, tùy thuộc vào bộ chức năng, dao động từ sáu đến bốn mươi đô la.

Các loại bo mạch Arduino

Có nhiều loại bo mạch Arduino khác nhau, như được hiển thị trong danh sách bên dưới, mỗi loại có bộ tính năng riêng. Chúng khác nhau về tốc độ xử lý, bộ nhớ, cổng I/O và khả năng kết nối, nhưng chức năng cốt lõi vẫn giống nhau.

  • Robot Arduino
  • Arduino Ethernet

Đối với nhiều loại bo mạch Arduino và chúng mô tả kỹ thuật có thể được xem trong phần phụ "Mua" của trang web này.

Phần mềm (IDE)

Phần mềm dùng để lập trình Arduino là Arduino IDE. IDE là ứng dụng Java, hoạt động trên trường quay nền tảng khác nhau, bao gồm cả hệ thống PC, Mac và Linux. Nó được thiết kế dành cho người mới bắt đầu chưa quen với lập trình. Nó bao gồm một trình soạn thảo, trình biên dịch và trình tải. IDE cũng bao gồm các thư viện mã để sử dụng các thiết bị ngoại vi như cổng nối tiếp và các loại màn hình khác nhau. Các chương trình Arduino được gọi là "bản phác thảo" và được viết bằng ngôn ngữ rất giống với C hoặc C++.

Hầu hết các bo mạch Arduino kết nối với máy tính bằng cáp USB. Kết nối này cho phép bạn tải các bản phác thảo lên bo mạch Arduino của mình và cũng cung cấp năng lượng cho bo mạch.

Cáp USB cho Arduino

Lập trình

Lập trình Arduino rất dễ dàng: trước tiên bạn sử dụng trình soạn thảo mã của IDE để viết chương trình, sau đó biên dịch và tải chương trình lên chỉ bằng một cú nhấp chuột.

Chương trình Arduino bao gồm hai chức năng chính:

  • cài đặt()
  • vòng()

Bạn có thể sử dụng hàm setup() để khởi tạo cài đặt bảng. Chức năng này chỉ được thực hiện một lần khi bo mạch được bật.

Hàm loop() chạy sau khi hàm setup() hoàn thành và không giống như hàm setup(), nó chạy liên tục.

Chức năng chương trình

Dưới đây là danh sách các chức năng được sử dụng phổ biến nhất khi Lập trình Arduino:

  • pinMode - đặt pin ở chế độ đầu vào hoặc đầu ra;
  • analogRead - đọc điện áp tương tự trên chân đầu vào tương tự;
  • analogWrite - ghi điện áp analog vào chân đầu ra analog;
  • digitalRead - đọc giá trị của chân đầu vào kỹ thuật số;
  • digitalWrite - đặt giá trị của chân đầu ra kỹ thuật số ở mức cao hoặc thấp;
  • Serial.print - ghi dữ liệu vào cổng nối tiếp ở dạng văn bản ASCII mà con người có thể đọc được.

Thư viện Arduino

Thư viện Arduino là tập hợp các hàm cho phép bạn điều khiển các thiết bị. Dưới đây là một số thư viện được sử dụng rộng rãi nhất:

  • EEPROM - đọc và ghi vào bộ lưu trữ “vĩnh viễn”;
  • Ethernet - để kết nối với Internet bằng bo mạch Arduino Ethernet Shield;
  • Firmata - để giao tiếp với các ứng dụng trên máy tính bằng giao thức nối tiếp tiêu chuẩn;
  • GSM - để kết nối với mạng GSM/GRPS bằng thẻ GSM;
  • LiquidCrystal - để điều khiển màn hình tinh thể lỏng (LCD);
  • SD - để đọc và ghi thẻ SD;
  • servo - để điều khiển servo;
  • SPI - để liên lạc với các thiết bị sử dụng bus SPI;
  • SoftwareSerial - để liên lạc nối tiếp thông qua bất kỳ chân kỹ thuật số nào;
  • Stepper - để điều khiển động cơ bước;
  • TFT - để vẽ văn bản, hình ảnh và hình dạng trên màn hình Arduino TFT;
  • WiFi - để kết nối Internet bằng tấm chắn Arduino WiFi;
  • Dây - giao diện hai dây (TWI/I2C) để truyền và nhận dữ liệu qua mạng thiết bị hoặc cảm biến.

Các bước thiết lập Arduino


Lưu ý: Bạn có thể cần cài đặt trình điều khiển nếu hệ thống của bạn không phát hiện được Arduino.

" là khoa Huân luyện"Arduino cho người mới bắt đầu." Bộ sách bao gồm 10 bài học và tài liệu bổ sung. Bài học bao gồm hướng dẫn bằng văn bản, hình ảnh và video hướng dẫn. Trong mỗi bài học bạn sẽ tìm thấy một danh sách thành phần cần thiết, danh sách chương trình và sơ đồ kết nối. Sau khi hoàn thành 10 bài học cơ bản này, bạn sẽ có thể chuyển sang các mô hình và cách chế tạo robot dựa trên Arduino thú vị hơn. Khóa học dành cho người mới bắt đầu; không cần thêm thông tin về kỹ thuật điện hoặc robot để bắt đầu.

Thông tin tóm tắt về Arduino

Arduino là gì?

Arduino (Arduino) là một nền tảng điện toán phần cứng, các thành phần chính là bảng đầu vào-đầu ra và môi trường phát triển. Arduino có thể được sử dụng để tạo các đối tượng tương tác độc lập và kết nối với phần mềm thực thi trên máy tính. Arduino là một máy tính bo mạch đơn.

Arduino và robot được kết nối như thế nào?

Câu trả lời rất đơn giản - Arduino thường được sử dụng như bộ não robot.

Ưu điểm của bo mạch Arduino so với các nền tảng tương tự là giá tương đối thấp và thực tế phân phối đại chúng giữa những người nghiệp dư và chuyên nghiệp về robot và kỹ thuật điện. Khi bạn tham gia vào Arduino, bạn sẽ tìm thấy sự hỗ trợ bằng bất kỳ ngôn ngữ nào và những người cùng chí hướng sẽ trả lời câu hỏi của bạn và thảo luận về sự phát triển của bạn.

Bài 1. Đèn LED nhấp nháy trên Arduino

Trong bài học đầu tiên, bạn sẽ học cách kết nối đèn LED với Arduino và điều khiển nó nhấp nháy. Đây là mô hình đơn giản và cơ bản nhất.

Điốt phát sángthiết bị bán dẫn, tạo ra bức xạ quang học khi có dòng điện chạy qua nó theo chiều thuận.

Bài 2. Kết nối một nút trên Arduino

Trong hướng dẫn này, bạn sẽ tìm hiểu cách kết nối nút và đèn LED với Arduino.

Khi nhấn nút đèn LED sẽ sáng, khi nhấn nút đèn LED sẽ không sáng. Đây cũng là mô hình cơ sở

Bài 3. Kết nối chiết áp trên Arduino

Trong hướng dẫn này, bạn sẽ học cách kết nối chiết áp với Arduino.

Chiết áp- Cái này điện trở có điện trở điều chỉnh được.Chiết áp được sử dụng làm bộ điều chỉnh thông số khác nhau- Âm lượng, công suất, điện áp, v.v.Đây cũng là một trong mạch cơ bản. Trong mô hình của chúng tôi từ việc xoay núm chiết ápĐộ sáng của đèn LED sẽ phụ thuộc.

Bài 4. Điều khiển servo trên Arduino

Trong hướng dẫn này, bạn sẽ tìm hiểu cách kết nối servo với Arduino.

Động cơ phụlà động cơ có thể điều khiển được vị trí trục bằng cách thiết lập góc quay.

Các servo được sử dụng để mô phỏng các chuyển động cơ học khác nhau của robot.

Bài 5. LED 3 màu trên Arduino

Trong hướng dẫn này, bạn sẽ tìm hiểu cách kết nối đèn LED ba màu với Arduino.

Đèn LED ba màu(đèn led rgb) - đây là ba đèn LED có màu khác nhau trong một vỏ. Chúng có kích thước nhỏ bảng mạch in, trên đó có các điện trở và không có điện trở tích hợp. Bài học bao gồm cả hai lựa chọn.

Bài 6. Phần tử áp điện trên Arduino

Trong bài học này, bạn sẽ học cách kết nối phần tử áp điện với Arduino.

phần tử áp điệnbộ chuyển đổi cơ điện, dịchđiện áp vào sự rung động của màng. Những rung động này tạo ra âm thanh.

Trong mô hình của chúng tôi, tần số âm thanh có thể được điều chỉnh bằng cách cài đặt các thông số thích hợp trong chương trình.

Bài 7. Điện trở quang trên Arduino

Trong bài học này của khóa học của chúng tôi, bạn sẽ học cách kết nối điện trở quang với Arduino.

Điện trở quang- một điện trở có điện trở phụ thuộc vào độ sáng của ánh sáng chiếu vào nó.

Trong mô hình của chúng tôi, đèn LED chỉ sáng nếu độ sáng của ánh sáng phía trên điện trở quang nhỏ hơn một mức nhất định; độ sáng này có thể được điều chỉnh trong chương trình.

Bài 8. Cảm biến chuyển động (PIR) trên Arduino. Tự động gửi E-mail

Trong bài học này của khóa học của chúng tôi, bạn sẽ học cách kết nối cảm biến chuyển động (PIR) với Arduino, cũng như sắp xếp gửi tự động e-mail.

Cảm biến chuyển động (PIR)cảm biến hồng ngoạiđể phát hiện chuyển động hoặc sự hiện diện của người hoặc động vật.

Trong mô hình của chúng tôi, khi nhận được tín hiệu về chuyển động của con người từ cảm biến PIR, Arduino sẽ gửi lệnh đến máy tính để gửi E-mail và thư sẽ được gửi tự động.

Bài 9. Đấu nối cảm biến nhiệt độ, độ ẩm DHT11 hoặc DHT22

Trong bài học này của chúng tôi, bạn sẽ học cách kết nối cảm biến nhiệt độ và độ ẩm DHT11 hoặc DHT22 với Arduino, đồng thời làm quen với sự khác biệt về đặc điểm của chúng.

Cảm biến nhiệt độ và độ ẩm là một cảm biến kỹ thuật số tổng hợp bao gồm cảm biến độ ẩm điện dung và nhiệt điện trở để đo nhiệt độ.

Trong mô hình của chúng tôi, Arduino đọc số đọc cảm biến và hiển thị số đọc trên màn hình máy tính.

Bài 10. Kết nối bàn phím ma trận

Trong bài học này của khóa học của chúng tôi, bạn sẽ học cách kết nối bàn phím ma trận với bảng Arduino, đồng thời làm quen với nhiều mạch thú vị khác nhau.

Bàn phím ma trậnđược thiết kế để đơn giản hóa kết nối số lượng lớn nút Những thiết bị như vậy được tìm thấy ở khắp mọi nơi - trong bàn phím máy tính, máy tính, v.v.

Bài 11. Kết nối module đồng hồ thời gian thực DS3231

Trong bài học cuối cùng của khóa học của chúng tôi, bạn sẽ học cách kết nối mô-đun đồng hồ thời gian thực từ gia đình
DS vào bo mạch Arduino, đồng thời làm quen với nhiều mạch điện thú vị khác nhau.

Mô-đun đồng hồ thời gian thực- đây là một mạch điện tử được thiết kế để ghi lại dữ liệu thời gian (thời gian hiện tại, ngày, ngày trong tuần, v.v.) và là một hệ thống bao gồm nguồn điện tự trị và thiết bị ghi âm.

Ứng dụng. Khung làm sẵn và robot Arduino


Bạn có thể bắt đầu học Arduino không chỉ từ chính bảng mạch mà còn bằng cách mua một rô-bốt hoàn chỉnh, làm sẵn dựa trên bảng này - rô-bốt nhện, ô tô rô-bốt, rô-bốt rùa, v.v. Như làđường thích hợp cho những người mạch điện không đặc biệt hấp dẫn.

Bằng cách mua một mô hình robot đang hoạt động, tức là. trên thực tế, một món đồ chơi công nghệ cao làm sẵn có thể đánh thức sự quan tâm đến thiết kế độc lập và chế tạo robot. Tính mở của nền tảng Arduino cho phép từ đó các thành phần tự làm cho mình những đồ chơi mới.

Một lựa chọn khác là mua khung hoặc thân robot: bệ trên bánh xe hoặc đường ray, robot hình người, nhện, v.v. Trong trường hợp này, bạn sẽ phải tự mình thực hiện việc nhồi robot.

Ứng dụng. Danh bạ di động


– một trợ lý dành cho các nhà phát triển thuật toán cho nền tảng Arduino, mục đích của nó là cung cấp người dùng cuối cơ hội để có quay số di động lệnh (sách tham khảo).

Ứng dụng bao gồm 3 phần chính:

  • Người vận hành;
  • Dữ liệu;
  • Chức năng.

Mua Arduino ở đâu


bộ dụng cụ Arduino

Khóa học sẽ được cập nhật bài học bổ sung. Theo chúng tôi

Việc nghiên cứu vi điều khiển có vẻ phức tạp và khó hiểu? Trước khi Arudino xuất hiện thực sự không hề dễ dàng và cần thiết bộ cụ thể lập trình viên và các thiết bị khác.

Đó là loại nhà thiết kế điện tử. Mục tiêu ban đầu của dự án là cho phép mọi người dễ dàng học lập trình các thiết bị điện tử, trong khi thanh toán thời gian tối thiểu phần điện tử.

Việc lắp ráp các mạch phức tạp và kết nối các bảng có thể được thực hiện mà không cần mỏ hàn mà sử dụng các nút nhảy có kết nối có thể tháo rời"cha và mẹ". Bằng cách này, cả phần tử được gắn và bảng mở rộng đều có thể được kết nối, mà trong từ điển Arduino được gọi đơn giản là “Shields”.

Bo mạch Arduino đầu tiên nên mua cho người mới bắt đầu là gì?

Nó được coi là bảng cơ bản và phổ biến nhất. Bảng này có kích thước như thẻ tín dụng. Khá là lớn. Hầu hết các tấm chắn được bán đều phù hợp hoàn hảo với nó. Bảng mạch có ổ cắm để kết nối các thiết bị bên ngoài.

Tại các cửa hàng trong nước năm 2017, giá của nó là khoảng 4-5 đô la. Trên các mẫu hiện đại, trái tim của nó là Atmega328.

Hình ảnh board Arduino và giải thích chức năng của từng chân, sơ đồ chân Arduino UNO

Bộ vi điều khiển trên bo mạch này là một con chip dài đóng gói DIP28, nghĩa là nó có 28 chân.

Bảng phổ biến nhất tiếp theo có giá gần gấp đôi so với bảng trước - 2-3 đô la. Đây là một khoản phí. Các bo mạch hiện tại được xây dựng trên cùng một Atmega328, chúng có chức năng tương tự như UNO, sự khác biệt là về kích thước và giải pháp phối hợp với USB, sẽ nói thêm về điều này sau. Một điểm khác biệt nữa là phích cắm hình chốt được cung cấp để kết nối các thiết bị với bo mạch.

Số lượng chân (chân) của bo mạch này là như nhau, nhưng bạn có thể thấy rằng bộ vi điều khiển được làm nhiều hơn. cơ thể nhỏ gọn TQFP32, ADC6 và ADC7 được thêm vào thùng máy, 2 chân “phụ” còn lại nhân đôi bus nguồn. Kích thước của nó khá nhỏ gọn - chỉ bằng kích thước ngón tay cái của bạn.

Bảng phổ biến thứ ba là nó không có cổng USB để kết nối với máy tính, tôi sẽ cho bạn biết cách kết nối được thực hiện sau.

Đây là bo mạch nhỏ nhất trong số các bo mạch được đánh giá, nếu không thì nó tương tự như hai bo mạch trước và trái tim của nó vẫn là Atmega328. Chúng tôi sẽ không xem xét các bảng khác, vì đây là bài viết dành cho người mới bắt đầu và các bảng so sánh là chủ đề cho một bài viết riêng.

Phía trên có sơ đồ Kết nối USB-UART, chân “GRN” - được định tuyến đến mạch thiết lập lại của vi điều khiển, nó có thể được gọi khác, bạn sẽ tìm hiểu lý do tại sao điều này lại cần thiết sau.

Nếu UNO thuận tiện cho việc tạo mẫu thì Nano và Pro Mini thuận tiện cho việc phiên bản cuối cùng dự án của bạn vì chúng chiếm ít không gian.

Làm thế nào để kết nối Arduino với máy tính?

Arduino Uno và Nano kết nối với máy tính qua USB. Tuy nhiên, không có hỗ trợ phần cứng cho cổng USB; thiết kế mạch chuyển đổi cấp độ, thường được gọi là USB-to-serial hoặc USB-UART (rs-232). Đồng thời, một bộ tải khởi động Arduino đặc biệt được flash vào bộ vi điều khiển, cho phép flash qua các bus này.

Arduino Uno thực hiện kết nối này trên bộ vi điều khiển có hỗ trợ USB - ATmega16U2 (AT16U2). Hóa ra là cần có một bộ vi điều khiển bổ sung trên bo mạch để flash phần sụn của bộ vi điều khiển chính.

Trong Arduino Nano, điều này được thực hiện bởi chip FT232R hoặc CH340 tương tự của nó. Đây không phải là một bộ vi điều khiển - nó là một bộ chuyển đổi cấp độ, thực tế này giúp việc lắp ráp Arduino Nano từ đầu bằng tay của bạn trở nên dễ dàng hơn.

Thông thường, trình điều khiển được cài đặt tự động khi bạn kết nối bo mạch Arduino. Tuy nhiên, khi tôi mua Bản sao tiếng Trung Arduino Nano, thiết bị đã được xác định, nhưng nó không hoạt động, một nhãn dán tròn có thông tin về ngày phát hành được dán trên bộ chuyển đổi, tôi không biết việc này có mục đích hay không, nhưng khi tôi bóc nó ra, tôi thấy dấu CH340.

Tôi chưa bao giờ gặp phải điều này trước đây và nghĩ rằng tất cả các bộ chuyển đổi USB-UART đều được lắp ráp trên FT232, tôi phải tải xuống trình điều khiển, chúng rất dễ tìm thấy bằng cách tìm kiếm “trình điều khiển Arduino ch340”. Sau khi cài đặt đơn giản, mọi thứ đã hoạt động!

Bộ vi điều khiển cũng có thể được cấp nguồn thông qua cùng một cổng USB, tức là. nếu bạn kết nối nó với một bộ chuyển đổi từ điện thoại di động- hệ thống của bạn sẽ hoạt động.

Tôi nên làm gì nếu bo mạch của tôi không có USB?

Chi trả Arduino chuyên nghiệp Mini có kích thước nhỏ hơn. Điều này đạt được bằng cách loại bỏ thiết bị kết nối USB cho phần sụn và cùng bộ chuyển đổi USB-UART. Vì vậy, nó phải được mua riêng. Bộ chuyển đổi đơn giản nhấtđối với CH340 (rẻ nhất), CPL2102 và FT232R, nó được bán từ 1 USD.

Khi mua, hãy chú ý đến điện áp mà bộ chuyển đổi này được thiết kế. Pro mini có phiên bản 3,3 và 5 V; bộ chuyển đổi thường có một nút nhảy để chuyển đổi điện áp nguồn.

Khi flash firmware Pro Mini, ngay trước khi khởi động, bạn cần nhấn RESET, tuy nhiên, ở các bộ chuyển đổi có DTR thì điều này là không cần thiết, sơ đồ kết nối như trong hình bên dưới.

Chúng được kết nối với các thiết bị đầu cuối “Mama-Mama” (nữ-nữ) đặc biệt.

Trên thực tế, tất cả các kết nối có thể được thực hiện bằng cách sử dụng các thiết bị đầu cuối như vậy (Dupont), chúng có cả hai mặt có ổ cắm và phích cắm, và một mặt có ổ cắm và mặt kia có phích cắm.

Làm thế nào để viết chương trình cho Arduino?

Để làm việc với các bản phác thảo (tên chương trình cơ sở theo ngôn ngữ của các kỹ sư Arduino), có một môi trường phát triển tích hợp đặc biệt cho Arduino IDE, bạn có thể tải xuống miễn phí từ trang web chính thức hoặc từ bất kỳ tài nguyên chuyên đề nào; thường không có vấn đề gì với cài đặt.

Giao diện chương trình trông như thế này. Bạn có thể viết chương trình bằng ngôn ngữ C AVR đơn giản được phát triển đặc biệt cho Arduino, về cơ bản là một tập hợp các thư viện có tên Wiring, cũng như trong C AVR thuần túy. Việc sử dụng nó giúp đơn giản hóa mã và tăng tốc hoạt động của nó.

Ở đầu cửa sổ có một menu quen thuộc nơi bạn có thể mở tệp, cài đặt, chọn bảng bạn đang làm việc (Uno, Nano và nhiều bảng khác) cũng như mở các dự án với các ví dụ mã được tạo sẵn. Dưới đây là một bộ nút để làm việc với phần sụn, bạn sẽ thấy cách gán các phím trong hình bên dưới.

Ở dưới cùng của cửa sổ có một khu vực hiển thị thông tin về dự án, trạng thái của mã, chương trình cơ sở và sự hiện diện của lỗi.

Cơ bản về lập trình Arduino IDE

Khi bắt đầu mã bạn cần khai báo các biến và bao gồm các thư viện bổ sung, nếu có, việc này được thực hiện như sau:

#include biblioteka.h; // kết nối thư viện có tên “Biblioteka.h”

#define thay đổi 1234; // Khai báo một biến có giá trị 1234

Lệnh Xác định cho phép trình biên dịch tự chọn loại biến, nhưng bạn có thể đặt nó theo cách thủ công, ví dụ: số nguyên int hoặc dấu phẩy động.

int led = 13; // tạo biến “led” và gán cho nó giá trị “13”

Chương trình có thể xác định trạng thái của chân là 1 hoặc 0. 1 là đơn vị logic, nếu chân 13 là 1 thì điện áp trên chân vật lý của nó sẽ bằng điện áp cung cấp của vi điều khiển (đối với Arduino UNO và Nano - 5V)

Ghi tín hiệu kĩ thuật sốđược thực hiện bằng lệnh digitalWrite (pin, value), ví dụ:

digitalWrite(led, cao); // viết một cái vào chân 13 (chúng tôi đã khai báo ở trên) log. Các đơn vị.

Như bạn có thể hiểu, các cổng được truy cập theo cách đánh số trên bảng, tương ứng với số đó. Đây là một ví dụ tương tự như mã trước đó:

digitalWrite(13, cao); // đặt chân 13 thành một

Hàm trễ thời gian được sử dụng thường xuyên được gọi bằng lệnh delay(), giá trị của nó được chỉ định bằng mili giây, micro giây đạt được bằng cách sử dụng

delayMicroseconds() Độ trễ (1000); //vi điều khiển sẽ đợi 1000 ms (1 giây)

Cài đặt cổng đầu vào và đầu ra được chỉ định trong hàm void setup() bằng lệnh:

pinMode(NOMERPORTA, OUTPUT/INPUT); // đối số - tên biến hoặc số cổng, đầu vào hoặc đầu ra để chọn

Tìm hiểu chương trình Blink đầu tiên

Là một loại “Xin chào thế giới” dành cho vi điều khiển, có một chương trình nhấp nháy đèn LED, chúng ta hãy xem mã của nó:

Lúc đầu, với lệnh pinMode, chúng tôi đã yêu cầu bộ vi điều khiển gán cổng có đèn LED cho đầu ra. Bạn đã nhận thấy rằng trong mã không có khai báo biến “LED_BUILTIN”, thực tế là trong Uno, Nano và các bo mạch khác, một đèn LED tích hợp được kết nối với chân 13 từ nhà máy và nó được hàn trên Cái bảng. Bạn có thể sử dụng nó để hiển thị trong các dự án của mình hoặc cho kiểm tra đơn giản nhất chương trình nhấp nháy của bạn.

Tiếp theo, chúng tôi đặt chân mà đèn LED được hàn vào một đơn vị (5 V), hàng tiếp theo làm cho MK đợi 1 giây, sau đó đặt chân LED_BUILTIN về 0, đợi một giây và chương trình lặp lại theo vòng tròn, vì vậy khi LED_BUILTIN bằng 1, đèn LED (và mọi tải khác được kết nối với cổng) sẽ bật , khi ở mức 0, nó bị tắt.

Chúng tôi đọc giá trị từ cổng analog và sử dụng dữ liệu đọc

Bộ vi điều khiển AVR Atmega328 có bộ điều khiển analog 10 bit tích hợp bộ chuyển đổi kỹ thuật số. ADC 10 bit cho phép bạn đọc các giá trị điện áp từ 0 đến 5 volt, theo các bước 1/1024 của toàn bộ dao động biên độ tín hiệu (5 V).

Để rõ ràng hơn, hãy xem xét tình huống, giả sử giá trị điện áp ở đầu vào analog là 2,5 V, có nghĩa là bộ vi điều khiển sẽ đọc giá trị từ chân “512”, nếu điện áp là 0 - “0” và nếu 5 V-(1023). 1023 - vì việc đếm bắt đầu từ 0, tức là 0, 1, 2, 3, v.v. tổng cộng lên tới 1023 - 1024 giá trị.

Đây là giao diện của nó trong mã, sử dụng bản phác thảo “analogInput” tiêu chuẩn làm ví dụ

int cảm biếnPin = A0;

int ledPin = 13;

int cảm biếnValue = 0;

pinMode(ledPin, OUTPUT);

cảm biếnValue = analogRead(sensorPin);

digitalWrite(ledPin, CAO);

độ trễ (giá trị cảm biến);

digitalWrite(ledPin, THẤP);

độ trễ (giá trị cảm biến);

Chúng ta khai báo các biến:

    Ledpin - chúng tôi chỉ định độc lập một chân có đèn LED tích hợp cho đầu ra và đặt tên riêng cho nó;

    cảm biếnPin - đầu vào tương tự, được đặt theo các dấu trên bảng: A0, A1, A2, v.v.;

    cảm biếnValue - một biến để lưu trữ giá trị đọc số nguyên và công việc tiếp theo với anh ấy.

Mã hoạt động như thế này: cảm biếnValue lưu giá trị tương tự được đọc từ cảm biếnPin (lệnh analogRead). - ở đây làm việc với tín hiệu tương tự kết thúc thì mọi thứ sẽ giống như trong ví dụ trước.

Chúng ta viết một cái vào ledPin, đèn LED sẽ bật và đợi một thời gian bằng giá trị cảm biến, tức là. từ 0 đến 1023 mili giây. Chúng ta tắt đèn LED và đợi lại khoảng thời gian này, sau đó mã sẽ lặp lại.

Do đó, bằng cách định vị chiết áp, chúng ta đặt tần số nhấp nháy của đèn LED.

Chức năng bản đồ cho Arudino

Không phải tất cả các chức năng của bộ truyền động (tôi không biết bất kỳ chức năng nào) đều hỗ trợ “1023” làm đối số, ví dụ: servo bị giới hạn bởi góc quay, tức là mỗi nửa vòng quay (180 độ) (nửa vòng quay) của mô tơ servo đối số hàm tối đa là “180”

Bây giờ về cú pháp: bản đồ (giá trị chúng ta đang dịch, giá trị đầu vào tối thiểu, giá trị đầu vào tối đa, giá trị đầu ra tối thiểu, giá trị đầu ra tối đa).

Trong mã nó trông như thế này:

(map(analogRead(pot), 0, 1023, 0, 180));

Chúng tôi đọc giá trị từ chiết áp (analogRead(pot)) từ 0 đến 1023 và ở đầu ra, chúng tôi nhận được các số từ 0 đến 180

Giá trị bản đồ giá trị:

Trong thực tế, chúng tôi áp dụng điều này cho hoạt động của mã của cùng một ổ servo, hãy xem mã từ Arduino IDE, nếu bạn đọc kỹ các phần trước thì không cần giải thích gì.

Và sơ đồ kết nối.

Kết luận của Arduino - rất công cụ tiện lợiđể đào tạo cách làm việc với vi điều khiển. Và nếu bạn sử dụng AVR C thuần túy, hay đôi khi nó được gọi là “Pure C”, bạn sẽ giảm đáng kể trọng lượng của mã và nhiều mã sẽ phù hợp với bộ nhớ của vi điều khiển, kết quả là bạn sẽ có được một nhà máy xuất sắc- đã tạo bảng gỡ lỗi với khả năng flash firmware qua USB.

Tôi thích Arduino. Thật đáng tiếc khi nhiều lập trình viên vi điều khiển có kinh nghiệm chỉ trích nó một cách vô căn cứ vì quá đơn giản. Về nguyên tắc, chỉ có ngôn ngữ được đơn giản hóa, nhưng không ai bắt buộc bạn phải sử dụng nó, ngoài ra bạn có thể flash bộ vi điều khiển thông qua đầu nối ICSP và tải mã bạn muốn vào đó mà không cần bất kỳ bộ tải khởi động không cần thiết nào.

Đối với những người muốn chơi với thiết bị điện tử, chẳng hạn như một nhà thiết kế tiên tiến, điều này là hoàn hảo và đối với các lập trình viên có kinh nghiệm, vì một bảng mạch không cần lắp ráp nên nó cũng sẽ hữu ích!

Hơn thêm thông tin về Arduino và các tính năng sử dụng nó trong các mạch khác nhau, xem sách điện tử - .

Trình mô phỏng này hoạt động tốt nhất trên trình duyệt Chrome
Chúng ta hãy xem xét kỹ hơn về Arduino.

Arduino thì không máy tính lớn, mà họ có thể kết nối mạch ngoài. Arduino Uno sử dụng Atmega 328P
Đây là con chip lớn nhất trên bo mạch. 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 từ sử dụng Arduino IDE. cổng USB cũng cung cấp năng lượng cho arduino.

Có ổ cắm điện riêng. Bảng mạch có hai chân có nhãn 5v và 3,3v, cần thiết để cấp nguồn nhiều thiết bị khác nhau. Bạn cũng sẽ tìm thấy các chân được đánh dấu GND, đây là các chân nối đất (mặt đất là 0V). Nền tảng Arduino cũng có 14 chân kỹ thuật số, được đánh số từ 0 đến 13, 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à kiểm soát thiết bị bên ngoài hoặc nhận dữ liệu từ thiết bị. Các chân tiếp theo trên bảng được dán nhãn A0-A5. Đây là những đầu vào tương tự có thể nhận dữ liệu từ nhiều 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 nhất định, chẳng hạn như nhiệt độ. Đầu vào analog có các chức năng bổ sung có thể được kích hoạt riêng.

Cách sử dụng bảng mạch.

Breadboard cần thiết để kết nối tạm thời các bộ phận, kiểm tra cách hoạt động của thiết bị, 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 lắp ráp trên một 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 việc hàn.

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

Hai hàng trên và dưới được nối thành hàng dọc theo toàn bộ bảng. Những hàng này được sử dụng để cung cấp năng lượng cho mạch. Nó có thể là 5V hoặc 3,3V, nhưng dù thế nào đi nữa, điều đầu tiên bạn cần làm là kết nối 5V và GND với breadboard như trong hình. Đôi khi các kết nối hàng này có thể bị đứt ở giữa bảng, sau đó nếu 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 nhóm năm lỗ. Chúng được sử dụng để kết nối các bộ phận mạch.


Thứ đầu tiên chúng ta sẽ kết nối với bộ vi điều khiển của mình là đèn LED. Sơ đồ kết nối điện được thể hiện trong hình.

Tại sao cần có điện trở trong mạch điện? Trong trường hợp này, nó hạn chế dòng điện đi qua đèn LED. Mỗi đèn LED được thiết kế cho một dòng điện nhất định và nếu dòng điện này cao hơn thì đèn LED sẽ bị hỏng. Bạn có thể tìm ra giá trị của điện trở bằng cách 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 dòng điện từ điện áp. Nghĩa là, chúng ta đặt càng nhiều điện áp vào điện trở thì dòng điện 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 chạy qua điện trở
R- sự kháng cự cần được tìm thấy.
Đầu tiên chúng ta phải 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 bạn sẽ sử dụng đều có điện áp hoạt động là 3V. Điều này có nghĩa là chúng ta cần tắt 5-3 = 2V trên điện trở.

Khi đó ta sẽ tính cường độ dòng điện chạy qua điện trở.
Hầu hết các đèn LED 3 mm và 5 mm phát sáng ở độ sáng tối đa ở 20mA. Dòng điện lớn hơn mức này có thể vô hiệu hóa chúng, trong khi dòng điện có cường độ thấp 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 kết nối đèn LED với mạch 5V để nó mang dòng điện 20mA. Vì tất cả các bộ phận được bao gồm trong một mạch nên điện trở cũng sẽ có dòng điện 20mA.
Chúng tôi nhận được
2V = 20 mA * R
2V = 0,02A * R
R = 100 Ohm

100 Ohms là điện trở tối thiểu, tốt hơn nên 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 trong ví dụ này một điện trở 220 ohm được sử dụng. Chỉ vì tác giả có nhiều thôi :wink: .

Lắp đèn LED vào các lỗ ở giữa bảng sao cho dây dẫn dài của nó được nối với một trong các dây dẫn điện trở. Kết nối đầu thứ hai của điện trở với 5V và kết nối dây dẫn thứ hai của đèn LED với GND. Đèn LED sẽ sáng lên.

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

Nhưng cách bạn kết nối điện trở không có gì khác biệt cả. Bạn có thể lật nó lại hoặc thử nối nó với một chân 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ẽ hạn chế dòng điện qua đèn LED.

Giải phẫu của Arduino Sketch.

Các chương trình dành cho Arduino được gọi là bản phác thảo. Chúng bao gồm hai chức năng chính. Chức năng cài đặt và chức năng vòng
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. Chân nào sẽ làm đầu vào hoặc đầu ra, thư viện nào để kết nối, khởi tạo biến. Chức năng Cài đặt() chỉ chạy một lần trong quá trình phác thảo, khi bắt đầu thực hiện chương trình.
đây là chức năng chính được thực thi sau cài đặt(). Trên thực tế, đó chính là chương trình. 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 ta sẽ kết nối mạch LED với một trong các chân kỹ thuật số của Arduino và bật và tắt nó bằng một chương trình, đồng thời 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 cài đặt() một phần của chương trình và dùng để khởi tạo các chân mà bạn sẽ sử dụng làm đầu vào (ĐẦU VÀO) hoặc thoát (ĐẦU RA). Bạn sẽ không thể đọc hoặc ghi dữ liệu từ mã pin cho đến khi bạn đặt nó thành tương ứng pinChế độ. Hàm này có hai đối số: số PIN là số pin bạn sẽ sử dụng.

Cách thức-đặt cách hoạt động của pin. Ở lối vào (ĐẦU VÀO) hoặc thoát (ĐẦU RA). Để thắp sáng đè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 chân đầu ra.
- chức năng này được sử dụng để thiết lập trạng thái (tình trạng) pina (số PIN). Có hai trạng thái chính (thực tế là 3 trong số đó), một là CAO, sẽ có 5V trên chân, đó là chuyện khác Thấp và pin sẽ là 0v. Điều này có nghĩa là để làm sáng đèn LED chúng ta cần đặt chân kết nối với đèn LED ở mức cao CAO.

Trì hoãn. Dùng để trì hoãn hoạt động của chương trình trong một khoảng thời gian được chỉ định bằng mili giây.
Dưới đây là mã làm cho đèn LED nhấp nháy.
//LED Blink int ledPin = 7;//Chân Arduino mà đèn LED được kết nối với void setup() ( pinMode(ledPin, OUTPUT);// đặt chân là OUTPUT) void loop() ( digitalWrite(ledPin, HIGH) ;// bật độ trễ LED (1000);// độ trễ 1000 ms (1 giây) digitalWrite(ledPin, LOW);//Tắt độ trễ LED (1000);//đợi 1 giây)

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

ledPin là 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 ledPin giá trị được gán cho 7, đây là số chân Arduino. Khi chương trình Arduino gặp một dòng có biến ledPin, nó sẽ sử dụng giá trị mà chúng ta đã chỉ định trước đó.
Vậy hãy ghi lại pinMode(ledPin, OUTPUT) tương tự như ghi âm pinMode(7, OUTPUT).
Nhưng trong trường hợp đầu tiên, bạn chỉ cần thay đổi biến và nó sẽ thay đổi ở mỗi dòng nơi nó được sử dụng, còn trong trường hợp thứ hai, để thay đổi biến, bạn sẽ phải thực hiện các thay đổi theo cách thủ công trong từng lệnh.

Dòng đầu tiên cho biết loại biến. Khi lập trình Arduino, điều quan trọng là luôn khai báo loại biến. Hiện tại chỉ cần bạn biết là đủ INT thông báo số âm và số dương.
Dưới đây là một mô phỏng của bản phác thảo. Nhấp vào bắt đầu để xem mạch đang hoạt động.

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

Điều khiển nhiều đèn LED.

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

Để bật và tắt từng đèn LED, bạn cần viết một chương trình tương tự như sau:
// Nhiều đèn LED nhấp nháy int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //đặt các chân là OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//bật độ trễ LED (1000);//độ trễ 1 giây digitalWrite(led1Pin, LOW);//tắt độ trễ LED (1000);//độ trễ 1 giây //làm tương tự cho 3 cái còn lại Đèn LED kỹ thuật sốWrite(led2Pin, HIGH);//sáng độ trễ LED (1000);//độ trễ 1 giây digitalWrite(led2Pin, LOW);//dập tắt độ trễ LED (1000);//độ trễ 1 giây digitalWrite(led3Pin, HIGH );//bật độ trễ của đèn LED (1000);// độ trễ 1 giây DigitalWrite(led3Pin, LOW);//dập tắt độ trễ của đèn LED (1000);//độ trễ 1 giây digitalWrite(led4Pin, HIGH);//bật độ trễ của đèn LED (1000);// độ trễ 1 giây DigitalWrite(led4Pin, LOW);//dập tắt độ trễ của đèn LED (1000);//độ trễ 1 giây)

Chương trình này sẽ hoạt động tốt nhưng nó 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 có thể hoạt động lặp đi lặp lại, chúng ta sẽ sử dụng một cấu trúc có tên là .
Vòng lặp rất hữu ích khi bạn cần lặp lại cùng một hành động nhiều lần. Trong đoạn mã trên, chúng tôi lặp lại các dòng

DigitalWrite(led4Pin, CAO); độ trễ (1000); digitalWrite(led4Pin, THẤP); độ trễ (1000);
mã đầy đủ phác thảo trong tệp đính kèm (số lượt tải xuống: 1201)

Đ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 lệnh analogWrite() . Lệnh này bật và tắt đèn LED nhanh đến mức mắt không thể nhìn thấy sự nhấp nháy. Nếu đèn LED bật một nửa thời gian và tắt một nửa thời gian, bạn sẽ thấy rằng nó đang phát sáng với độ sáng chỉ bằng một nửa. Nó được gọi là điều chế độ rộng xung(PWM hoặcPWM bằng tiếng Anh). Miếng chêm đượ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ự” 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 những mục đích này. Chỉ những kết luận gần đó mới được đưa ra chỉ định như vậy " ~ ". 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 chân PWM (đối với tác giả thì đây là chân 9). Bây giờ hãy chạy bản phác thảo đèn LED nhấp nháy, nhưng trước tiên hãy thay đổi lệnh Viết kỹ thuật số() TRÊN analogWrite(). analogWrite() có hai đối số: thứ nhất là số chân và thứ hai là giá trị xung (0-255), liên quan đến đèn LED, đây sẽ là độ sáng của chúng và đối với động cơ điện là tốc độ quay. Dưới đây là mã ví dụ cho các độ sáng LED khác nhau.
//Thay đổi độ sáng của đèn LED int ledPin = 9;//một đèn LED được kết nối với chân này void setup() ( pinMode(ledPin, OUTPUT);// khởi tạo chân này thành đầu ra) void loop() ( analogWrite( ledPin, 255);// độ sáng tối đa (255/255 = 1) độ trễ (1000);//tạm dừng 1 giây digitalWrite(ledPin, LOW);//tắt độ trễ LED (1000);//tạm dừng 1 giây analogWrite( ledPin, 191);//độ sáng bằng 3/4 (191/255 ~= 0,75) độ trễ (1000);//tạm dừng 1 giây digitalWrite(ledPin, LOW);//tắt độ trễ LED (1000);// tạm dừng 1 giây analogWrite(ledPin, 127); //một nửa độ sáng (127/255 ~= 0,5) độ trễ (1000);//tạm dừng 1 giây digitalWrite(ledPin, LOW);//tắt độ trễ LED(1000);/ /tạm dừng 1 giây analogWrite(ledPin, 63); //độ sáng một phần tư (63/255 ~= 0,25) độ trễ (1000);//tạm dừng 1 giây digitalWrite(ledPin, LOW);//tắt độ trễ LED(1000) ;//tạm dừng 1 giây)

Hãy thử thay đổi giá trị xung trong lệnh analogWrite()để xem điều này ảnh hưởng như thế nào đến độ sáng.
Tiếp theo, bạn sẽ học cách điều chỉnh độ sáng mượt mà từ mức tối đa về mức 0. 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);//độ sáng độ trễ ngắn = độ sáng + 1;
Nhưng, bạn hiểu, điều này sẽ không thực tế. Cách tốt nhất để làm điều này là sử dụng vòng lặp FOR mà đã được sử dụng trước đó.
Ví dụ sau sử dụng hai vòng lặp, một vòng để giảm độ sáng từ 255 xuống 0
for (int độ sáng=0;brightness=0;brightness--)( analogWrite(ledPin,brightness); delay(5); )
độ trễ(5)được sử dụng để làm chậm tốc độ giảm độ sáng 5*256=1280ms=1,28s)
Dòng đầu tiên sử dụng " độ sáng-" để làm cho giá trị độ sáng giảm đi 1 mỗi lần lặp lại vòng lặp. Lưu ý rằng vòng lặp sẽ chạy cho đến khi độ sáng >=0.Thay thế 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 hóa dưới đây. // thay đổi độ sáng một cách trơn tru int ledPin = 9;//một đèn LED được kết nối với chân này void setup() ( pinMode(ledPin, OUTPUT);// khởi tạo chân đầu ra) void loop() ( // tăng dần độ sáng độ sáng (0 đến 255 ) for (int độ sáng=0;brightness=0;brightness--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//đợi 1 giây //giảm độ sáng một cách mượt mà (255 đến 0) for (int độ sáng=255;brightness>=0;brightness--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//đợi 1 giây ) )
Nó không rõ ràng lắm, nhưng ý tưởng thì rõ ràng.

Đèn LED RGB và Arduino

Đèn LED RGB thực chất là ba đèn LED có màu khác nhau trong một gói.

Bằng cách sử dụng các đèn LED khác nhau có độ sáng khác nhau, bạn có thể kết hợp chúng để tạo ra các màu sắc khác nhau. Đối với Arduino, với số mức độ sáng là 256, bạn sẽ nhận được 256^3=16581375 màu có thể. Tất nhiên, trên thực tế sẽ có ít hơn.
Đèn LED chúng ta sẽ sử dụng là cực âm chung. Những thứ kia. cả ba đèn LED đều được kết nối có cấu trúc bằng cực âm với một cực. Chúng ta sẽ kết nối chân này với chân GND. Các chân 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 chân PLC. Tác giả đã sử dụng chân 9-11, bằng cách này 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 từng đèn LED riêng lẻ.



// LED RGB - kiểm tra // chân kết nối int red = 9; int xanh = 10; int xanh = 11; void setup())( pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); ) void loop())( //bật/tắt đèn LED digitalWrite màu đỏ(đỏ, CAO); delay(500); digitalWrite(red, LOW); delay(500); //bật/tắt đèn LED xanh digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); delay(500); // bật/tắt đèn LED màu xanh digitalWrite(blue, HIGH); delay(500); digitalWrite(blue, LOW); delay(500); )

Ví dụ sau sử dụng lệnh analogWrite() và để nhận 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.
// LED RGB - màu ngẫu nhiên // chân kết nối int red = 9; int xanh = 10; int xanh = 11; void setup())( pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); ) void loop())( //chọn một màu ngẫu nhiên analogWrite(red, Random(256)); analogWrite(blue, Random(256)); analogWrite(green, Random(256)); delay(1000);//đợi một giây)

Ngẫu nhiên(256)-trả về một số ngẫu nhiên trong khoảng từ 0 đến 255.
Trong tệp đính kèm là một bản phác thảo sẽ thể hiện sự chuyển đổi màu sắc mượt mà từ đỏ sang xanh lục, sau đó sang xanh lam, đỏ, xanh lục, v.v. (số lượt tải xuống: 331)
Bản phác thảo mẫu 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 mình để thay đổi trơn tru từ màu này sang màu khác.
Đây là những gì nó sẽ trông như thế nào: (số lượt tải xuống: 367)
Chúng ta hãy xem xét định nghĩa hàm từng phần một. Chức năng này được gọi là fader và có hai đối số. Mỗi đối số được phân tách bằng dấu phẩy và có kiểu được khai báo ở 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ố đều được khai báo là int, và họ được đặt tên màu1màu2 như các biến đ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ỉ thực hiện các lệnh. Nếu bạ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:
int multiplier(int number1, int number2)( int Product = number1*number2; trả về sản phẩm; )
Lưu ý cách chúng tôi khai báo Loại int thay vào đó là kiểu trả về
trống rỗ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ó số pin được thay thế bằng màu1màu2. Chức năng này được gọi là fader, các đối số của nó được tính như màu1 = đỏmàu2 = xanh lá cây. Kho lưu trữ chứa một bản phác thảo hoàn chỉnh sử dụng các chức năng (số lượt tải xuống: 275)

Cái nút

Bản phác thảo tiếp theo sẽ sử dụng một nút có tiếp điểm thường mở, không cần chốt.


Điều này có nghĩa là khi không nhấn nút thì không có dòng điện chạy qua nút và sau khi nhả nút, nút sẽ trở về trạng thái ban đầu. vị trí ban đầu.
Ngoài nút bấm, mạch còn sử dụng một điện trở. Trong trường hợp này, nó không giới hạn dòng điện mà “kéo” nút về 0V (GND). Những thứ kia. Cho đến khi nhấn nút, chân Arduino được kết nối sẽ ở mức thấp. Điện trở sử dụng trong mạch là 10 kOhm.


//xác định thời điểm nhấn nút int ButtonPin = 7; void setup())( pinMode(buttonPin, INPUT);//khởi tạo mã pin cho đầu vào Serial.begin(9600);//khởi tạo cổng nối tiếp) void loop())( if (digitalRead(buttonPin)==HIGH )(//nếu nhấn nút Serial.println("đã nhấn"); // hiển thị "đã nhấn" ) else ( Serial.println("không nhấn"); // nếu không thì "không nhấn" ) )
Có một số lệnh mới trong bản phác thảo này.
-Lệnh này lấy giá trị High (mức cao) và low (mức thấp), đầu ra mà chúng ta đang kiểm tra. Đầu ra này trước tiên phải được cấu hình làm đầu vào trong setup().
; // trong đó nútPin là số pin nơi nút được kết nối.
Cổng nối tiếp cho phép Arduino gửi tin nhắn đến máy tính trong khi bộ điều khiển đang thực thi 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 gọi là UART hoặc USART), bạn cần khởi tạo nó trong setup()

Serial.begin() chỉ có một đối số - đây là tốc độ truyền dữ liệu giữa Arduino và máy tính.
Bản phác thảo sử dụng lệnh để hiển thị 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 độ thực hiện chương trình bằng cách kết hợp nhiều lần kiểm tra ở một nơi.
Nếu digitalRead trả về CAO thì từ "đã nhấn" sẽ hiển thị trên màn hình. Ngược lại (nếu không) từ “được phát hành” sẽ đượ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 bằng cách nhấn nút.
// phát hiện nhấn nút với đầu ra LED int ButtonPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//lần này chúng ta sẽ đặt chốt nút là INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin )= =CAO)( digitalWrite(ledPin,HIGH); Serial.println("ép"); ) else ( digitalWrite(ledPin,LOW); Serial.println("không nén"); ) )

Đầu vào analog.

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

Chạy đoạn mã sau và xem trong màn hình nối tiếp các giá trị thay đổi như thế nào tùy thuộc vào góc quay của núm điện trở.
//đầu vào analog int potPin = A0;//chân trung tâm của chiết áp được kết nối với chân này void setup())( //chân analog được bao gồm làm đầu vào theo mặc định, do đó không cần khởi tạo Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal là một số từ 0 đến 1023 Serial.println(potVal); )
Bản phác thảo sau đây kết hợp bản phác thảo bấm nút và bản phác thảo điều khiển độ sáng LED. Đèn LED sẽ bật từ nút và độ sáng sẽ được điều khiển bằng chiết áp.
// phát hiện nhấn nút với đầu ra LED và cường độ thay đổi int ButtonPin = 7; int ledPin = 9; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin)==HIGH)(//nếu nhấn nút int analogVal = analogRead(potPin); intscaledVal = map(analogVal, 0, 1023, 0, 255); analogWrite(ledPin,scaledVal);//bật led với cường độ được đặt bởi pot Serial.println("ép"); ) else ( digitalWrite(ledPin, LOW);//tắt nếu không nhấn nút Serial.println("unpress"); ) )