Tôi có thể tự làm một mạch Arduino Uno không ?

Trả lời

Câu trả lời là có, bạn có thể làm được.

Tự làm một mạch Arduino UNO trên một thanh breadboard là điều tôi ước ao từ lúc mới bắt đầu tìm hiểu Arduino. Ở đây, tôi không muốn nói đến một mạch Arduino thương mại, bởi vì qua quá trình tìm hiểu tôi thấy không cần phải làm một mạch Arduino UNO thương mại (do có đắt hơn các sản phẩm báo trên thị trường và lại cũng không có thương hiệu,...). Cái mạch Arduino mà tôi sẽ hướng dẫn các bạn làm sau đây là một mạch Arduino trên breadboard, bạn có thể tự lắp ráp và tự độ lại cho nó gọn hơn để có thể tự mình làm những "mạch nhúng Arduino" giá rẻ cho những dự án của mình.

Vì sao tôi lại muốn làm điều này

Bởi vì, tôi yêu thích Arduino và tôi đã từng trải qua việc làm nhiều dự án nho nhỏ cùng một lúc trong khi kinh phí đầu tư cho món này khó cao nên tôi không thể đầu tư mua nhiều mạch Arduino UNO hay promini được. Tôi tự hỏi, liệu có thể tự chế một mạch Arduino đơn giản hay không? Và đây là thành quả của tôi, và tôi muốn chia sẻ với mọi người. 

Tôi nghĩ đây là một cách tốt để giúp tôi cải thiện trình độ Arduino bản thân, hehe heart và cả viết lách nữa.yes

Cùng tìm hiêu về Arduino

Trên Cộng đồng của chúng ta có rất nhiều bài viết về nhập môn Arduino, tôi cũng không giới thiệu lại làm gì cho nó loãng, chỉ cần các bạn đọc các bài viết sau là thích Arduino ngay.

  1. Arduino là gì
  2. Muốn học Arduino cần những gì
  3. Chuyên mục Giới thiệu về Arduino

Ok, vậy nếu bạn biết đến Arduino rồi thì cùng chiến nào.

Tự làm mạch Arduino UNO có khó không?

Xin thưa, tôi nghĩ nếu bạn hoàn thành bài viết này, sau đó tự ráp lại thì bạn chỉ mất 5 phút mà thôi. Thực sự nói nó khó thì cũng không khó, nhưng nó không dễ. Vì sao? Nó không khó bởi vì bạn chỉ cần ráp mạch còn vì sao nó phải ráp vào chỗ này, cái kia ráp vào chỗ kia, nhiệm vụ chuyên sâu của nó là gì thì không dễ tí nào! Tôi chỉ tìm hiểu về cách ráp cho nó hoạt động là được, vì dẫu sao thì tôi chỉ cần một mạch có thể gắn con vi điều khiển ATmega328 / 168 / 88 / 8 vào và chạy được skectch của tôi là được rồi. Như vậy dễ hơn hehe.

Phần cứng cần chuẩn bị

  • Breadboard *hiển nhiên rồi* (sau này bạn tự làm mạch thì dùng bảng mạch loại A)
  • Dây breadboard
  • 2 con led siêu sáng (đỏ hoặc vàng hoặc xanh).
  • 2 điện trở 220 Ohm (đỏ đỏ nâu) (trong hình, cứ đỏ đỏ là con này)
  • 1 điện trở 10 kOhm (nâu đen cam) (trong này cứ thấy cam là con này)
  • 2 tụ 10uF
  • 1 IC 7805
  • 1 thạch anh 16MHz (quan trọng nhé các tình êu)
  • 2 con tụ 22pF
  • 1 hàng header pin 1 hàng
  • 1 button (nút bấm)
  • FT232RL (hoặc những con USB to TTL tương tự nhé)
  • Bạn có thể tháo con ATmega328 từ Arduino của bạn ra, hoặc nếu tự làm luôn mà chưa có con Arduino UNO nào bạn có thể mua một trong 3 con sau: ATmega328, ATmega168, ATmega88, hiện tại mình còn con 168 nên sẽ dùng con 168 hehe
  • Bạn nên chuẩn bị cho mình một nguồn 9V (pin 9V và chụp đầu pin 9V) hoặc 12V để cấp nguồn cho con 7805 nhé

Cùng ráp mạch nào

Bước 1: Chuẩn bị năng lượng cho mạch

Việc đầu tiên bạn cần phải làm đó là cấp điện cho mạch, hehe, điện là máu của mạch điện tử mà.

Oki, bây giờ bạn sẽ lắp nguồn nuôi cho mạch tự chế này tại ô tròn năng lượng bên trái (chỗ có dấu   với dấu   ấy). Bời vì, chúng ta cần phải có một nguồn 5V để giữ cho vi điều khiển ATmega168 hoạt động ổn định nên ta sẽ dùng IC 7805 để hạn dòng lại, vì thế nguồn nuôi của ta phải lớn hơn 5V để con IC này hoạt động. Câu hỏi đặt ra là vì sao không dùng luôn 5V cấp nuôi mạch luôn mà lại dùng nguồn nuôi có áp lớn rồi lại hạ nó xuống? Bởi vì, trong thực tế, trong phải lúc nào hệ thống mạch của bạn cũng có sẵn 5V ngon ăn, mà nếu dùng mạch Arduino không có 7805 thì bạn phải làm một cách nào đó để nó 5V để nuôi cho mạch Arduino tự chế này,... nghĩ thôi là đấy chán rồi. Vậy sao không làm sẵn (hàn sẵn) một con vào mạch của mình luôn, sau đó khỏi phải lăn tăn với mấy vụ nguồn áp nữa devil. Dưới đây là sơ đồ chân của bé IC 7805, các bạn có thể dễ hàng đoán nghĩa những chân ở hình trên chứ, hehe. À mà nếu không thích, thì bạn cứ cấp thẳng 5V ở vị trí nguồn bên trái là xong, khỏi rườm rà.

Oki, bây giờ bạn sẽ gắn một con tụ 10uF vào 2 ô vuông (+) và (-) nhé. Thực sự nếu bạn quên bước này, thì con Arduino của bạn sẽ bị reset một cách bất thình lình... vì sao, vì nguồn ra cục 9V giảm nhanh lắm (hàng TQ) và như vậy là gây sụt áp rồi nguồn ra của con 7805 cũng bị nhiễu ==> mạch Arduino của bạn cũng bị nhiễu nên nó bị reset. À quên, đầu (+) nối với cực dương của tụ và đầu (-) nối với cực âm của tụ nhé.

À, xém nữa thì quên, các bạn có để ý là lắp như trên thì đèn LED xanh (góc trái) sẽ không sáng, nếu tinh ý thì bạn sẽ phát hiện ngay là mình chưa cấp nguồn cho cột bên trái, vì vậy nhớ mắc như hình dưới nhé.

Con LED, màu xanh xanh ở góc trái kia là để nhận biết bạn đã gắn nguồn vào hay chưa, ở đó mình dùng 1 con điện trở 220 ohm nhé. Làm thế cho giống cái đèn ON trên mạch Arduino với lại để debug nguồn 9V chứ nó mà rớt ra (cái chụp pin gà quá) thì còn biết là sửa hehe.

Rồi ok, bây giờ bạn đã có một nguồn 5V trên breadboard rồi, Yay!!! devil

Bước 2: Tìm hiêu về sơ đồ chân của bé ATmega168

mấy con mình liệt kê trên kia cũng vậy nhé angel

Oki, cái mà mình nhìn vô thấy ngay đó là các chân Digital, Analog, VCC, GND, khà khà, không phải dạng vừa đâu nhé. Nếu chúng ta làm thế nào mà nạp code được thì chắc chắn các chân này sẽ là chân "chương trình" rồi. Hehe, tìm hiểu những chân còn lại thôi. À, nếu bạn chưa biết về chân digital hay analog thì hãy quăng các từ in nghiêng vào mục tìm kiếm nhé cheeky

Chân AREF bạn có thể nghiên cứu thêm ở đây. Oki, đến bước tiếp theo thôi, chứ mình cũng không rành cool

Bước 3: Nối tất cả những phần còn lại để hoàn thiện mạch

Hjx, vì không biết phải chia như thế nào nữa, nên thôi, chiến trong một bước rồi chia thành các bước con nhé bro blush

Hà hà, nhìn hình này thì các bạn biết ngay vì sao nối chân 22 vào GND rồi chứ angry, mình cũng "không biết tại sao luôn". Chân 19 chính là chân digital 13, để cho giống mạch thật, ta gắn vào đó để sau này "blink" chơi. HEHE. Mình dùng một con led màu đỏ và điện trở 220 ohm.

Oki, chân 21 là chân AREF, như đã nói ở bước trên, bạn nên đọc bài viết đó, bạn sẽ nắm được vấn đề ngay, nếu muốn nhanh thì nhớ là AREF kéo lên (gắn vào nguồn 5V) là được.

Chân 20 là chân AVCC (Supply voltage for the ADC converter), chân này được kéo lên khi chúng ta không muốn sử dụng bộ lọc low-pass filter, bộ low-pass-filter là một bộ lọc giúp chúng ta lọc nhiễu từ nguồn các chân analog. Trong thế giới Arduino, ta không dùng bộ này vị vậy ta kéo nó lên.

Tiếp,...

Ta sẽ cấp nguồn 5V vào chân số 7 (VCC). Mắc thêm chân số 8 vào cực âm nữa cho nó chắc ăn. lỡ chân 22 bên kia bị rớt ra thì còn chân GND bên này hehe.

Mạch Arduino sẽ tự động reset nếu chân reset bị kéo xuống đất (tức nối xuống âm), như vậy để reset mạch arduino tự chế ta dùng một button và mắc như hình trên, nếu chưa biết cách mắc button (tức là chưa biết vì sao) bạn mắc như vậy thì bạn đọc bài này nhé.

À, còn 2 con tụ 22pF và con thạch anh để tạo xung nhịp cho ATmega168 ở 2 chân XTAL1 (9) và XTAL2 (10) nữa là xong. Bây giờ bạn đã có một mạch Arduino tự chế hoàn chỉnh, chỉ cần gỡ con ATmega168 rồi gắn vào Arduino UNO nạp code rồi gắn qua đây là hoạt động rồi hehe. Tuy nhiên, đã chịu đọc bài của mình đến đây thì chịu khó đọc tiếp để làm luôn mạch nạp luôn, khỏi mất công "mua" con Arduino UNO làm gì...

Rồi ok, bây giờ bạn gắn 6 chân header ngang như hình nhé, rồi cũng gắn dây như hình luôn, chúng ta sẽ bàn sau. Nhưng mình sẽ đánh dấu từ phải qua trái từ 1 đến 6 với các chân như sau: GND, NC, 5V, TX, RX, NC. NC là not connect, do chuẩn con RS-TTL-232 nó vậy hehe.

Bước 4: Nạp code blink test chơi

Ok, mở example blink hoặc dùng code ở bài này nếu bạn mới bắt đầu.

Bạn gắn con FT232RL vào máy tính hoặc những con khác bất kỳ có nhiệm vụ tương tự (dùng từ khóa usb to ttl) và cài đặt driver cho nó (thường bạn google tên của con đó rồi thêm chữ driver phía sau là ra). Rồi bật Arduino IDE chọn serial port là port của con FT232RL nhé.

Bạn chọn board như hình dưới:

hoặc

  • Arduino Duemilanove w/ATmega328
  • Arduino Decimila, Duemilanove or Nano w/ATmega128
  • ...

nói chung là tùy con mà bạn chọn thôi cool

Giờ bạn nối con FT232RL của bạn với 6 header pin lúc này (bằng dây nối breadboard cái) hoặc gắn nó lên thẳng breadboard cũng được. Ta xem chân CTS là DTR là NC rồi bạn nối với 6 chân header pin trên breadboard lúc nãy tôi đánh dấu là được!

Rồi, mỗi khi upload bạn nhớ giùm tôi những điều sau:

Bạn nhấn nút upload ở Arduino IDE rồi nhấn nút reset trên mạch Arduino rồi thả ra đợi cho đèn TX, RX nó ngừng nhấp nháy trên FT232RL (nếu có) hoặc Arduino IDE báo đã up thành công, rồi nhấn reset lần nữa, nạp của bạn đã được nạp xong. Nếu không được thì bạn tập lại vài lần là quen.

Bước 5: Làm mạch in

Mình có google một số mạch in để tự làm Arduino khá hay, lại giống với bài viết này nên chia sẻ với anh em luôn:

Nếu chưa biết ngõ làm mạch in như thế nào, thì bạn xem bài viết này của Davip Mạnh nhé.

Kết luận

Cuối cùng cũng có một bài viết hay ho lên với cộng đồng Arduino Việt Nam rồi, mọi người cho mình phản hồi tích cực nhé.

 

lên
54 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Hướng dẫn sử dụng cảm biến dòng điện ACS712 với Arduino

Cảm biến dòng điện ACS712  là một IC cảm biến dòng tuyến tính dựa trên hiệu ứng Hall. ACS xuất ra 1 tín hiệu analog, Vout biến đổi tuyến tính theo sự thay đổi của dòng điện được lấy mẫu thứ cấp DC (hoặc AC), trong phạm vi đã cho. Tụ (Cf theo sơ đồ) được dùng với mục đích chống nhiễu và có giá trị tùy thuộc vào từng mục đích sử dụng.

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Cách reset board Arduino bằng phần mềm để giúp các dự án lọc nhiễu

Trong thực tế, có rất nhiều trường hợp cần phải reset mạch Arduino để giải quyết vấn đề. Ví dụ như: nhiễu điện khi dùng module NRF24L01 hoặc module 315MHz. Trong bài viết này mình sẽ hướng dẫn các bạn reset board mạch Arduino từ các dòng code trong Arduino để các bạn có thể "tự động reset" board để tự "giải nhiễu".

lên
20 thành viên đã đánh giá bài viết này hữu ích.