Thể loại: Bài viết nổi bật » Điện tử thực hành
Số lượt xem: 67360
Bình luận về bài viết: 7

Kết nối và lập trình Arduino cho người mới bắt đầu

 

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


Arduino là gì?

Đây là một loại xây dựng đ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 cách lập trình các thiết bị điện tử, đồng thời dành thời gian tối thiểu cho phần điện tử.

Việc lắp ráp các mạch phức tạp nhất và kết nối của các bảng có thể được thực hiện mà không cần hàn sắt, và với sự trợ giúp của các bộ nhảy với các kết nối có thể tháo rời, cha cha và mẹ mẹ. Theo cách này, cả hai tệp đính kèm và thẻ mở rộng đều có thể được kết nối, mà trong từ vựng của những người theo đạo luật được gọi đơn giản là gọi là Shield Shields.

Arduino là gì?

Bảng Arduino đầu tiên để mua cho người mới là gì?

Bảng cơ sở và phổ biến nhất được xem xét Arduino uno. Phí này giống như một thẻ tín dụng. Khá lớn. Hầu hết các lá chắn được bán là hoàn hảo cho cô ấy. Có các ổ cắm trên bảng để kết nối các thiết bị bên ngoài.

Arduino uno

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

Arduino uno

Hình ảnh bảng Arduino và chức năng giải mã của từng pin, 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 trong gói DIP28, có nghĩa là nó có 28 chân.

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

Arduino nano

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 vi điều khiển được chế tạo trong một gói TQFP32 nhỏ gọn hơn, ADC6 và ADC7 được thêm vào trong trường hợp, hai chân còn lại khác của Nott nhân đôi bus công suất. Kích thước của nó khá nhỏ gọn - bằng cỡ ngón tay cái của bàn tay bạn.

Pinout nano Aruino 

Bảng phổ biến thứ ba là Arduino Pro Mini, 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 giao tiếp sau.

So sánh kích thước nhỏ của Arduino Nano vs Pro

So sánh kích thước nhỏ của Arduino Nano vs Pro

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

Sơ đồ chân Arduino, ở phần trên, sơ đồ kết nối USB-UART, pin GRNTHER - được nối với mạch thiết lập lại của vi điều khiển, nó có thể được gọi khác nhau, mà bạn cần tìm hiểu sau.

Tóm tắt:

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

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

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 thông qua USB. Đồng thời, không có hỗ trợ phần cứng cho cổng USB, một giải pháp mạch chuyển đổi cấp độ, thường được gọi là USB-to-serial hoặc USB-UART (rs-232), được sử dụng ở đây. Đồng thời, một bộ tải khởi động Arduino đặc biệt được đưa vào vi điều khiển, cho phép nhấp nháy trên các xe buýt này.

Trong Arduino Uno, dây chằng này được thực hiện trên một vi điều khiển có hỗ trợ USB - ATmega16U2 (AT16U2). Nó chỉ ra rằng các vi điều khiển bổ sung trên bảng là cần thiết để flash vi điều khiển chính.

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

Thông thường, trình điều khiển được cài đặt tự động khi bảng Arduino được kết nối. Tuy nhiên, khi tôi mua một bản sao Trung Quốc của Arduino Nano, thiết bị đã được công nhận, nhưng nó không hoạt động, một nhãn dán tròn với dữ liệu về ngày phát hành đã được dán trên bộ chuyển đổi, tôi không biết nó có được thực hiện hay không, nhưng sau khi bóc nó ra tôi thấy dấu CH340.

Trước đó, tôi không gặp phải điều này và nghĩ rằng tất cả các bộ chuyển đổi USB-UART đã được lắp ráp trên FT 232, tôi phải tải xuống trình điều khiển, chúng rất dễ tìm thấy theo yêu cầu của trình điều khiển Arduino Arduino ch340. Sau khi cài đặt đơn giản - nó đã hoạt động!

Thông qua cùng một cổng USB, vi điều khiển cũng có thể được cấp nguồn, tức là nếu bạn kết nối nó với 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 bảng của tôi không có USB?

Arduino Pro Mini nhỏ hơn. Điều này đạt được bằng cách tháo đầu nối USB cho phần sụn và bộ chuyển đổi USB-UART tương tự. Do đó, nó phải được mua riêng. Bộ chuyển đổi đơn giản nhất trên CH340 (rẻ nhất), CPL2102 và FT 232R, với giá bán từ $ 1.

Khi mua, hãy chú ý đến điện áp mà bộ chuyển đổi này được thiết kế để làm gì. Pro mini có sẵn trong các phiên bản 3.3 và 5 V, một jumper thường được đặt trên các bộ chuyển đổi để chuyển đổi điện áp cung cấp.

Arduino Pro Mini

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

Sơ đồ kết nối cho phần sụn

Họ được tham gia bởi các thiết bị đầu cuối đặc biệt "Mama-Mama" (nữ-nữ).

Kết nối Arduino

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 đều ở hai bên có ổ cắm, và có phích cắm, và ở một bên của ổ cắm và trên đầu cắm khác.

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 phần sụn là ngôn ngữ của arduino), có một môi trường tích hợp đặc biệt để phát triển 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ì khi cài đặt nó.

Chương trình cho Arduino

Đây là giao diện chương trình trông như thế nào. Bạn có thể viết các chương trình bằng ngôn ngữ C AVR đơn giản hóa được phát triển đặc biệt cho arduino, trên thực tế, nó là một tập hợp các thư viện có tên là Dây, cũng như trong C AVR thuần túy. Sử dụng nó tạo điều kiện cho mã và tăng tốc công việc 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 làm việc (Uno, Nano và nhiều, nhiều người khác) và cũng mở các dự án với các ví dụ mã được tạo sẵn. Dưới đây là một tập hợp các nút để làm việc với phần sụn, các phím bạn sẽ thấy trong hình bên dưới.

Giao diện chương trình

Ở dưới cùng của cửa sổ là một khu vực để hiển thị thông tin về dự án, trạng thái của mã, phần sụn 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à kết nối các thư viện bổ sung, nếu chúng tồn tại, điều này được thực hiện như sau:

#include biblioteka.h; // kết nối thư viện với tên là Bib Biboteote.h phạm

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

Lệnh Define cho phép trình biên dịch 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 ra biến số led led và đã gán cho nó giá trị

Chương trình có thể xác định trạng thái của pin 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 - 5 V)

Tín hiệu số được ghi lại bằng lệnh digitalWrite (pin, value), ví dụ:

kỹ thuật sốWrite (đã dẫn, cao); // ghi đơn vị vào chân 13 (chúng tôi đã thông báo ở trên) log. Đơn vị.

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

kỹ thuật sốWrite (13, cao); // đặt chân 13 thành một

Thông thường, hàm trì hoãn thời gian tìm kiếm được gọi bằng lệnh delay (), giá trị được đặt theo mili giây, micro giây đạt được bằng cách sử dụng

delayMicroseconds () Trì hoãn (1000); // vi điều khiển sẽ đợi 1000 ms (1 giây)

Cài đặt cổng cho đầu vào và đầu ra được đặt trong hàm void setup {}, với lệnh:

void setup () {

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

}

Vòng lặp trống {}


Hiểu chương trình Blink đầu tiên

Là một dạng của Hello Hello, world thế giới dành cho vi điều khiển, có một chương trình nhấp nháy LED, hãy phân tích mã của nó:

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

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

Có phải mọi thứ đều hoạt động và mọi thứ đều rõ ràng? Sau đó tiến lên!



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 Atmega328 AVR có bộ chuyển đổi tương tự sang số 10 bit tích hợp. ADC 10 bit cho phép bạn đọc giá trị điện áp từ 0 đến 5 volt, với bước tăng 1/1024 của toàn bộ dải biên độ của tín hiệu (5 V).

Để làm cho rõ ràng hơn, hãy xem xét tình huống, giả sử giá trị điện áp ở đầu vào tương tự là 2,5 V, sau đó 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ì số đếm đi từ 0, tức là 0, 1, 2, 3, v.v. lên tới 1023 - tổng cộng 1024 giá trị.

Đây là cách nó trông như thế nào trong mã, sử dụng bản phác thảo tiêu chuẩn về analog analogInput

int cảm biếnPin = A0;

int ledPin = 13;

int cảm biếnValue = 0;

void setup () {

pinMode (ledPin, OUTPUT);

}

void loop () {

sensorValue = analogRead (sensorPin);

kỹ thuật sốWrite (ledPin, CAO);

độ trễ (cảm biếnValue);

kỹ thuật sốWrite (ledPin, THẤP);

độ trễ (cảm biếnValue);

}

Sơ đồ kết nối của chiết áp với Arduino, bằng cách tương tự, đầu ra trung tâm bạn có thể kết nối với bất kỳ đầu vào tương tự nào

Sơ đồ kết nối của chiết áp với Arduino, bằng cách tương tự, đầu ra trung tâm bạn có thể kết nối với bất kỳ đầu vào tương tự nào.

Khai báo các biến:

  • Ledpin - gán độc lập một pin với đèn LED tích hợp cho đầu ra và đặt tên riêng;

  • sensorPin - đầu vào tương tự, được đặt tương ứng với dấu trên bảng: A0, A1, A2, v.v.;

  • sensorValue - một biến để lưu trữ giá trị đọc số nguyên và tiếp tục làm việc với nó.

Mã này hoạt động như thế này: sensorValue lưu giá trị tương tự đọc bằng sensorPin (lệnh analogRead). - ở đây công việc với tín hiệu tương tự kết thúc, sau đó mọi thứ như trong ví dụ trước.

Chúng tôi viết đơn vị trong ledPin, đèn LED bật và chờ trong thời gian bằng giá trị của cảm biếnValue, tức là từ 0 đến 1023 mili giây. Tắt đèn LED và đợi một lần nữa trong khoảng thời gian này, sau đó mã lặp lại.

Do đó, theo vị trí của chiết áp, chúng tôi đặ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 cho bộ truyền động (tôi không biết) đều hỗ trợ cho 1023, như một đối số, ví dụ, servo bị giới hạn bởi góc quay, nghĩa là bằng một nửa vòng quay (180 độ) (nửa vòng quay) của mô tơ servo, đối số tối đa của chức năng là 180

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

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

(bản đồ (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ị:

  • 0=0;

  • 1023=180;

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

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

Sơ đồ nối dây

Kết luận Arduino là một công cụ rất thuận tiện để học cách làm việc với vi điều khiển. Và nếu bạn sử dụng C AVR thuần túy, hoặc đôi khi được gọi là C Pure Pure, bạn sẽ giảm đáng kể trọng lượng mã và phù hợp hơn với bộ nhớ vi điều khiển, do đó, bạn sẽ có được một bảng gỡ lỗi tuyệt vời do nhà máy sản xuất với phần mềm USB.

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

Ý kiến ​​của tác giả:

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ô lý, rằng nó 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 bạn phải sử dụng nó, ngoài ra bạn có thể flash vi điều khiển thông qua đầu nối ICSP và điền mã bạn muốn mà không cần bất kỳ bộ tải khởi động nào mà bạn không cần.

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

Để biết thêm thông tin về Arduino và các tính năng sử dụng của nó trong các chương trình khác nhau, hãy xem sách điện tử -Arduino cho người giả. Minh họa hướng dẫn thực hành.

Xem thêm tại electro-vi.tomathouse.com:

  • Phương pháp đọc và quản lý cổng Arduino I / O
  • Nên chọn bo mạch Arduino nào
  • Các loại và sự sắp xếp của vi điều khiển AVR
  • Điều khiển từ xa vi điều khiển: IR Remote, Arduino, ESP8266, 433 ...
  • Kết nối cảm biến analog với Arduino, đọc cảm biến

  •  
     
    Bình luận:

    # 1 đã viết: Điện từ | [trích dẫn]

     
     

    Những tài liệu về nghiên cứu mã lập trình mà bạn đề nghị?

     
    Bình luận:

    # 2 đã viết: Hà Nội | [trích dẫn]

     
     

    Điện từUlli Sommer. Lập trình bảng vi điều khiển Arduino / Freeduino của Jeremy Bloom. Chúng tôi nghiên cứu Arduino. Các công cụ và kỹ thuật cho ma thuật kỹ thuật, John Boxell. Chúng tôi nghiên cứu Arduino. 65 dự án tự làm. Sách về Arduino trên ozone: electro-bg.tomathouse.com/arduino_books.php

     
    Bình luận:

    # 3 đã viết: Victor | [trích dẫn]

     
     

    Tài liệu rất thú vị và thú vị, cảm ơn!

     
    Bình luận:

    # 4 đã viết: Ural | [trích dẫn]

     
     

    Cảm ơn thông tin, chức năng "bản đồ" rất tiện dụng, tôi tự hỏi làm thế nào để đi lại, chỉ bắt đầu học đồ chơi trên Arduino.

     
    Bình luận:

    # 5 đã viết: Dima | [trích dẫn]

     
     

    Một cái gì đó tôi không tìm thấy cho các lá chắn arduino để chia sẻ trên mil-std-1553b, mặc dù đối với xe buýt comp - heaps, một giao diện rất phổ biến. Chọc nơi bạn có thể tìm kiếm-mua.

    p.s. ngày của bài viết không được hiển thị - có thể cô ấy 10 tuổi và không đáng để viết bình luận?

     
    Bình luận:

    # 6 đã viết: Eremino | [trích dẫn]

     
     

    Cách tạo bộ lặp tín hiệu đầu vào trên Arduino cho 4 hoặc bất kỳ số lượng đầu ra nào.

    Tương tự như vậy với 4 kênh đầu vào đến 16 kênh đầu ra. Trong trường hợp này, bạn cần chuyển đồng thời đầu vào sang 4 đầu ra bất kỳ trên mỗi kênh đầu vào.

     
    Bình luận:

    # 7 đã viết: Oleg | [trích dẫn]

     
     

    Các bạn, cho tôi biết, bạn đã học lập trình ở đâu? Tôi đã xem xét rất nhiều thông tin và không ai viết rõ ràng. Ở đây, tất cả các thông tin không dành cho người mới bắt đầu, thực sự rất nhiều không rõ ràng, phần dưới. Rất nhiều từ đã được viết về đó không phải là một từ, ví dụ, tác giả viết, lúc đầu bạn cần khai báo thư viện và nhập #include biblioteka.h; // nhưng về từ này, anh ấy đã viết bất cứ điều gì #incolee tại sao có thể hiểu tất cả điều này. Tôi đã thiếu kiên nhẫn, không ai có thể giải thích theo cách thông thường, và giải thích vì vậy những gì sẽ xảy ra ở đây là cần thiết để viết điều này. Chà, dĩ ​​nhiên là không có gì, nhưng tôi cố đọc, tôi không thấy gì khó hiểu, điều này không giải thích được nhiều điều thừa thãi. Và tôi có thể nói rằng tôi không phải là một kẻ ngu ngốc, tôi có thể sửa chữa hầu hết mọi thiết bị điện tử, nghĩa là tôi là bạn với cái đầu của tôi, nhưng tôi không hiểu điều đó bởi vì họ viết những người biết, nhưng họ quên mất những sắc thái khi họ tự đào sâu vào nó.