Chương 1 CƠ SỞ LÝ THUYẾT 1. Téng quan về Arduino. Giới thiệu chung Arduino cơ bán là một mã nguồn mở về điện tử được tạo thành từ phần cứng. va phần mềm.
Về mặt kĩ thuật có thể coi Arduino là một bộ điều khiển logic có thể lập trình được. Đơn giản hơn, Arduino là thiết bị có thể tương t với ngoại cảnh. thông qua các cảm biến và inh vi được lập trình sẵn. Với thiết bị này việc lắp ráp và điều khiên ác thiết bị điện tử sẽ dễ dàng hơn bao giờ hết.
Hiện tại có rất nhiều loại vi điều khiến và đa số được lập trình bằng ngôn ngữ C/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiến thức sâu về điện tử và lập trình. Nó là trở ngại cho mọi người muốn tạo rỉ 1g cho minh mot món đồ mang tính công nghệ. Song Arduino đã giải quyết được vấn dé nay, Arduino được phát triển nhằm đơn gì n hóa việc thiết kế, lắp ráp linh kiện điện tử cũng như lập trình trên vi điều khiển và mọi người thể tiếp cận dễ dàng hơn với thiết bị điện tử mà không. in nhiều về kiến thức điện tử và thời gian.
Những thế mạnh của Arduino so với các nền tảng vi điều khiển khác: ~_ Chạy trên ẩa nên tảng: Việc lập trình Arduino có thể thực hiện trên các hệ điều hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên di động, ~_ Ngôn ngữ lập trình đơn giản dễ hiểu. = Ma nguén ma: Arduino duge phat trién dựa trên nguồn mở nên phần mềm chạy trên Arduino được chia sẻ để dàng và tích hợp vào các nền tảng khác nhau. ~_ ÁMở rộng phản cứng: Arduino được thiết it dung theo dạng modul nên việc mở rộng phần cứng cũng dễ dàng hơn. ~_ Đơn giản và nhanh dễ làng lắp ráp, lập trình và sử dụng thiết bị.
~_ Để đàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không lo. lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng. Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp. Trong số đó có một v ứng dụng thực sự chứng tö khá năng vượt trội của Arduino do chúng có khả năng thực hi nhiều nhiệm vụ rất phức tạp.
Arduino duge bié đến nhiều nh: phần cứng của nó, nhưng phải có phần mềm đề lập trình phần cứng, phần cứng và phần mềm gọi chung là Arduino. ¢ Phin mém Arduino: Phần mềm Arduino được gọi là sketches. được tạo ra trên máy tính có tích hợp môi trường phát triển (IDE). IDE cho phép viết, chỉnh sửa code và chuyển đồi 2 sao cho phần cứng có thể hiểu.
IDE dùng để biên dịch và nạp vio Arduino (qué trình xử lý này gọi la UPLOAD). ® Phần cứng Arduino: Phần cứng Arduino là các board Arduino, nơi thực thi các chương trình lập. Các board nay có thẻ điều khiển hoặc đáp trả các tín hiệu điện, vì vậy các thành phẩn được ghép trực tiếp vào nó nhằm tương tác với thế giới thực để cải nhận va truyền thông. Ví dụ các cảm biến bao gồm các thiết bị chuyển mạch, cảm.
biển siêu âm, gia tốc. Các thiết bị truyền động bao gồm đèn, motor, loa và các thiết bị hiển thị. Có rất nhiều ứng dụng sử dụng Arduino để điều khiển. Arduino có rất nhiều module, méi module được phát triển cho một ứng dụng.Về mặt chức năng, các bo.
mach Arduino được chia thành hai loại: loại bo mạch chính 6 chip Atmega va loai mở rộng thêm chức năng cho bo mạch chính. Các bo mạch chính về cơ bản là giống. nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ. nhớ, hay kích thước có sự khác nhau.
Một số bo mạch có trang bị thêm các tính năng kết nỗi như Ethernet và Bluetooth. Các bo mở rộng chủ yếu mở rộng thêm một số tính năng cho bo mạch chính ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ. Cấu trúc phần cứng. $ Cấu trúc chung Arduino Uno là một bo mạch vi điều khiển dựa trên chip ATmegal68 hoặc ATmega 328.
trúc chung bao gi m: ~ 14 chân vào ra bằng tín hiệu số, trong đó có 6 chân có thể sử dụng để điều ng xung. ~ Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các bộ. cảm biển bên ngoài để thu thập số liệu. ~ Sử dụng một dao động thạch anh tần số dao động 16MHz.
- Cụ mote ng kết nối bằng chudin USB dé chang ta nạp chương trình vào bo mạch và một chân cấp nguồn cho mạch, một mit reset. ~ Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vỉ điều ki lên, nguồn cung cấp. cho Arduino có thể là từ máy tính thông qua công USB hoặc là từ bộ nguồn chuyên dụng được biến đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin, Hình 1. Cấu trúc phẩn cứng của Arduino Uno s®* Thông số kỹ thủ ật của no: / Khối xử lý trung tâm là vi điều khiển Atmega328.
* Điện áp hoạt động 5V. */ Điện áp đầu vào khi ến nghị là 5-12V. * Điện áp đầu vào giới hạn 6-20V. */ Dòng điện một chiều trên các chân vào ra là 40mA.
*“ Dòng điện một chiều cho chân 3. ¥ Clock Speed 16 MHz. ¥ Flash Memory 16 Kb (ATmega 168) hoge 32 Kb (ATmega 328), SRAM I Kb (ATmega 168) hoặc 2 Kb (ATmega 328), EEPROM S12 bytes (ATmega 168) hoặc 1 Kb (AT mega 328) ® Khối xử lý trung tâm. Trong bộ mạch Arduino IC đóng vai trỏ xử lý trung tâm là Atmega328 cầu trúc sơ đồ chân của nó như sau; (PCINT14/RESET) PC6 PC6 (ADC5/SCL/PCINT13) (PCINT16/RXD) PDO PC4 (ADC4/SDA/PCINT12) (PCINT17/TXD) PD1 PC3 (ADC3/PCINT11) (PCINT18/INT0) PD2 PC2 (ADC2/PCINT10) (PCINT19/OC2B/INT1) PD3 PC1 (ADC1/PCINT9) (PCINT20/XCK/T0) PD4 PC0 (ADC0/PCINT8) vec GND GND AREF (PCINT6/XTAL1/TOSC1) PB6 avec (PCINT7/XTAL2/TOSC2) PB7 PBS (SCK/PCINTS) (PCINT21/OCOB/T1) PDS PB4 (MISO/PCINT4) (PCINT22/OCOA/AINO) PD6 PB3 (MOSI/OC2A/PCINT3) (PCINT23/AIN1) PD7 PB2 (SS/OC1B/PCINT2) (PCINTO/CLKO/ICP1) PBO PB1 (OC1A/PCINT1) Hinh 1.
So dé chan trong ATmega 328 ìn số 7): Chân cung cắp điện áp dương nguồn 5V. ⁄ Chân GND (chân số 8): Chân đất chung. ¥ Chân AREF (chin 21); La chan tham chiếu để chuyển đổi tín hiệu tương tự xang số Chân AVCC (chân 20): Chân cung cấp điện áp cho quá trình chuyển đổi ADC. ⁄ Cổng B (chân 14 - chan 19, chân 9, chân 10): Bao gồm có 8 chân LO từ (PB0:PB?) Y Céng C (chan 23 ~ chân 28, chân 1): Bao gồm có 7 chân I/O tử (PC0:PC6) trong đó chân PC6 (chân số 1) làm chân reset.
⁄ Cổng D (chân 2 — chân 6, chân 11 — chân 13): Bao gồm c6 8 chan I/O tir chân (PD0+PD7) mm ]| | i]||[>_] [te] ce Hình 1.Sơ đồ khối cấu trúc bên trong ATimega 328 ® Khối xứ lý trung tâm trong IC ATmega 328 như sau: Đây là kiến trúc chung trong lõi AVIR nói chung. Chức năng chính của lõi CPU là để đảm bảo thực hiện chương trình chính xác. CPU do đó phải có khả năng. truy cập nhanh, thực hiện các tỉnh toán, thiết bị ngoại vi điều khiển và xử lý ngất.
Để tối đa hóa hiệu suất, AVR sử dụng một kiến trúc Harvard vả đường bus riêng. biệt cho chương trình và dữ liệu. Hướng truyền dữ liệu trong bộ nhớ chương trình. thực hiện với một tốc độ nhất định.
ta Bụ E-bU Fash Raa 1, Tan an Gent nan Goan |__| zy a esse lJ # = — = ae Decoae! F lJ. a) 25 Ta 3] 3 3 z compa rtor omparat = i vO Medulet oaoe VO Module 2 Vo meaun9 EEPRO tetne Hình 1. Sơ đồ cầu trúc CPU trong ATmega 328 ® Nguần nuôi Arduino có thẻ được hỗ trợ thông qua kết nối USB hoặc với một nguồn cung. cấp điện bên ngoài.
Các nguồn năng lượng được lựa chọn tự động. Hệ thống vỉ điều khiển có thế hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V. Nên cung cấp với ít hơn 7V, tuy nhiên pin 5V có thể cung cấp it hon 5V và hệ thống vỉ điều khiển có thể không ồn định. Nếu sử dụng nhiều hơn 12V điều chỉnh điện áp có 'thể quá nóng.
Pham vi khuy nghị là 7V đến 12V. ¥ Chan Vin: Dign áp. yao Arduino khi chúng ta dùng nguồn điện bên ngoài. Chúng ta có thể cung cấp nguồn thông qua chân này.
⁄ Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mach và cung cắp nguồn cho các thiết bị ngoại vĩ khi kết nối tới bo mạch. Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến. ⁄ Chân GND : Chan néi dat. Cầu trúc phần mm va lap trink Arduino + Cấu trúc phần mềm các hàm cơ bản.
Cấu trúc chương trình viết cho Arduino gồm hai phần đầu tiên là hàm khởi tạo. POWER ON Looe FUNCTION Hink 1. Mô hình cấu trúc của chương trình Arduino Hàm setupQ được gọi khi bắt đầu một bản thiết kế. Trong hàm sẽ khai báo các biến khởi tạo, các chế độ của chân, bắt đầu sử dụng các thư viện.
Hàm setup chỉ chạy một lần sau mỗi lần bật nguồn hoặc resct mach Arduino. ®© Ví dụ l, int buttonPin = 3; void setup() serial.begin(9600); // cầu hình cổng nồi tiếp có tốc độ dữ liệu là 9600 bps pinMode(buttonPin, INPUT); // dat chân 3 là chân input } void loop() 1 We 5 'Vòng lặp loopQ sử dụng để lặp và những vòng lặp liên tiếp, chương trình có thể thay đổi và đáp ứng. Sử dụng để điều khiển mạch Arduino. © Vidu2 int button = 3; / ham setup se khoi tao cong serial va nut pin 8 void setup() { beginSerial(9600); pinMode(buttonPin, INPUT); ' Jivong lap loop kiem tra nut pin moi lan lap Jiva gui du licu ra cong serial neu an nut void loop() { if(digitalRead(buttonPin)— HIGH) serialWriteCH"); else serialWrite(‘L’); delay(1000); $ Các hàm vào ra số ⁄ Hàm pinAode(): Câu hình một chân thành một chân vào hoặc một chân ra.
Cú pháp: pinMode(pin, mode); Trong đó: pin 18 số của chân muốn đặt chế độ, mode l INPUT_PULLIP, OUTPUT. Gié tri tra vé 1a none. int ledPin = /ket noi den Led voi chan so 13 void setup() { pinMode(ledPin, OUTPUT);// dat chan so lam chan ra } void loop() { digital Write(ledPin, HIGH); // den led sang delay(1000); / doi trong 1s digital Write(ledPin, LOW); //den led tat delay(1000); //doi trong ts ) Y serial,printin (eid tri): In gid tri dé Monitor Serial trén may tính. Y pinMode (pin, ché hình cho một pin kỹ thuật số 8 doc (đầu vào) hoặc viết (đầu ra) một trị kỹ thuật số.
Y digitalRead (pin): Đọc một giá trị kỹ thuật số (HIGH hoặc LOW) trên một bộ pin cho đầu vz Y digitalWrite (pin, gid tri): Ghi gid tri ky thuật số (HIGH hoặc LOW) với một bộ pin cho đầu ra.