Tài liệu BÁO CÁO ARDUINO + ĐIỀU KHIỂN CNC DÙNG ĐỘNG CƠ BƯỚC BẰNG ARDUINO+GRBL

  • Số trang: 49 |
  • Loại file: DOCX |
  • Lượt xem: 19874 |
  • Lượt tải: 34
tunguyen

Tham gia: 30/03/2015

Mô tả:

PHẦN 1: TÌM HIỂU VỀ ARDUINO PHẦN 2: TÌM HIỂU VỀ MÁY CNC PHẦN 3. TÌM HIỂU ĐỘNG CƠ BƯỚC
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN BỘ MÔN KỸ THUẬT ĐO VÀ TIN HỌC CÔNG NGHIỆP .......................***........................ ĐỒ ÁN 1 Đề tài: TÌM HIỂU VỀ MÁY CÔNG CỤ CNC Sinh viên thực hiện: - Nguyễn Văn Tứ - Nguyễn Thanh Thưởng Giảng viên hướng dẫn: - TS. Nguyễn Hoàng Nam Hà Nội - 2015 1 Mục lục PHẦN 1: TÌM HIỂU VỀ ARDUINO..............................................................................................4 1.1 Giới thiệu chung về arduino...........................................................................................4 1.2 Cấu trúc phần cứng........................................................................................................4 1.3 Cấu trúc phần mềm và lập trình.....................................................................................5 1.4 Arduino Uno R3:......................................................................................................................14 1.5 Arduino nano.....................................................................................................................17 1.5.3 Arduino Promini................................................................................................................19 PHẦN 2: TÌM HIỂU VỀ MÁY CNC............................................................................................22 2.1 Giới thiệu chung về máy CNC.............................................................................................22 2.1.1 Lịch sử phát triển của hệ thống máy CNC.....................................................................22 2.1.2 Những đặc điểm cơ bản của máy CNC..........................................................................23 2.2 Giới thiệu chung về máy phay CNC.....................................................................................23 2.2.1 Tình hình sử dụng máy CNC ở nước ta.........................................................................23 2.3 Các phương pháp điều khiển trên máy CNC.........................................................................25 2.3.1 Điều khiển 2D................................................................................................................25 2.3.2 Điều khiển 21/2D...........................................................................................................26 2.3.3 Điều khiển 3D................................................................................................................26 2.4 Cấu trúc tổng thể máy CNC mini....................................................................................26 2.4.1 Phần điều khiển..............................................................................................................27 2 2.4.2 Phần chấp hành..............................................................................................................27 2.5 Hệ trục tọa độ trên máy CNC...............................................................................................27 PHẦN 3. TÌM HIỂU ĐỘNG CƠ BƯỚC...................................................................................29 3.1 Khái quát...............................................................................................................................29 3.1.1 Vai trò của động cơ bước...............................................................................................29 3.1.2 Cấu tạo động cơ bước....................................................................................................29 3.1.3. Hoạt động......................................................................................................................29 3.1.4 Ứng dụng........................................................................................................................30 3.1.5 Các đặc tính cơ bản của động cơ bước...........................................................................30 3.1.6 Một số loại động cơ bước...............................................................................................30 3.1.7 Điều khiển động cơ bước...............................................................................................31 3.2. Giới thiệu module Driver A4988.........................................................................................33 3.3. Điều khiển động cơ bước qua A4988 bằng GRBL..............................................................34 3.3.1. Khái quát GRBL...........................................................................................................34 3.3.2 Quản lý nhanh................................................................................................................36 3.3.3 Những giới hạn của G-code...........................................................................................36 3.3.4 Các tính năng mới trong v0.9.........................................................................................37 PHẦN 4: TÌM HIỂU CÁC BƯỚC ĐIỀU KHIỂN MỘT CNC LÀM PCB ĐƠN GIẢN..............39 3 PHẦN 1: TÌM HIỂU VỀ ARDUINO 1.1 Giới thiệu chung về arduino Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY ( là những người tự sáng chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì mà Apple đã làm được trên thị trương thiết bị di động. Số lượng người dùng cực kì lớn và đa dạng với trình độ trải rộng từ bậc phổ thông đến bậc đại học đã làm cho ngay cả những người sáng tạo ra cũng phải ngạc nhiên về mức độ phổ biến. Arduino thực ra là một bo mạch vi xử lí được dùng để tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hay 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 ngôn ngữ lập trình có thể học nhanh chóng ngay cả khi người học ít hiểu biết về điện tử và lập trình. Và điều làm nên Arduino chính là mức giá rất thấp và tính chất nguồn mở từ cứng tới mềm. Chỉ với $30, 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ị. 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 có thể thực hiện trên các hệ điều hành khác nhau như Window, Mac Os, Linux trên destop, android trên di động. - Ngôn ngữ lập trình đơn giản, dễ hiểu. - Nền tảng mở : arduino được phát triển dựa trên nguồn mở nên phần mêm chạy trên Arduino được chia sẻ dễ dàng tính hợp vào các nền tảng khác nhau. - Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng module nên việc mở rộng phần cứng khá dễ dàng . - Đơn giản và nhanh: Rễ dàng lắp ráp, lập trình và sử dụng thiết bị . - Dễ dà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. Những ứng dụng nổi bật của Arduino là: máy in 3d, robot, thiết bị bay không người lái UAV, game tương tác, điều khiển ánh sáng, kích hoạt chụp ảnh tốc độ cao... Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự tương tác với môi trường xung quanh với: Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại, khí độc,…),…  Các thiết bị hiển thị (màn hình LCD, đèn LED,…).  Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,…). Định vị GPS, nhắn tin SMS, và nhiều thứ thú vị khác 1.2 Cấu trúc phần cứng Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của board với các module 4 thêm vào có thể dễ dàng chuyển đổi, được gọi là shield. Vài shield truyền thông với board Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560. Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Arduino tương thích. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh giao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị. Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài. Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình. Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác. (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.) Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số. Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm). Nhiều shield ứng dụng plug-in cũng được thương mại hóa. Các board Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard. Có nhiều biến thể như Arduino-compatible và Arduino-derived. Một vài trong số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại. Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra, thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và các robot nhỏ. Những board khác thường tương đương về điện nhưng có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không. Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau. 1.3 Cấu trúc phần mềm và lập trình 1.3.1 Cài đặt Arduino IDE - Để lập trình cho bo Arduino , trước hết ta cần download và cài đặt môi trường viết chương trình cho Arduino. - Dowload tại trang chủ arduino.cc - Hướng dẫn cài đặt cho người dùng Window (người sử dụng hệ điều hành Mac thì không cần cài đặt drive ). - Kết nối bo Arduino với máy tính, và để máy tính tự động cài đặt drive USB. Tuy nhiên việc tự động cài drive sẽ có thể không thành công. 5 - Nếu không thành công thì : Mở Device Mannage của window trên Control Panel Ở mục Port ( COM & LPT) sẽ thấy mục Arduino Uno (Comxx) Nhấp phải vào mục Arduino UNO(COMxx) và chọn Update Driver Software Trên cửa sổ hiện ra, chọn Browre my computer for driver software . 1.3.2 Môi trường lâp trình ARDUINO 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 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 mở là cực kỳ lớn. Hình 1.1: Arduino IDE a) Arduino Toolbar: có một số button và chức năng của chúng như sau : Hình1.2: Arduino Toolbar.  Verify : kiểm tra code có lỗi hay không  Upload: nạp code đang soạn thảo vào Arduino   New, Open, Save : Tạo mới, mở và Save sketch Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính b) Arduino IDE Menu: 6 Hình 1.3: IDE Menu File menu: Hình 1.4: File menu. Trong file menu mục Examples là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor … 7 Hình 1.5: Click Examples. Edit menu: Hình 1.6: Sketch menu 8 Trong Sketch menu :  Verify/ Compile : chức năng kiểm tra lỗi code.  Show Sketch Folder : hiển thị nơi code được lưu.  Add File : thêm vào một Tap code mới.  Import Library : thêm thư viện cho IDE Tool memu: Trong Tool menu ta quan tâm các mục Board và Serial Port Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử dụng nếu là Arduino Uno thì phải chọn như hình: 9 Nếu sử dụng loại bo khác thì phải chọn đúng loại bo mà mình đang có nếu sai thì code Upload vào chip sẽ bị lỗi. Serial Port: đây là nơi lựa chọn cổng Com của Arduino. Khi chúng ta cài đặt driver thì máy tính sẽ hiện thông báo tên cổng Com của Arduino là bao nhiêu, ta chỉ việc vào Serial Port chọn đúng cổng Com để nạp code, nếu chọn sai thì không thể nạp code cho Arduino được. 1.3.3 Cấu trúc chương trình Cấu trúc cơ bản của một chương trình Arduino gồm hai hàm chính setup() và loop(). Hai hàm này là bắt buộc đối với một chương trình Arduino. setup() Hàm setup() được gọi khi chương trình bắt đầu. Thường dùng để khởi tạo giá trị ban đầu cho biến, cài đặt chế độ hoạt động của các chân, khởi động việc sử dụng thư viện... Hàm setup() sẽ chỉ được gọi duy nhất một lần, ngay sau khi bật nguồn hoặc reset bo Arduino. loop() Sau khi thực hiện xong hàm setup(), hàm loop() sẽ được gọi để thực hiện và sẽ được gọi lặp đi lặp lại liên tục cho đến khi nào tắt hệ thống. Thường thì trong hàm loop() sẽ là chương trình chính, các công việc mà bạn muốn hệ thống Arduino của mình thực hiện. Cách viết chương trình trên IDE Một chương trình Arduino với hai hàm setup() và loop() sẽ được viết như sau: void setup() { // code khởi tạo sẽ được viết ở đây } void loop() { // code phần công việc mà bạn muốn board Arduino của mình thực hiện sẽ viết ở đây} Ví dụ Chương trình Blink 10 Chương trình Blink LED (nháy LED) là đơn giản và nổi tiếng trên Arduino, vì hầu hết người lập trình Arduino đều trải qua nó. Blink LED thực hiện việc chớp tắt một LED đơn có sẵn trên bo và được kết nối với chân số 13 của Arduino. int led = 13; // số thứ tự của chân Arduino kết nối với LED // hàm setup sẽ được gọi chạy một lần khi reset void setup() { pinMode(led, OUTPUT); // cài đặt chân digital là output (ngõ ra) } // hàm loop sẽ được gọi chạy lặp đi lặp lại void loop() { digitalWrite(led, HIGH); // bật LED (xuất ngõ ra ở mức cao - HIGH) delay(1000); // chờ 1000ms = 1 giây digitalWrite(led, LOW); // tắt LED (xuất ngõ ra ở mức thấp - LOW) delay(1000); // chờ 1000ms = 1 giây } Chương trình giao tiếp với máy tính Arduino có một điểm vô cùng lợi hại là đã kết hợp cổng nạp và giao tiếp trong một, nghĩa là sau khi nạp xong ta có thể ngay lập tức giao tiếp với bo để lấy thông tin. Để giao tiếp với máy tính thì đơn giản bạn sử dụng class Serial có sẵn của Arduino:  Khởi tạo trong setup: // Hàm setup chỉ chạy một lần khi bắt đầu khởi động lại void setup() { Serial.begin(9600); //Initialize Serial port with baud is 9600 }  Sau đó có thể đọc và truyền dữ liệu từ cổng Serial một cách tuần tự: void loop() { if(Serial.available()){ //Check if have data in Serial Buffer char inMess = Serial.read(); //Read data from Serial port Serial.println(inMess); // Print to Serial port when you want send data to computer } delay(100); // wait for a little 1.3.4 Nạp bootloader cho arduino Bootloader là một chương trình nhỏ được nạp sẵn vào chip vi điều (VĐK) khiển trên Arduino. Bạn lập trình cho Arduino một cách dễ dàng được là nhờ thứ này. Nếu không có bootloader, bạn sẽ không thể upload chương trình lên vi điều khiển trên Arduino theo cách thông thường được, mà phải cần một số phần cứng khác hỗ trợ (gọi là Programmer). Nối dây Bạn hãy nối dây trước theo sơ đồ sau (minh họa giữa 2 mạch Arduino sử dụng vi điều khiển ATmega328). 11 Hình 1.7: Kết nối dây UNO để nạp bootloader Chú ý mạch Arduino sử dụng vi điều khiển nào để nối dây cho đúng. Bảng 1: Các chân kết nối để nạp bootloader Arduino chưa Arduino Arduino chưa Arduino có có bootloader chưa có bootloader có bootloader bootloader (ATmega328/ (ATmega32u (ATmega1280/ 168/8) 4) 2560) GND GND GND GND 5V D10 (SS) D11 (MOSI) D12 (MISO) D13 (SCK) 5V RESET D11 (MOSI) D12 (MISO) D13 (SCK) 5V RESET D16 (MOSI) D14 (MISO) D15 (SCK) 5V RESET D51 (MOSI) D50 (MISO) D52 (SCK) Thao tác  Mở Arduino IDE 12  Mở ví dụ Arduino ISP  Vào menu Tools -> Boards để chọn mạch Arduino đang có bootloader  Vào menu Tools -> Serial Port để chọn cổng Serial đang sử dụng  Vào menu Tools -> Programmer chọn AVR ISP  Bấm Ctrl + U để upload chương trình  Vào menu Tool -> Boards để chọn mạch Arduino cần được nạp bootloader  Vào menu Tool -> Programmer chọn Arduino as ISP  Vào menu Tools chọn Burn Bootloader  Đợi cho tới lúc thành công Sau khi nạp bootloader xong, đèn LED trên cả 2 mạch Arduino nhấp nháy báo hiệu bootloader đã được nạp thành công. 13 1.4 Arduino Uno R3: Arduino Uno R3 là dòng mạch phổ biến nhất trong các dòng mạch Arduino, phiên bản Uno này là Revision 3 (R3) là phiên bản mới nhất hiện giờ, có độ chính xác và độ bền cao hơn rất nhiều so với arduino uno phiên bản cũ. Arduino UNO R3có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328.Bộ vi điều khiển thông minh này có thể điều khiển led đơn, điều khiển động cơ, xử lý tín hiệu, thu thập dữ liệu từ các cảm biến để hiển thị lên màn hinh Led LCD,… và nhiều ứng dụng khác. Hình 1.8: Aduino Uno Thông số kĩ thuật Vi điều khiển ATmega328 (họ 8bit) Điện áp hoạt động 5V – DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7-12V – DC Điện áp vào giới hạn 6-20V – DC Số chân Digital I/O 14 (6 chân PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) 1.4.1 Nguồn(Arduino Uno R3) 14 Arduino UNO R3 có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO R3.  GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO R3. Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.  5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.  3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.  Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.  IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.  RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.  Arduino UNO R3 không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy. Tôi khuyên bạn nên dùng nguồn từ cổng USB nếu có thể.  Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí có thể làm hỏng board. Điều này không được nhà sản xuất khuyến khích.  Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.  Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328.  Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.  Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.  Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng. 1.4.2 Bộ nhớ Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:  32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu.  2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất. 15  1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM. 1.4.3 Các cổng vào/ra Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Một số chân digital có các chức năng đặc biệt như sau:  2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết  Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.  Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.  LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng. Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 2101) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit. Đặc biệt, Arduino UNO R3 có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác. 1.5 Arduino nano Arduino Nano là một thiết kế nhỏ gọn với chức năng, sức mạnh, phần cứng cũng như cách sử dụng hoàn toàn tương đương với Arduino Uno, nếu bạn thích sự nhỏ gọn trong thiết kế thì đây là 1 sự lựa chọn hoàn toàn tối ưu dành cho bạn. Arduino Nano sử dụng chip dán ATmega328 (Arduino Nano 3.x) hoặc Atmega168 (Arduino Nano 2.x). Nó có chức năng tương tự của Arduino Duemilanove, nhưng khác pakage(gói). Nó thiếu chỉ một jack cắm điện DC, và làm việc với một cáp USB Mini-B. Nano được thiết kế và được sản xuất rộng khắp. 16 Hình 1.9: Arduino Nano THÔNG SỐ KĨ THUẬT điều khiển ATmega328 (họ 8bit) Điện áp hoạt động 5V – DC Tần số hoạt động 16 MHz Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7-12V – DC Điện áp vào giới hạn 6-20V – DC Số chân Digital I/O 14 (6 chân PWM) Số chân Analog 8 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 40 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng bởi bootloader 17 SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Kích thước 1.85cm x 4.3cm 1.5.1 Nguồn(Arduino Nano) Arduino Nano có thể được hỗ trợ thông qua kết nối USB Mini-B, với nguồn ngoài giới hạn 6-20V (pin 30), hoặc 5V quy định cung cấp điện bên ngoài (pin 27). Arduino Nano tự động với nguồn điện áp cao nhất. . Chip FTDI FT232RL trên Nano chỉ được hỗ trợ nếu board đang được cung cấp thông qua cổng USB. Kết quả là, khi chạy nguồn điện ngoài (không USB), đầu ra 3.3V (được cung cấp bởi chip FTDI) không có sẵn và các đèn LED RX và TX sẽ nhấp nháy nếu chân số 0 hoặc 1 là cao. 1.5.2 Bộ Nhớ Các Atmega168 có 16 KB bộ nhớ flash để lưu trữ(trong đó có 2 KB được sử dụng cho bộ nạp khởi động); các ATmega328 có 32 KB, (cũng với 2 KB được sử dụng cho bộ nạp khởi động). Atmega168 có 1 KB của SRAM và 512 byte EEPROM (có thể đọc và ghi với thư viện EEPROM); các ATmega328 có 2 KB của SRAM và 1 KB EEPROM. 1.5.3 Chân Input / Output Với mỗi chân trong số 14 chân (digital) trên Nano có thể được sử dụng như một đầu vào hay đầu ra, qua việc sử dụng pinMode (), digitalWrite (), và digitalRead (). Mỗi chân đó hoạt động ở mức 5 volts. Mỗi pin có thể cung cấp hoặc nhận 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 khác như:  Serial: 0 (RX) và 1 (TX). Được sử dụng để nhận (RX) và truyền tải (TX) TTL dữ liệu nối tiếp. Các chân này được kết nối với các chân tương ứng của FTDI USB-toTTL và nối tiếp chip.  Ngắt ngoài(pin 2 và 3):Các chân có thể được code để kích hoạt một ngắt trên một giá trị thấp, một xung lên và xuống, hoặc một sự thay đổi về giá trị. Dùng attachInterrupt () trong thư viện để biết chi tiết.  PWM: 3, 5, 6, 9, 10, và 11 Cung cấp 8-bit đầu ra PWM với analogWrite () chức năng.(http://arduino360.com/thu-vien/) để biết chi tiết.  SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)Những chân hỗ trợ SPI truyền thông  LED: 13 Có một LED kết nối với pin số 13. Khi pin là giá trị cao, đèn LED được bật, khi pin là thấp, nó ra.  Arduino Nano có 8 đầu vào tương tự, mỗi trong số đó cung cấp độ phân giải 10 bit (tức là năm 1024 giá trị khác nhau). Theo mặc định thì mức điện sẽ là 5 volts, tuy nhiên có thể thay đổi phạm vi của nó bằng cách sử dụng analogReference () chức năng. Chân Analog 6 và 7 không thể được sử dụng như chân số (digital). Ngoài ra, một số chân có chức năng khác: 18    I2C: 4 (SDA) và 5 (SCL). Hỗ trợ I2C (TWI) giao tiếp bằng cách sử dụng Wire library. Aref: Điện áp tham chiếu cho các đầu vào tương tự. Được sử dụng với analogReference (). Reset: Thiết lập lại hệ thống. 1.5.3 Arduino Promini Hình 1.10: Arduino promini tự làm Hình 1.11: Arduino promini Arduino Pro Mini là board Arduino rất nhỏ, sử dụng chip ATmega328. Nó có 14 chân vào ra tương tự ( với 6 chân PWM), 6 đầu vào số , một nút reset, các chân cắm. Nó có 6 chân có thể kết nối với FTDI để cung cấp điện cho cả mạch hoạt động.Board Arduino Pro Mini 5V 16MHz mặc định sử dụng nguồn 5V và IC ATmega328 chạy ở xung nhịp 16MHZ. Tuy nhiên trên board có sẵn ngõ vào RAW để cấp nguồn thông qua mạch điều áp. Nguồn vào cho ngõ RAW có thể từ 3.3V - 12V (max 12V):  RAW: cấp nguồn thông qua mạch điều áp 19  VCC: cấp nguồn 5V hoặc 3.3V (Lưu ý: nguồn > 5.5V sẽ gây hỏng IC). Vì sử dụng chung dòng chip ATmega328 nên việc lập trình và thiết kế ứng dụng hoàn toàn tương tự board Arduino Uno R3. Ngoài ra có 1 sự khác biệt nhỏ là board Arduino Pro Mini có tới 8 cổng analog (thay vì 6 như trên Arduino Uno R3). Trong đó 2 ngõ analog A6,A7 không thể xuất tín hiệu digital. Arduino Pro Mini không có sẵn giao tiếp USB Điều này có nghĩa là không thể cắm trực tiếp board Arduino Pro Mini vào máy tính như Arduino Mega 2560, Arduino Uno R3, Arduino Nano. Thông số kĩ thuật Vi điều khiển ATmega328 (họ 8bit) Điện áp hoạt động 5V hoặc 3.3V – DC Tần số hoạt động 16 MHz(5V) hoặc 8MHz(3.3V) Điện áp vào khuyên dùng 7-12V – DC Điện áp vào giới hạn 6-20V – DC Số chân Digital I/O 14 (6 chân PWM) Số chân Analog 6(độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 40 mA Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng bởi bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) 20
- Xem thêm -