TỔNG QUAN VỀ NỀN TẢNG ARDUINO - Tài Liệu Text - 123doc

Tải bản đầy đủ (.doc) (45 trang)
  1. Trang chủ
  2. >>
  3. Kỹ thuật
  4. >>
  5. Điện - Điện tử - Viễn thông
TỔNG QUAN VỀ NỀN TẢNG ARDUINO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.1 MB, 45 trang )

ĐẠI HỌC THÁI NGUYÊNĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGBÁO CÁOTHỰC TẬP CHUYÊN NGÀNH HỆ THỐNG ĐO NHIỆT ĐỘ MÔI TRƯỜNG DỰA TRÊN NỀN TẢNGPHẦN CỨNG ARDUINOGiảng viên hướng dẫn: Hồ Mậu ViệtSinh viên thực hiện:Trần Thanh LuânHà Nam, tháng 12 năm 2013MỤC LỤC1Mục lụcLỜI MỞ ĐẦU 3CHƯƠNG 1: TỔNG QUAN VỀ NỀN TẢNG ARDUINO 41.1.Giới thiệu chung 41.2. Cấu trúc phần cứng 71.2.1. Cấu trúc chung 71.2.2. Khối nguồn 71.2.3. Bộ nhớ 81.2.4. Chân vào ra 81.3. Cấu trúc phần mềm và lập trình 91.3.1. Download và cài đặt Arduino IDE 91.3.2. Môi trường lập trình Arduino 101.3.3.Chương trinh điều khiển LED ở chân 13 111.3.4. Cấu trúc một chương trình Arduino 111.3.5. Compile và Upload chương trình lên bo 131.3.6. Tập lệnh cơ bản của Arduino 13CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 172.1. Vai trò của việc đo nhiệt độ môi trường 172.2. Thiết kế chi tiết 172.2.1. Mô hình hệ thống 172.2.2. Thiết kế phần cứng 192.2.3. Lưu đồ thuật toán 272.2.4. Sơ đồ mạch nguyên lý của hệ thống 28Đặt vấn đề 29PHỤ LỤC 39NHẬN XÉT CỦA GIÁO VIÊN 442LỜI MỞ ĐẦUArduino thực sự đã gây sóng gió trên thị trường người dùng DIY (lànhững người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài nămgần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị diđộng. Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậcphổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phảingạc nhiên về mức độ phổ biến. 3Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tươngtá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óngngay 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ệntượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứngtới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một boArduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị.Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên mộtvị vua vào thế kỷ thứ 9 là King Arduin. Arduino chính thức được đưa ra giớithiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên củagiáo sư Massimo Banzi, là một trong những người phát triển Arduino, tạitrường Interaction Design Instistute Ivrea (IDII). Mặc dù hầu như không đượctiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờnhững lời truyền miệng tốt đẹp của những người dùng đầu tiên.Nhứng ứng dụng nổi bật của Arduino là: máy in 3D, robot, thiết bị baykhô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. Đó là những hệ thống tương đối phức tạp, nhưng với mức độtìm hiểu, thì đề tài “Thiết kế hệ thống và điều khiển nhiệt độ sử dụng nềntảng Arduino”, cụ thể là cho một trang trại gà vừa có ý nghĩa thực tiễn vừa,vừaphù hợp với những người mới bắt đầu tìm hiểu về Arduino.CHƯƠNG 1: TỔNG QUAN VỀ NỀN TẢNG ARDUINO1.1.Giới thiệu chungArduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngàycàng chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáocủa người dùng trong cộng đồng nguồn mở (open-source). Tuy nhiên tại ViệtNam Arduino vẫn còn chưa được biết đến nhiều.4Hình 1.1. Hình ảnh một ArduinoArduino cơ bản là một nền tảng tạo mẫu mở về điện tử (open-sourceelectronics prototyping platform) được tạo thành từ phần cứng lẫn phần mềm.Về mặt kĩ thuật có thể coi Arduino là 1 bộ điều khiển logic có thể lập trìnhđược. Đơn giản hơn, Arduino là một thiết bị có thể tương tác với ngoại cảnhthông qua các cảm biến và hành vi được lập trình sẵn. Với thiết bị này, việclắp ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết. Một điềukhông hề dễ dàng cho những ai đam mê công nghệ và điều khiển học nhưnglà người ngoại đạo và không có nhiều thời gian để tìm hiểu sâu hơn về về kĩthuật lập trình và cơ điện 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ằngngôn ngữ C/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiếnthứ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 riêngcho mình một món đồ mang tính công nghệ. Do vậy đó là lí do Arduino đượcphát triển nhằm đơn giả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 xử lí và mọi người có thể tiếp cận dễ dàng hơn với thiết bịđiện tử mà không cần nhiều về kiến thức điện tử và thời gian. Sau đây là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ể thực hiệntrên các hệ điều hành khác nhau như Windows, Mac Os, Linux trênDesktop, Android trên di động. 5- 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ầnmềm chạy trên Arduino được chia sẻ dễ dàng và tích hợp vào cácnền tảng khác nhau. - Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạngmodule nên việc mở rộng phần cứng cũng dễ dàng hơn.- Đơn giản và nhanh: Rất dễ 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.Arduino có rất nhiều module, mỗi module được phát triển cho một ứngdụng. Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loạibo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạchchí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ácnhau. Một số bo 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 bomạch chính. Ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển độngcơ.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ài ứng dụng thực sự chứng tỏ khả năngvượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rấtphức tạp. Sau đây là danh sách một số ứng dụng nổi bật của Arduino nhưtrong công nghệ in 3D, robot dò đường theo hướng có nguồn nhiệt, tạo mộtthiết bị nhấp nháy theo âm thanh và đèn laser hay là một thiết bị báo chokhách hàng biết khi nào bánh mì ra lò.61.2. Cấu trúc phần cứng1.2.1. Cấu trúc chungHình 1.2. Cấu trúc phần cứng của Arduino UnoArduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328.Nó co 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 chế đô rộng xung. Có 6 chân đầu vào tín hiệu tương tự cho phép chúngta 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ó một cổng kết nối bằng chuẩnUSB để chúng ta nạp chương trình vào bo mạch và một chân cấp nguồn chomạch, một ICSP header, một nút reset. Nó chứa tất cả mọi thứ cần thiết để hỗtrợ các vi điều khiển, nguồn cung cấp cho Arduino có thể là từ máy tính thôngqua cổng USB hoặc là từ bộ nguồn chuyên dụng được biến đổi từ xoay chiềusang một chiều hoặc là nguồn lấy từ pin.1.2.2. Khối nguồnArduino có thể được hỗ trợ thông qua kết nối USB hoặc với một nguồncung 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 vi đ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. Tuy nhiên, nếu cung cấp với ít hơn 7V, chân 5V có thể cung cấpít hơn 5V và hệ thống vi điều khiển có thể không ổn định. Nếu cấp nhiều hơn12V, bộ điều chỉnh điện áp có thể quá nóng và gây nguy hiểm cho bo mạch.Phạm vi khuyến nghị là 7V đến 12V.7+ Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điệnbên ngoài (khác với nguồn 5V lấy từ USB hoặc nguồn thông qua jack cắmnguồn riêng). 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 bomạch và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch. + Chân 3,3V: Cung cấp nguồn cho các thiết bị cảm biến. + Chân GND: Chân nối đất.+ Chân Aref: Tham chiếu điện áp đầu vào analog.+ Chân IOREF: Cung cấp điện áp cho các vi điều khiển hoạt động.Một shield được cấu hình đúng có thể đọc điện áp chân IOREF và lựa chọnnguồn thích hợp hoặc kích hoạt bộ chuyển đổi điện áp để là việc ở mức 5Vhoặc 3,3V.1.2.3. Bộ nhớChip Atmega328 có 32KB (với 0,5KB sử dụng cho bootloader). Nócòn có 2KB SRAM và 1KB EEPROM.1.2.4. Chân vào raAduino Uno có 14 chân digital (chân 0 – 13) và 6 chân analog (chânA0 – A5).Các chândigital chúng ta có thể cấu hình để làm chân nhần dữ liệu vàotừ các thiết bị ngoại vi hoặc làm chân để truyền tín hiêu ra các thiết bị ngoạivi. Bằng cách sử dụng các hàmpinMode(), digitalWrite() và digitalRead().Mỗi chân có thể cung cấp hoặc nhận một dòng điện tối đa 40mA và có mộtđiện trở kéo nội (mặc định không nối) 20-50 kOhms. Ngoài ra có một số châncó chức năng đặc biệt:+ Chân 0 (Rx): Chân được dùng để nhận dữ liệu nối tiếp. + Chân 1 (Tx): Chân được dùng để truyền dữ liệu nối tiếp.8+ Chân 2 và 3: Chân ngắt ngoài.+ Chân 3, 5, 6, 9, 10 và 11: Chân vào/ra số hoặc để điều chế độ rộngxung (chân 13 được nối với một LED đơn, sáng tắt tương ứng với mức logiccủa chân này).+ Chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Chuẩn giao tiếpSPI.Các chân analog có độ phân giải 10 bit (tương ứng với 1024 mức giá trịkhác nhau) ứng với mức từ 0 – 5V. Ngoài ra một số chân có các chức năngđặc biệt:+ Chân A4 (SDA) và A5 (SCL): Hỗ trợ truyền thông TWI.1.3. Cấu trúc phần mềm và lập trình1.3.1. Download và cài đặt Arduino IDEĐể có thể lập trình cho bo Arduino, trước hết ta cần download và càimôi trường viết chương trình cho Arduino.Download tại: />Hướng dẫn cài đặt cho người dùng Windows(người sử dụng hệ điềuhành Mac thì không cần phải cài driver).- Kết nối bo Arduino với máy tính, và để máy tính tự động cài đặtdriver USB. Tuy nhiên việc tự động cài driver sẽ có thể không thành công.- Nếu không thành công thì: Mở Device Manager của Windows trênControl Panel- Ở mục Ports (COM & LPT) bạn sẽ thấy mục Arduino UNO(COMxx)- Nhấp phải vào mục Arduino UNO (COMxx) và chọn UpdateDriver Software.- Trên cửa sổ hiện ra, chọn Browse my computer for driver software.91.3.2. Môi trường lập trình ArduinoThiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng manglạ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 đồngnguồn mở là cực kỳ lớn.Hình 1.3. Môi trường lập trình cho ArduinoGiao diện môi trường lập trình Arduino gồm có các menu, thanhtoolbar và phần soạn chương trình. Chương trình điều khiển Arduino đượcgọi là "sketch".Trong menu File\Examples có rất nhiều chương trình ví dụ. Một trongnhững chương trình đơn giản nhất để thử nghiệm bo Arduino là "Blink" trongFile\Examples\01.Basics. Chương trình này chỉ làm nhấp nháy đèn LED trênbo (nối với chân 13).101.3.3.Chương trinh điều khiển LED ở chân 13 /* Nhấp nháy led với chu kì 2 giây, 1 giây tắt, 1 giây sáng */// Pin 13 được kết nối với 1 led đơn// đặt cho nó một tên int led = 13; // chương trình con setup chạy một lần khi bắt đầu hoặc nhấn reset void setup(){ // thiết lập ngõ ra digital pinMode(led, OUTPUT); } // vòng lặp chạy vô tận void loop() {digitalWrite(led, HIGH); //led sáng (mức áp cao) delay(1000); // chờ một giây digitalWrite(led, LOW); // tắt led bằng cách hạ mức áp xuông mức thấp delay(1000); // chờ một giây }1.3.4. Cấu trúc một chương trình ArduinoQua ví dụ trên ta có thể thấy cấu trúc của một chương trình Arduinogồm có các phần sau:11Hình 1.4. Vòng đời của chương trình ArduinoPhần 1: Khai báo biến và các const.VD: int led = 13; Phần 2: SetupPhần này chỉ được gọi một lần duy nhất sau khi chạy chươngtrình trên Arduino.Nhiệm vụ của nó là gán các giá trị ban đầu cho các biến, và cáclệnh setup khác như định nghĩa ngõ vào/ra hoặc setup thông số chocổng serial v.v void setup(){ // thiết lập ngõ ra digital pinMode(led, OUTPUT); } Phần 3: Vòng lặp chính loop.Đây là phần chính của chương trình. Tất cả nội dung trong phầnnày sẽ được lập lại đến khi tắt nguồn của bo Arduino. void loop() 12{ digitalWrite(led, HIGH); //led sáng (mức áp cao) delay(1000); // chờ một giây digitalWrite(led, LOW); // tắt led bằng cách hạ mức ápxuống// mức thấp delay(1000); // chờ một giây }1.3.5. Compile và Upload chương trình lên bo- Chọn loại bo (ví dụ Arduino Uno) ở menu Tools\Boards\Arduino.- Chọn cổng COM ở menu Tools\Serial Port.- Nhấn nút Upload trên thanh toolbar để bắt đầu compile và uploadchương trình lên bo.Hình 1.5. Chạy chương trình ví dụ Blink1.3.6. Tập lệnh cơ bản của Arduino1.3.6.1. Lệnh điều khiển cấu trúc ifif (<điều kiện>) {13// Lệnh thực thi nếu điều kiện đúng} if … elseif (<điều kiện>) {// Lệnh thực thi nếu điều kiện đúng} else {// Lệnh thực thi nếu điều kiện sai} forfor (<giá trị khởi tạo>; <điều kiện>; <thay đổi giá trị>){// Lệnh thực thi nếu điều kiện đúng} switch caseswitch (<biến>) {case <giá trị 1>:// Lệnh thực thi nếu <biến> bằng <giá trị 1>Break;case <giá trị 2>:// Lệnh thực thi nếu <biến> bằng <giá trị 2>Break;…case <giá trị n>:// Lệnh thực thi nếu <biến> bằng <giá trị n>Break;[default: // Lệnh thực thi nếu <biến> không bằng giá trị nào]} whilewhile (<điều kiện>) {// Lệnh thực thi nếu <điều kiện> đúng} do … whiledo {// Lệnh thực thiWhile (<điều kiện>)Ngoài ra còn một số lệnh khác như continue, break, return, goto…1.3.6.2. Toán tử đại số= Phép gán bằng+ Phép cộng- Phép trừ* Phép nhân14/ Phép chia lấy phần nguyên% Phép chưa lấy phần dư1.3.6.3. Toán tử so sánh== So sánh bằng!= So sánh khác< So sánh nhỏ hơn> So sánh lớn hơn<=So sánh nhỏ hơn hoặcbằng>= So sánh lớn hơn hoặc bằng1.3.6.4. Toán tử logic&& AND|| OR! NOT1.3.6.5. Kiểu dữ liệuNgôn ngữ lập trình cho Arduino hỗ trợ rất nhiều kiểu dữ liệu như: void,boolean, char, unsigned char, byte, int, unsigned int, word, long, unsignedlong, short, float, double, string – mảng char, string – đối tượng, mảng.1.3.6.6. Hàm vào ra số pinMode(pin, mode): cấu hình chân là vào hay ra.pin: số chân digital.mode: INPUT, OUTPUT, hoặc INPUT_PULLUP. digitalWrite(pin, value): xuất giá trị mức cao hoặc thấp ra chân I/O số.pin: số chân digital.value: HIGH, LOW. digitalRead(pin): đọc giá trị chân (HIGH hoặc LOW).1.3.6.7. Hàm vào ra tương tự analogReference(type): Định cấu hình điện áp tham chiếu được sửdụng cho đầu vào tương tự.type: DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56,EXTERNAL. analogRead(pin): đọc giá trị từ chân tương tự.pin: số chân analog. analogWrite(pin, value): xuất giá trị tới chân analog (PWM).pin: số chân analog.15Value: độ rộng xung (0 - 255).1.3.6.8. Hàm vào ra nâng cao tone() noTone()  shiftOut()  shiftIn() pulseIn()1.3.6.9. Hàm thời gian millis()  micros()  delay()  delayMicroseconds()Ngoài những hàm kể trên, Arduino còn một số hàm khác và cách sử dụngtừng hàm trong phần Help/Reference.Và để có thể giao tiếp dễ dàng hơn vớicác thiết bị ngoại vi, ta có thể sử dụng các thư viện bổ trợ được chia sẻ rộngrãi trên trang chủ />16CHƯƠNG 2: THIẾT KẾ HỆ THỐNG2.1. Vai trò của việc đo nhiệt độ môi trườngNgày này, điều khiển tự động đã trở thành một nhu cầu không thể thiếuđược trong hệ thống công nghiệp. Một trong các yếu tố được điều khiển nhiềutrong hệ thống công nghiệp đó là nhiệt độ. Nhiệt độ được đo, điều khiển theonhu cầu sử dụng ví dụ như trong các hệ thống nhiệt của nồi hơi, các lò ấp, cáclò sấy… Các hệ thống đo và điều khiển nhiệt hiện nay xuất hiện nhiều trên thịtrường với nhiều phương pháp đo và điều khiển khác nhau. Mỗi phương phápđều có ưu và nhược điểm riêng. Để giải quyết các vấn đề đó, với những kiếnthức đã học về kĩ thuật điện, điện tử cùng sự tìm hiểu thêm về kĩ thuật vi điềukhiển, em đã tính toán và đưa ra giải pháp điều khiển nhiệt độ ứng dụng vi xửlý với mạch thiết kế đơn giản dễ dàng thiết kế và nâng cấp. Trong thực tếchúng ta thấy việc đo nhiệt độ môi trường là rất cần thiết và thông qua việc đonhiệt đọ đó chúng ta ứng dụng vào việc điều khiển bật tắt thiết bị điện hoặcứng dụng vào các lĩnh vực khác.2.2. Thiết kế chi tiết2.2.1. Mô hình hệ thốngMô hình hệ thống gồm một khối xử lý trung tâm là Arduino Uno đóngvai tiếp nhận và xử lý toàn bộ các thông tin mà các thiết bị ngoại vi gửi về,đồng thời gửi các lệnh điều khiển ngược trở lại đến các thiết bị ngoại vi. Khôixử lý trung tâm được kết nối với cảm biến nhiệt độ để thu thập thông nhiệt độmôi trường đưa về khối xử lý trung tâm xử lý và hiện thị giá trị nhiệt độ lênmàn hình hiện thị LCD. Bài toán thiết kế ở đây là ứng dụng việc đo nhiệt độmôi trường vào để điều khiển bật tắt một số thiết bị điện và điều khiển quạt.17Hình 2.1. Sơ đồ khối hệ thống182.2.2. Thiết kế phần cứngHình 2.2. Sơ đồ nguyên lýHệ thống của chúng ta gồm các khối chính sau:- Khối xử lý trung tâm: Arduino Uno.- Khối cảm biến: Cảm biến nhiệt độ DS18B20.- Khối hiển thị: LCD 16x2.- Khối quạt mát.- Khối đèn sưởi.- Khối nguồn: lấy từ USB hoặc nguồn ngoài.Nguyên lý hoạt động:Cảm biến nhiệt độ có nhiệm vụ đo nhiệt độ của chuồng và gửi về cho khối xử lý trung tâm. Khi nhiệt độ vượt quá mức TH hoặc thấp hơn TL được thiết lập trước thì ta tương ứng sẽ kích hoạt hệ thống quạt mát hay đèn sưởi. 19Nhiệt độ hiện tại của chuồng được hiển thị lên LCD để ta có thể quan sát, điều chỉnh ngưỡng nhiệt độ sao cho hợp lý.2.2.1.1.Khối cảm biến: Cảm biến nhiệt độ DS18B20. Tìm hiểu cảm biến nhiệt độ DS18B20Cảm biến đo nhiệt độ DS18b20 sử dụng chuẩn giao tiếp 1 WIRE (Sửdụng duy nhất 1 chân để truyền dữ liệu), đường dẫn tín hiệu và đường dẫnđiện áp nguồn nuôi có thể dùng chung trên một dây dẫn. Ngoài ra, nhiều cảmbiến có thể dùng chung trên một đường dẫn (Rất thích hợp với các ứng dụngđo lường đa điểm).Các đặc điểm kỹ thuật của cảm biến DS1820 có thể kể ra một cách tómtắt như sau:  Dải đo nhiệt độ -550C đến 1250C, từng bậc 0,50C, có thể đạt độ chínhxác đến 0,10C bằng việc hiệu chỉnh qua phần mềm. Độ phân giải do người dùng lựa chọn từ 9-12 bit. Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng (từ 3,0V -5,5V). Dòng tiêu thụ tại chế độ nghỉ cực nhỏ.  Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá200ms.  Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộnhớ ROM trên chip (on chip). Cấu tạoHình 2.3. Hình ảnh thực tế và sơ đồ chân20Với kiểu chân TO-92 ta có chức năng các chân như sau: + Chân 1 (GND): Chân nối đất.+ Chân 2 (DQ): Chân dữ liệu vào/ra.+ Chân 3 (VDD): Chân nguồn.Hình 2.4. Mối quan hệ giữa nhiệt độ và dữ liệuHình 2.5. Sơ đồ khối Cấp nguồn: DS18b20 có thể được cấp bởi nguồn ngoài ở chân VDD hoặccó thể hoạt động ở chế độ “ký sinh”. 21Hình 2.6. Cấp nguồn cho DS18B20Mỗi cảm biến DS18B20 có một dãy mã 64 bit duy nhất được lưu trongbộ nhớ ROM từ khi sản xuất bằng kỹ thuật laze.Dãy mã này được chia thành 3 nhóm:- 8 bit đầu tiên là mã định danh của họ một dây, mã của DS18B20 là28h.- 48 bit tiếp theo là mã số xuất xưởng duy nhất.- 8 bít có ý nghĩa nhất là mã kiểm tra CRC. Tập lệnh của DS18B20- READ ROM (33h): Cho phép đọc ra 64 bit mã đã khắc bằng lasertrên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếukhông sẽ xảy ra xung đột trên bus do tất cả các thiết bị tớ cùng đáp ứng.- MATCH ROM (55h): Lệnh này được gửi đi cùng với 64 bit ROMtiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụthể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nàocó 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứnglại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROMkhông trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả22trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảmbiến một dây.- SKIP ROM (CCh): Lệnh này cho phép thiết bị điều khiển truy nhậpthẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bitROM. Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quảkhi trên bú chỉ có một cảm biến.- SEARCH ROM (F0h): Lệnh này cho phép bộ điều khiển bus có thểdò tìm được số lượng thành viên tớ đang được đấu vào bus và các giá trị cụthể trong 64 bit ROM của chúng bằng một chu trình dò tìm.- ALARM SEARCH (ECh): Tiến trình của lệnh này giống hệt nhưlệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuấthiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báoở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏhơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặttrên thanh ghi trong bộ nhớ của cảm biến.Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnhROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiếtbị chủ sẽ đưa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bịchủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820.khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cungcấp điện áp nguồn. Các lệnh chức năng có thể được mô tả ngắn gọn như sau:- WRITE SCRATCHPAD (4Eh): Lệnh này cho phép ghi 2 byte dữliệu vào bộ nhớ nháp của DS1820. Byte đầu tiên được ghi vào thanh ghi TH(byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhấtvà kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghitrước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuấthiện.- READ SCRATCHPAD (BEh): Lệnh này cho phép thiết bị chủ đọcnội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhấy của byte 0và tiếp tục cho đến byte rhứ 9 (byte 8 – CRC). Thiết bị chủ có thể xuất ra một23xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phầncủa dữ liệu trên bộ nhớ nháp cần được đọc.- COPYSCRATCHPAD (48h): Lệnh này copy nội dung của hai thanhghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM. Nếu cảm biến được sửdụng trong chế dộ cấp nguồn l bắt đầu việc đo.- CONVERT T (44h): Lệnh này khởi động một quá trình đo vàchuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kếtquả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nhápThời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếuthực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.- READ POWER SUPPLY (B4h): Một lệnh đọc tiếp sau lệnh này sẽcho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọcđược bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấpnguồn qua một đường dẫn riêng. Ứng dụng: DS18B20 có rất nhiều ứng dụng, nổi bật là: + Điều khiển nhiệt độ (Thermostatic controls).+ Hệ thống công nghiệp (Industrial systems).+ Sản phẩm tiêu dùng (Consumer products).+ Hay bất cứ hệ thống nhạy cảm với nhiệt độ nào.2.2.1.2.Khối xử lý: Arduino UnoTham khảo mục 1.2.2.2.1.3.Khối hiển thị: LCD 16x2 Hình dáng và kích thướcCó rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau,trên hình 1 là loại LCD thông dụng.24Hình 2.7. LCD 16x2Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780)bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này đượcđánh số thứ tự và đặt tên như hình sau:Hình 2.8. Sơ đồ chân của LCD- Chức năng các chânChân Ký hiệu Mô tả1 VSSĐất2 VDD+5V3 VEENguồn điều khiển tương phản4 RSRS = 0: chọn thanh ghi lệnhRS = 1: chọn thanh ghi dữ liệu5 R/WR/W = 0: ghiR/W = 1: đọc6 E Cho phép7 D0 Dữ liệu8 D1 Dữ liệu9 D2 Dữ liệu10 D3 Dữ liệu11 D4 Dữ liệu12 D5 Dữ liệu13 D6 Dữ liệu25

Tài liệu liên quan

  • Tổng quan về công ty TNHH Quà Tặng Quả Táo .DOC Tổng quan về công ty TNHH Quà Tặng Quả Táo .DOC
    • 46
    • 722
    • 3
  • Báo cáo tổng hợp về tổng quan về Công ty đầu tư hạ tầng khu công nghiệp và đô thị số 18 & tình hình tổ chức thực hiện công tác kế toán & tình hình thực hiện công tác phân tích hoạt động kinh tế Báo cáo tổng hợp về tổng quan về Công ty đầu tư hạ tầng khu công nghiệp và đô thị số 18 & tình hình tổ chức thực hiện công tác kế toán & tình hình thực hiện công tác phân tích hoạt động kinh tế
    • 23
    • 898
    • 0
  • Tổng quan về nền công nghiệp sản xuất ô tô và hệ thống dịch vụ sau bán hàng ở một số doanh nghiệp ô tô có vốn đầu tư nước  ngoài ở việt nam Tổng quan về nền công nghiệp sản xuất ô tô và hệ thống dịch vụ sau bán hàng ở một số doanh nghiệp ô tô có vốn đầu tư nước ngoài ở việt nam
    • 84
    • 751
    • 0
  • Tổng quan về Công ty đầu tư phát triển điện lực và hạ tầng Tổng quan về Công ty đầu tư phát triển điện lực và hạ tầng
    • 38
    • 514
    • 3
  • TỔNG QUAN VỀ VỐN VÀ HIỆU QUẢ SỬ DỤNG VỐN CỦA DOANH NGHIỆP TRONG NỀN KINH TẾ TỔNG QUAN VỀ VỐN VÀ HIỆU QUẢ SỬ DỤNG VỐN CỦA DOANH NGHIỆP TRONG NỀN KINH TẾ
    • 56
    • 797
    • 3
  • Tổng quan về công ty cổ phần đầu tư hạ tầng khu công nghiệp Tổng quan về công ty cổ phần đầu tư hạ tầng khu công nghiệp
    • 26
    • 543
    • 0
  • Tổng quan về Bộ kế hoạch và đầu tư & Vụ kết cấu hạ tầng và đô thị Tổng quan về Bộ kế hoạch và đầu tư & Vụ kết cấu hạ tầng và đô thị
    • 40
    • 663
    • 1
  • Giới thiệu  tổng quan về kế hoạch và đầu tư và vụ kết cấu hạ tầng và đô thị Giới thiệu tổng quan về kế hoạch và đầu tư và vụ kết cấu hạ tầng và đô thị
    • 40
    • 555
    • 0
  • Tổng quan về công ty xây dựng phát triển hạ tầng và sản xuất vật liệu xây dựng Hà Tây Tổng quan về công ty xây dựng phát triển hạ tầng và sản xuất vật liệu xây dựng Hà Tây
    • 16
    • 438
    • 0
  • tổng quan về nền công nghiệp sản xuất ô tô và hệ thống dịch vụ sau bán hàng ở một số doanh nghiệp có vốn đầu tư nước ngoài ở việt nam tổng quan về nền công nghiệp sản xuất ô tô và hệ thống dịch vụ sau bán hàng ở một số doanh nghiệp có vốn đầu tư nước ngoài ở việt nam
    • 66
    • 580
    • 1

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

(3.28 MB - 45 trang) - TỔNG QUAN VỀ NỀN TẢNG ARDUINO Tải bản đầy đủ ngay ×

Từ khóa » Tổng Quan Về Arduino