Chương 1: Dẫn nhập 3 do an ĐỒ ÁN TỐT NGHIỆP Chƣơng 2: CƠ SỞ LÍ THUYẾT 2. Giới thiệu về arduino Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.
Chỉ với khoảng 200.000 VND người dùng đã có thể sở hữu một board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị. Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB. Ngoài ra, Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số lượng chân và nhiều tính năng mạnh mẽ hơn, nên các bạn vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho Arduino Uno R3.
Giới thiệu về arduino 2560 Chương 2: Cơ sỡ lý thuyết 4 do an ĐỒ ÁN TỐT NGHIỆP Hình 2.1: Board Arduino Mega 2560. [4] Arduino Mega 2560 là 1 bo mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển AVR Atmega2560. Cấu tạo chính của Arduino Mega 2560 bao gồm các phần sau: Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.
Jack nguồn: để chạy Arduino thỉ có thể lấy nguồn từ cổng USB ở trên, nhưng không phải lúc nào cũng có thể cắm với máy tính được. Lúc đó ta cần một nguồn từ 9V đến 12V. Có 54 chân vào/ra số đánh số thứ tự từ 0 đến 53, ngoài ra có một chân nối đất (GND) và một chân điện áp tham chiếu (AREF). Vi điều khiển AVR: đây là bộ xử lý trung tâm của toàn bo mạch.
Với mỗi mẫu Arduino khác nhau thì con chip là khác nhau. Ở con Arduino Mega2560 này thì sử dụng ATMega2560. Thông sô kỹ thuật: Vi xử lý: 5V Điện áp hoạt động: 5-7V Điện áp đầu vào: 6-20V Chân vào/ra (I/O) số: 54 chân (15 chân đầu ra PWM) Chân vào tương tự: 16 Dòng điện trong mỗi chân I/O: 40mA Dòng điện Chân nguồn 3.3V: 50mA Bộ nhớ trong: 256KB SRAM: 8KB EEPROM: 4KB Xung nhịp: 16MHz Chip xử lí: Atmega2560 Các Mega 2560 có 16 đầu vào tương tự, mỗi ngõ vào tương tự đều có độ phân giải 10 bit (tức là 1024 giá trị khác nhau). Theo mặc định đo từ 0 đến 5 volts, mặc dù Chương 2: Cơ sỡ lý thuyết 5 do an ĐỒ ÁN TỐT NGHIỆP là nó có thể thay đổi phần trên của phạm vi bằng cách sử dụng chân Aref và analogReference) chức năng.
Các Atmega 2560 có 256 KB bộ nhớ flash để lưu trữ mã (trong đó có 8 KB được sử dụng cho bộ nạp khởi động), 8 KB SRAM và 4 KB của EEPROM.2: Sơ đồ chân Arduino Mega 2560 [4] Chương 2: Cơ sỡ lý thuyết 6 do an ĐỒ ÁN TỐT NGHIỆP Hình 2.3: Sơ đồ chân của chip Atmega2560.1: Bảng số chân, tên chân, tên chân trên board của arduino mega 2560. Pin Number Pin Name Mapped Pin Name 1 PG5 ( OC0B ) Digital pin 4 (PWM) 2 PE0 ( RXD0/PCINT8 ) Digital pin 0 (RX0) 3 PE1 ( TXD0 ) Digital pin 1 (TX0) 4 PE2 ( XCK0/AIN0 ) 5 PE3 ( OC3A/AIN1 ) Digital pin 5 (PWM) 6 PE4 ( OC3B/INT4 ) Digital pin 2 (PWM) 7 PE5 ( OC3C/INT5 ) Digital pin 3 (PWM) 8 PE6 ( T3/INT6 ) 9 PE7 ( CLKO/ICP3/INT7 ) 10 VCC VCC 11 GND GND 12 PH0 ( RXD2 ) Digital pin 17 (RX2) 13 PH1 ( TXD2 ) Digital pin 16 (TX2) 14 PH2 ( XCK2 ) Chương 2: Cơ sỡ lý thuyết 7 do an ĐỒ ÁN TỐT NGHIỆP 15 PH3 ( OC4A ) Digital pin 6 (PWM) 16 PH4 ( OC4B ) Digital pin 7 (PWM) 17 PH5 ( OC4C ) Digital pin 8 (PWM) 18 PH6 ( OC2B ) Digital pin 9 (PWM) 19 PB0 ( SS/PCINT0 ) Digital pin 53 (SS) 20 PB1 ( SCK/PCINT1 ) Digital pin 52 (SCK) 21 PB2 ( MOSI/PCINT2 ) Digital pin 51 (MOSI) 22 PB3 ( MISO/PCINT3 ) Digital pin 50 (MISO) 23 PB4 ( OC2A/PCINT4 ) Digital pin 10 (PWM) 24 PB5 ( OC1A/PCINT5 ) Digital pin 11 (PWM) 25 PB6 ( OC1B/PCINT6 ) Digital pin 12 (PWM) 26 PB7 ( OC0A/OC1C/PCINT7 ) Digital pin 13 (PWM) 27 PH7 ( T4 ) 28 PG3 ( TOSC2 ) 29 PG4 ( TOSC1 ) 30 RESET RESET 31 VCC VCC 32 GND GND 33 XTAL2 XTAL2 34 XTAL1 XTAL1 35 PL0 ( ICP4 ) Digital pin 49 36 PL1 ( ICP5 ) Digital pin 48 37 PL2 ( T5 ) Digital pin 47 38 PL3 ( OC5A ) Digital pin 46 (PWM) 39 PL4 ( OC5B ) Digital pin 45 (PWM) 40 PL5 ( OC5C ) Digital pin 44 (PWM) 41 PL6 Digital pin 43 42 PL7 Digital pin 42 43 PD0 ( SCL/INT0 ) Digital pin 21 (SCL) 44 PD1 ( SDA/INT1 ) Digital pin 20 (SDA) 45 PD2 ( RXDI/INT2 ) Digital pin 19 (RX1) Chương 2: Cơ sỡ lý thuyết 8 do an ĐỒ ÁN TỐT NGHIỆP 46 PD3 ( TXD1/INT3 ) Digital pin 18 (TX1) 47 PD4 ( ICP1 ) 48 PD5 ( XCK1 ) 49 PD6 ( T1 ) 50 PD7 ( T0 ) Digital pin 38 51 PG0 ( WR ) Digital pin 41 52 PG1 ( RD ) Digital pin 40 53 PC0 ( A8 ) Digital pin 37 54 PC1 ( A9 ) Digital pin 36 55 PC2 ( A10 ) Digital pin 35 56 PC3 ( A11 ) Digital pin 34 57 PC4 ( A12 ) Digital pin 33 58 PC5 ( A13 ) Digital pin 32 59 PC6 ( A14 ) Digital pin 31 60 PC7 ( A15 ) Digital pin 30 61 VCC VCC 62 GND GND 63 PJ0 ( RXD3/PCINT9 ) Digital pin 15 (RX3) 64 PJ1 ( TXD3/PCINT10 ) Digital pin 14 (TX3) 65 PJ2 ( XCK3/PCINT11 ) 66 PJ3 ( PCINT12 ) 67 PJ4 ( PCINT13 ) 68 PJ5 ( PCINT14 ) 69 PJ6 ( PCINT 15 ) 70 PG2 ( ALE ) Digital pin 39 71 PA7 ( AD7 ) Digital pin 29 72 PA6 ( AD6 ) Digital pin 28 73 PA5 ( AD5 ) Digital pin 27 74 PA4 ( AD4 ) Digital pin 26 75 PA3 ( AD3 ) Digital pin 25 76 PA2 ( AD2 ) Digital pin 24 Chương 2: Cơ sỡ lý thuyết 9 do an ĐỒ ÁN TỐT NGHIỆP 77 PA1 ( AD1 ) Digital pin 23 78 PA0 ( AD0 ) Digital pin 22 79 PJ7 80 VCC VCC 81 GND GND 82 PK7 ( ADC15/PCINT23 ) Analog pin 15 83 PK6 ( ADC14/PCINT22 ) Analog pin 14 84 PK5 ( ADC13/PCINT21 ) Analog pin 13 85 PK4 ( ADC12/PCINT20 ) Analog pin 12 86 PK3 ( ADC11/PCINT19 ) Analog pin 11 87 PK2 ( ADC10/PCINT18 ) Analog pin 10 88 PK1 ( ADC9/PCINT17 ) Analog pin 9 89 PK0 ( ADC8/PCINT16 ) Analog pin 8 90 PF7 ( ADC7 ) Analog pin 7 91 PF6 ( ADC6 ) Analog pin 6 92 PF5 ( ADC5/TMS ) Analog pin 5 93 PF4 ( ADC4/TMK ) Analog pin 4 94 PF3 ( ADC3 ) Analog pin 3 95 PF2 ( ADC2 ) Analog pin 2 96 PF1 ( ADC1 ) Analog pin 1 97 PF0 ( ADC0 ) Analog pin 0 98 AREF Analog Reference 99 GND GND 100 AVCC VCC Các chân ngõ ra ngõ vào của Arduino mega 2560: Mỗi board có 54 chân kỹ thuật trên Mega có thể được sử dụng như một đầu vào hoặc đầu ra. Nó hoạt động với điện áp 5 volts. Mỗi chân có thể cung cấp hoặc nhận được tối đa 40 mA và có một điện trở kéo lên bên trong (ngắt kết nối theo mặc định) 20-50 kOhms.
Ngoài ra, một số chân có chức năng chuyên ngành: Serial 0: 0 (RX) và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial: 17 (RX) và 16 (TX); Serial 3: 15 (RX) và 14 (TX). Được sử dụng để nhận (RX) và truyền (TX) Chương 2: Cơ sỡ lý thuyết 10 do an ĐỒ ÁN TỐT NGHIỆP TTL dữ liệu nối tiếp. Chân 0 và 1 cũng được kết nối với các chân tương ứng của FTDI USB-to-TTL nối tiếp chip. Ngắt ngoài: 2 (ngắ t 0), 3 (ngắ t 1), 18 (ngắ t 5), 19 (ngắ t 4), 20 (ngắ t 3) và 21 (ngắ t 2) Các chân này có thể được cấu hình để kích hoạt một ngắt trên một giá trị thấp, một góc lên và xuống, hoặc một sự thay đổi trong giá trị.
PWM: 2-13 và 44 đến 46. Cung cấp 8-bit đầu ra PWM SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) Các chân này hỗ trợ SPI truyền thông, trong đó, mặc dù được cung cấp bởi các phần cứng cơ bản, hiện không có trong ngôn ngữ Arduino. Các chân SPI cũng được chia ra trên tiêu đề ICSP, đó là chất tương thích với các Duemilanove và Diecimila. Có một built-in LED kết nối với chân kỹ thuật số 13.
Khi chân là giá trị cao, đèn LED là sáng, khi chân là LOW, đèn LED tắ t. Mang dòng LOW này để thiết lập lại các vi điều khiển. Thường được sử dụng để thêm một nút reset để lá chắn ngăn chặn sự một trên bảng. Tổng quan về ngôn ngữ lập trình Arduino IDE Chương 2: Cơ sỡ lý thuyết 11 do an ĐỒ ÁN TỐT NGHIỆP Hình 2.4: Giao diện phần mềm Arduino IDE.
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn. Arduino IDE là phần mềm dùng để lập trình cho Arduino.
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh osx và Linux. Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm. Chương 2: Cơ sỡ lý thuyết 12 do an ĐỒ ÁN TỐT NGHIỆP Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ c của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR vào chương trình nếu muốn.