Lời mở đầu Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328 được phát triển bởi Arduino. Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau. Mạch Arduino Uno thích hợp cho những bạn mới tiếp cận và đam mê về điện tử, lập trình…Dựa trên nền tảng mở do Arduino.cc cung cấp các bạn dễ dàng xây dựng cho mình một dự án nhanh nhất ( lập trình Robot, xe tự hành, điều khiển bật tắt led…). 1 Mạch Arduino Uno R3 Khi arduino chưa ra đời, để làm được một dự án điện tử nhỏ liên quan đến lập trình, biên dịch, chúng ta cần đến sự hỗ trợ của các thiết bị biên dịch khác để hỗ trợ.
Ví dụ như, dùng Vi điều khiển PIC hoặc IC vi điều khiển họ 8051., chúng ta phải thiết kế chân nạp onboard, hoặc mua các thiết bị hỗ trợ nạp và biên dịch như mạch nạp 8051, mạch nạp PIC. Hiện nay Arduino được biết đến ở Việt Nam rất rộng rãi. Từ học sinh trung học, đến sinh viên và người đi làm. Những dự án nhỏ và lớn được thực hiện một cách rất nhanh, các mã nguồn mở được chia sẻ nhiều trên diễn dàn trong nước và nước ngoài.
Giúp ích rất nhiều cho những bạn theo đam mê nghiên cứu chế tạo những sản phẩm có ích cho xã hội. 6 Trong những năm qua, Arduino là bộ não cho hàng ngàn dự án điện tử lớn nhỏ, từ những sản phẩm ra đời ứng dụng đơn giản trong cuộc sống đến những dự án khoa học phức tạp. 2 Sơ đồ cấu trúc Arduino Uno R3 Cứ như vậy, thư viện mã nguồn mở ngày một tăng lên, giúp ích cho rất nhiều người mới biết đến Arduino cũng như những chuyên viên lập trình nhúng và chuyên gia cùng tham khảo và xây dựng tiếp nối.… Bạn muốn thiết kế điều khiển thiết bị thông qua cảm biến ánh sáng, Đo nồng độ hóa chất, khí ga và xử lý thông qua cảm biến nồng độ và cảm biến khí, Bạn muốn làm 1 con robot mini, Bạn muốn quản lý tắt mở thiết bị điện trong nhà, bạn muốn điều khiển motor, nhận dạng ID, Khó hơn xíu là bạn muốn làm một máy CNC hoặc máy in 3D mini, máy bay không người lái ( Flycam) một hệ thống thu thập dữ liệu thông qua GSM, xử lý ảnh,điều khiển vạn vật thông qua internet giao tiếp với điện thoại thông minh. Để làm được điều đó, từ đơn giản đến phức tạp bạn cần sử dụng ngôn ngữ lập trình Arduino dựa trên sơ đồ, hệ thống của bạn thiết kế, thông qua phần mềm Arduino IDE, để thực hiện những yêu cầu đó đưa về bộ phận xử lý trung tâm ( Arduino) 7 2.
Các thông số của Arduino Uno R3: Bảng 2. 1 Thông số kỹ thuật của Arduino R3 Chip điều khiển ATmega328P Điện áp hoạt động 5V Điện áp đầu vào (khuyên dùng) 7-12V Điện áp đầu vào (giới hạn) 6-20V Số chân Digital 14 (trong đó 6 chân cung cấp đầu ra PWM) Số chân PWM Digital 6 Số chân Analog 6 Dòng điện DC trên mỗi chân I/O 20 mA Dòng điện DC trên chân 3.3V 50 mA 32 KB (ATmega328P) of which 0.5 KB used by Flash Memory bootloader SRAM 2 KB (ATmega328P) EEPROM 1 KB (ATmega328P) Tốc độ thạch anh 16 MHz LED_BUILTIN 13 Chiều dài 68.6 mm Chiều rộng 53.4 mm Cân nặng 25 g 2. Cấp nguồn LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW).
VIN: Chân này dùng để cấp nguồn ngoài (điện áp cấp từ 7-12VDC). GND: Là chân mang điện cực âm trên board. 8 IOREF: Điệp áp hoạt động của vi điều khiển trên Arduino UNO và có thể đọc điện áp trên chân IOREF. Chân IOREF không dùng để làm chân cấp nguồn.
3 Chân cấp nguồn Arduino Uno R3 2. Bộ nhớ Vi điều khiển ATmega328: • 32 KB bộ nhớ Plash: trong đó bootloader chiếm 0. • 2 KB cho SRAM: (Static Random Access Menory): giá trị các biến khai báo sẽ được lưu ở đây. Khai báo càng nhiều biến thì càng tốn nhiều bộ nhớ RAM.
Khi mất nguồn dữ liệu trên SRAM sẽ bị mất. • 1 KB cho EEPROM: (Electrically Eraseble Programmable Read Only Memory): Là nơi có thể đọc và ghi dữ liệu vào đây và không bị mất dữ liệu khi mất nguồn. Các chân đầu vào và đầu ra Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra và chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead(). Giá trị điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm.
Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch. 9 Ngoài ra, một số chân Digital có chức năng đặt biệt: • Digital: Các chân I/O digital (chân số 2 – 13 ) được sử dụng làm chân nhập, xuất tín hiệu số thông qua các hàm chính : pinMode(), digitalWrite(), digitalRead(). Điện áp hoạt động là 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển. • Analog :Uno có 6 chân Input analog (A0 – A5), độ phân giải mỗi chân là 10 bit (0 – 1023 ).
Các chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tương ứng với 1024 giá trị, sử dụng hàm analogRead(). • Ngắt ngoài: Chân 2 và 3. • PWM: 3, 5, 6, 9, 10 và 11 Cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite (). Các chân này hỗ trợ giao tiếp SPI bằng thư viện SPI.
• LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW). • TWI/I2C: A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác. 4 Sơ đồ các chân đầu vào và đầu ra 2.6 Giới thiệu Chip điều khiển ATmega328P: ATmega328P là một trong những vi điều khiển công nghệ AVR hiệu suất cao với số lượng chân cắm và tính năng lớn.
10 Được thiết kế bằng công nghệ CMOS 8-bit và CPU RSIC giúp nâng cao hiệu suất và tối ưu mức sử dụng năng lượng nhờ có chế độ ngủ tự động và cảm biến nhiệt độ bên trong. ATmega328P có mạch bảo vệ bên trong và có nhiều cách lập trình giúp các kỹ sư sử dụng linh hoạt ở các tính huống khác nhau. IC hỗ trợ nhiều giao thức giao tiếp hiện đại cho các module khác và chính bộ vi điều khiển, đó là lý do tại sao ATmega328P được sử dụng phổ biến. ATmega328P là một trong những vi điều khiển nổi tiếng của Atmel vì nó được sử dụng trong bo mạch arduino UNO.
Mạch bên trong của ATmega328P được thiết kế với tính năng tiêu thụ dòng điện thấp. Con chip này chứa 32 kilobyte bộ nhớ flash trong, 1 kilobyte EEPROM và 2 kilobyte SRAM. EEPROM và bộ nhớ flash là bộ nhớ lưu thông tin và thông tin đó vẫn thoát ra mỗi khi nguồn điện bị ngắt nhưng SRAM là bộ nhớ chỉ lưu thông tin cho đến khi có điện và khi ngắt nguồn điện tất cả thông tin được lưu trong SRAM sẽ bị xóa. 5 Sơ đồ Chip điều khiển ATmega328P chân dán Một số ứng dụng của vi điều khiển ATmega328P như: • Sử dụng để lập trình cho các mục đích trong cuộc sống.
• Sử dụng để lập trình cho các thiết bị ngoại vi. • Sử dụng trong công nghiệp, mô phỏng cách mạch cảnh báo, nhận tín hiệu. • Ứng dụng nhiều trong công nghệ sản xuất, tự động hóa. 2 Các thông số kỹ thuật cơ bản của vi điều khiển ATmega328P Bộ nhớ chương trình 32 kB Bus dữ liệu 8 bit Độ phân giải ADC 10 bit.
Tần số 20 MHz Số lượng I/O 23 I/O RAM 2 kB Điện áp hoạt động 1.5V Nhiệt độ hoạt động -40 đến 85 độ C Loại RAM dữ liệu SRAM Số kênh ADC 8 kênh Dữ liệu ROM 1 kB ROM EEPROM Loại giao diện I2C, SPI, USART Dòng megaAVR Loại chân chân dán 12 2. Giới thiệu Mạch cầu H Mạch cầu H là một mạch đơn giản dùng để điều khiển động cơ DC quay thuận hoặc quay nghịch. Trong thực tế, có nhiều kiểu mạch cầu H khác nhau tùy vào cách chúng ta lựa chọn linh kiện có dòng điện, áp điều khiển lớn hay nhỏ, tần số xung PWM… Và chúng sẽ quyết định đến khả năng điều khiển của cầu H. 6 Mô hình mạch cầu H Một động cơ DC có thể quay thuận hoặc quay nghịch tùy thuộc vào cách bạn mắc cực âm và dương cho motor đó.
Ví dụ, động cơ DC có hai đầu A và B. Nếu bạn nối A vào cực dương (+) và B vào cực âm (-) của nguồn thì động cơ quay theo chiều thuận (giả sử cùng chiều kim đồng hồ). Bây giờ bạn nối ngược lại, A vào (-) và B vào (+), động cơ sẽ quay nghịch ( giả sử ngược chiều kim đồng hồ). Tương tự, khi ta đóng S1 và S4, ta đã cho A nối với cực dương (+) và B nối với cực âm (-) của nguồn, một dòng điện chạy từ nguồn qua S1 qua động cơ qua S4 về mass làm động cơ quay theo chiều thuận.
8 Động cơ quay chiều thuận Ngược lại, khi ta đóng S2 và S3, động cơ quay nghịch. 7 Động cơ quay chiều nghịch Như vậy, mạch cầu H dùng để đảo chiều quay động cơ. Lưu ý, bạn không bao giờ được phép đóng cùng lúc S1 và S2 hoặc S3 và S4 hoặc thậm chí là đóng cùng lúc 4 công tắc. Nếu bạn làm như vậy, bạn đã tạo ra một đường dẫn trực tiếp từ Vcc xuống GND và gây ra hiện tượng ngắn mạch.
Acquy của bạn sẽ bị hỏng và nghiêm trọng hơn có thể cháy nổ mạch. Vậy nếu ta đóng cùng lúc S1 và S3 hoặc S2 và S4 thì chuyện gì sẽ xảy ra? Với trường hợp này, cả 2 đầu A, B của động cơ cùng nối với một mức điện áp, sẽ không có dòng điện nào chạy qua, mạch cầu H không hoạt động. Đây có thể coi là một cách “thắng” động cơ (nhưng không phải lúc nào cũng có tác dụng). Nói chung, chúng ta nên 14 tránh trường hợp này xảy ra, nếu muốn mạch cầu không hoạt động thì nên mở tất cả các khóa thay vì dùng trường hợp này.
Sau khi đã cơ bản nắm được nguyên lý hoạt động của mạch cầu H, phần tiếp theo chúng ta sẽ khảo sát cách thiết kế mạch này bằng các loại linh kiện cụ thể.