Top 10 # Xem Nhiều Nhất Huong Dan Ban Bo Tro Jax Mới Nhất 6/2023 # Top Like | Honggaitour.com

Cach Tang Bang Bo Tro Trợ Cho Jax

Thông báo lỗi

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls trong menu_set_active_trail() (dòng 2404 của chúng tôi ).

Notice: Only variables should be passed by reference trong caidm_display_preprocess_page() (dòng 133 của chúng tôi ).

25 Tháng Mười Hai 2013 … Hướng dẫn cách mua đồ cho tướng Jax đoạn đầu, giữa và cuối trận … Bảng BổTrợ cho Jax: bang bo tro jax cach tang diem bo tro cho jax ……[Lên đồ tướng Jax] – Cách build đồ Jax ở vị trí đi rừng ( jungle … Xem tiếp

Sau khi được sửa lại, kĩ năng này đã trở nên có lợi hơn cho Jax vào khoảng thời gian đầu trận: thời gian hồi chiêu ngắn hơn, lượng sát thương cơ bản cao hơn… Điều đặc biệt, kĩ năng này có thể nhảy vào một đơn vị bất kì như mắt hay đồng đội, quân lính…, nó khiến Jax dễ dàng hơn trong những pha truy đuổi hay chạy trốn.

Kĩ năng này giúp Jax trao đổi chiêu cực kì hiệu quả hoặc phá trụ nhanh hơn với những tình huống: đánh thường, W, đánh thường… Nếu bạn sử dụng kết hợp kĩ năng này với Q hoặc bị động của chiêu cuối thì sẽ gây lên một lượng dồn sát thương cực lớn, rất có lợi cho việc cấu máu, quấy rối đối phương.

Khoảng thời gian đầu trận, Phản công giúp Jax tránh được những tình huống gank hoặc phối hợp với người đi rừng tốt hơn trong những tình huống gank đối phương. Kĩ năng này đặc biệt mạnh vào khoảng thời gian cuối trận khi tướng chủ lực của đối phương đã có nhiều trang bị, Jax với 100% né sát thương vật lí sẽ dễ dàng hơn để áp sát và tiêu diệt tướng chủ lực của đối phương. Chiêu cuối của Jax khiến cho anh ta không cần phải lên quá nhiều trang bị phòng thủ mà vẫn đảm bảo được độ cứng, “trâu” trong những pha giao tranh giữa hai đội. Trong giai đoạn đi đường, bị động này khiến khả năng quấy rối, trao đổi chiêu thức của Jax cũng được tăng lên đáng kể. Đặc biệt, kĩ năng bị động khiến khả năng dồn sát thương của Jax tốt hơn rất nhiều trong những tình huống tay đôi hay giao tranh.

III. HƯỚNG DẪN CHƠI – BUILD ĐỒ JAX:Ngọc Bổ Trợ:

Bảng Bổ Trợ cho Jax:

Bảng Kĩ Năng – Cách Tăng Skill Jax:

Cách Lên Đồ cho Jax:

Và ở lần về đầu tiên bạn hãy mua Móng Vuốt Madred và Giày Thường đề đẩy nhanh tốc độ đi rừng. Và nếu bạn gank tốt thì có thể lên luôn Lồng Đèn Wriggle để có thêm giáp, sát thương và khả năng hút máu hoặc bạn có thể bỏ qua.

Nội tại Duy Nhất: Các đòn đánh cơ bản của bạn lên lính hoặc quái có 25% tỉ lệ gây thêm 300 sát thương phép.

Nội tại Duy Nhất – Xé Nát: Các đòn đánh thường của bạn gây thêm 10 sát thương chuẩn lên quái.

Kích hoạt Duy Nhất: Đặt một cọc mắt tàng hình soi sáng một khu vực trong 3 phút (3 phút thời gian hồi).

Giai đoạn giữa game:

Đây là thời điểm mà Jax trở thành một kẻ vô cùng nguy hiểm, với khả năng tiếp cận, làm choáng và gây sát thương đối phương một cách bất ngờ Jax dễ dàng đem mạng về cho đội của mình, hãy trang bị cho Jax những món đồ sau để có thể đi săn một cách thật hiệu quả: Giày Cơ Động để tăng tính cơ động, Gươm Của Vua Vô Danh để tăng thêm tốc độ đánh, chỉ số sát thương và khả năng hút máu, Tam Hợp Kiếm để tăng đều các chỉ số.

Nội tại Duy Nhất: Sau khi sử dụng một kỹ năng, đòn đánh cơ bản kế tiếp của bạn sẽ gây thêm sát thương vật lí bằng 150% chỉ số sát thương vật lí cơ bản của bạn (2 giây thời gian hồi)

Kích hoạt Duy Nhất: Gây 15% số máu tối đa của tướng mục tiêu (tối thiểu 100) thành sát thương vật lí, đồng thời hồi máu cho bạn bằng với số đó, và đánh cắp 30% tốc độ di chuyển của nạn nhân trong 4 giây (60 giây thời gian hồi).

Giai đoạn cuối game:

Đến giai đoạn này mà trận đấu vẫn chưa kết thúc thì bạn hãy trang bị cho Jax những món đồ có khả năng vừa tấn công vừa phòng thủ để có một độ cứng cáp trong một pha giao tranh: Búa Băng, Chùy Gai Malmortius là những trang bị có khả năng vừa tấn công vừa phòng thủ khá tốt, cuối cùng là Giáp Thiên Thần để tăng khả năng sống sót.

Nội tại Duy Nhất: +1 Sát thương vật lí theo mỗi 2.5% máu tối đa đã tổn thất.

Cách Chơi Jax:

Như bao tướng đi rừng khác, hãy khởi đầu ở Bùa Xanh, nếu được hãy nhờ đồng đội giúp mà không phải dùng đến Trừng Phạt để sau khi có được Bùa Xanh bạn tiến đến Bùa Đỏ. Khi đã có được Bùa Đỏ thì bạn đã lên được cấp 3, lúc này là có thể đảo các đường để đi săn, Jax sở hữu các kỹ năng tiếp cận đối phương và khả năng làm choáng nên việc đi săn đối với Jax không phải là khó.

Đạt cấp 6 là lúc Jax có thể kết thúc nhanh một “con mồi” khi đi săn, với kỹ năng Sức Mạnh Bậc Thầy (R)kết hợp với kỹ năng nội tại của Jax thì mỗi cú đánh thứ 3 Jax sẽ được gia tăng tốc độ đánh và thêm sát thương. Hãy cố gắng tạo áp lực cho tướng địch càng nhiều càng tốt, mục tiêu chính của bạn trong những pha giao tranh là tướng sát thương chủ lực của đối phương, hãy dùng kỹ năng Nhảy Và Nện (Q) để tiếp cận, kích hoạt Vận Sức (W) để gây ra một lượng sát thương lớn và đừng quên trước khi dùng Nhảy Và Nện (Q) hãy kích hoạt Phản Công (E) để né những đòn đánh cơ bản từ tướng địch.

Ở giai đoạn cuối của trận đấu, bạn đã có lượng trang bị tương đối nhiều nhưng đừng vì thấy thế mà bạn hổ báo nhảy vào đội hình đối phương để chịu đấm ăn xôi nhưng rồi xôi cũng không có mà ăn và hậu quả là phải lên bảng đếm số. Nên nhớ rằng bạn không phải là tướng chịu đòn nên không thể mở đầu trong những pha giao tranh, hãy canh me nhửng tướng chủ lực của đối phương mà nhảy vào tiễn đưa hắn lên bảng đếm số.

http://langsao.vn/huong-dan-cach-choi-build-do-jax-o-vi-tri-duong-tren-4-3664.html

Cach Choi Tuong Jax Trong Lien Minh Huyen Thoai Mẹo Chơi …

1 ngày trước … Tag Archive: bi quyet choi Jax lien minh huyen thoai, bi quyet danh Jax, cach build do… nâng damage, giáp, tốc độ đánh Hướng dẫn cách mua đồ cho tướng Jax đoạn đầu, giữa và cuối. … *Tham khảo Cách chơi tướng Jax ( lên đồ, bảngbổ trợ, ngọc bổ trợ, phép bổ trợ, mẹo tăng kĩ năng theo từng vị trí ) .

Hướng Dẫn Chơi Fizz, Lên Đồ Cho Fizz Ở Vị Trí AP Solo Mid

Hướng Dẫn Chơi Nidalee, Lên Đồ Cho Nidalee Ở Vị Trí AP Solo Mid

Đánh giá tổng quan, cách lên đồ, bảng ngọc, bảng bổ trợ, phép bổ trợ cũng như mẹo, kinh nghiệm chơi Nidalee – Nữ Thợ Săn Hóa Thú ở vị trí Pháp Sư – AP Solo Mid. Nidalee … Mỗi level của chiêu Lốt Báo sẽ gia tăng sức mạnh của tất cả các kĩ năng ở dạng báo của Nidalee. Bảng Bổ Trợ Cho Nidalee. Bảng Bổ Trợ Cho Nidalee. Bảng Ngọc Cho Nidalee. Bảng Ngọc Cho Nidalee. Bảng ngọc bao gồm: … Hướng Dẫn Chơi Jax, Lên Đồ Cho Jax Ở Vị Trí Solo Top.

Chon Bang Bo Tro Cho Ashe

Hướng dẫn cách lên đồ trong liên minh huyền thoại – lên đồ gì cho Ashe để đánh hiệu quả nhất – thông tin tính năng skill của Ashe​

TIỂU SỬ VÀ THÔNG TIN Ashe là 1 trong 3 chị em quyền lực chi phối vùng đất freljord. Với tài năng và sắc đẹp của mình, cô được nhân dân và cả bộ lạc tôn vinh là nữ vương của vùng đất băng giá.Với cây cung băng trên tay,ai cũng phải e dè cô trên chiến trường công lý “tốt nhất đừng tụ lại 1 chỗ,Ashe có thể bắn trúng năm con chim chỉ với một mũi tên” Thông số tại lv1

Đánh giá chung:Ashe có lượng máu thuộc hang trung bình so với các champ bắn xa(474 tại lv 1), tốc độ di chuyển ban đầu khá chậm(325) tuy nhiên lại sở hữu tầm bắn thuộc hàng khủng( 600, chỉ thua caitlyn(650)) ƯU & NHƯỢC ĐIỂM Ưu điểm: -tầm bắn xa, skill R toàn bản đồ -sở hữu 3 skill có hiệu ứng khống chế,1skill có khả năng soi map -có khả năng dồn 1 lượng sát thương lớn ngay từ lv 1 -big boobs, sẹc xi Nhược điểm -không có khả năng hồi máu,buff giáp,…( điểm trừ lớn cho vị trí sp) -không có skill thoát thân -tuy sở hữu nhiều kĩ năng khống chế tuy nhiên khả năng bảo vệ, cover carry không đc tốt về late KĨ NĂNG [Nội tại] Tập chung : Tỉ lệ trí mạng của Ashe tang dần mỗi 3/6/9/12/15/18% mỗi 3s khi không tấn công. Mất sau đòn đánh kế tiếp. Kĩ năng tạo cho ashe khả năng dồn sát thương rất lớn ngay tại lv1(100% chí mạng) cũng như hỗ trợ cô rỉa máu đối phương rất tốt trong quá trình lane-control( hay gọi là kiểm soát lane) [Q] Băng tiễn: (bật/tắt) mỗi phát bắn thường của ashe sẽ làm chậm tốc độ di chuyển của mục tiêu Năng lượng tiêu hao:8 cho mỗi phát bắn Làm chậm: 15/20/25/30/35%

Kĩ năng giúp ashe trở thành 1 kiter rất khó chịu. Với khả năng slow liên tục xuyên xuốt game thì khó có thể tiếp cận hay chạy thoát khỏi cô nếu không sử dụng kĩ năng8 năng lượng mỗi hit không quá nhiều nhưng chỉ lên sử dụng khi trao đổi chiêu thức với đối phương để tránh hết năng lượng cho các kĩ năng khác. Hãy sử dụng

kết hợp với vừa bắn vừa di chuyển để đạt được hiệu quả tối đa.

[W] Thất xạ tiễn: Ashe bắn bảy mũi tên theo hình nan quạt, gây sát thương vật lý cho mỗi đối tượng bị trúng. Tầm bắn: 1200 thời gian hồi chiêu:16/13/10/7/4s năng lượng :60 sát thương :40/50/60/70/80(+1.0*AD)

chú ý: Kĩ năng có hiệu ứng làm chậm từ

,mỗi mũi tên chỉ trúng 1 mục tiêu và mỗi mục tiêu chỉ nhận sát thương từ 1 mũi tên duy nhất.Tuy nhiên mục tiêu đứng sát ngay sau mục tiêu bị dính

cũng nhận sát thương và slow,bạn có thể lợi dụng điều này để rỉa máu đối thủ ngay cả khi hắn đã đứng lấp phía sau lính.,có thể sát thương và làm chậm lên mục tiêu tàng hình.kĩ năng rỉa máu chính của ashe ở giai đoạn đầu game ,công cụ tuyệt vời để slow trong combat cũng như những pha truy đuổi​

[E] Ưng Tiễn:Bị động: tăng tiền cho Ashe mỗi khi cô tiêu diệt 1 đơn vị lính Kích hoạt: Gọi ra 1 con chim ưng dò đường,làm sáng đường đi trong 2s,làm sáng vùng bản đồ nơi con chim dừng lại 5s Tầm bắn:2500/3250/4000/4750/5500 thời gian hồi chiêu: 60s lượng vàng tăng thêm:1/2/3/4/5 vàng không tốn năng lượng

1 kĩ năng tuyệt vời giúp Ashe kiểm soát tầm nhìn. Hãy liên tục sử dụng kĩ năng để kiểm tra những khu vực không có tầm nhìn tránh các cuộc viếng thăm không mong muốn hay kiểm tra rồng và 3ron( Mẹo: vì 1 người chơi ashe thường dùng để chek những góc chưa đc cắm mắt, tuy nhiên bạn có thể tương kế bắn

vào khu vực đã cắm mắt để đánh lừa đối phương rằng khu vực đó mình chưa có mắt kiểm soát-rất hữu dụng trong các pha dụ hàng, lật kèo)​

Quá OP là những gì có thể nói về kĩ năng này. Mở combat, chạy trốn hay bảo vệ carry,giữ chân… Tất cả trong 1. Bù lại là kĩ năng có thời gian hồi chiêu có thể nói là lâu lên phải cân nhắc kĩ khi sử dụng.Nhờ tầm cast toàn bản đồ mà kĩ năng có thể giúp Ashe hỗ trợ đồng đội ở bất kì đâu, tuy nhiên khuyến cáo sử dụng với các mục tiêu ở gần nếu bạn không tự tin với khả năng của mình.​

mình giành khá nhiều điểm vào bảng thủ(13 điểm) để tăng độ cứng cáp cho Ashe trong quá trình trao đổi chiêu thức trên lane( lấy đến cái giảm 3 sát thương từ đòn đánh thường của tướng) tuy nhiên nếu theo phong cách hổ báo mọi người có thể sử dụng bảng 14/0/16 để tăng tối đa lượng sát thương Ashe có thể gây lên

Mình sử dụng bảng ngọc bổ trợ với tím: + vàng theo thời gian( sp mà ,dĩ nhiên) đỏ mình lấy AD + thẳng để ra tăng lượng sát thương có Ashe có thể gây ra lúc đầu( nhờ khả năng gây sát thương trí mạng của ashe khá lớn, vì vậy mình lựa chọn ad cộng thẳng thay vì xuyên giáp để có lượng sát thương tối đa) ngọc vàng và xanh + giáp va kháng phép để giúp cho Ashe thêm chút cứng cáp

Phép bổ trợ hỗ trợ cover adc khi nguy hiểm hay gank super hack map chính là em có thể sử dụng bù đắp việc Ashe không có khả năng hồi máu bù đắp cho việc ko có khả năng thoát thân mình thường sử dụng 2 phép TRANG BỊ

Khởi đầu -bắt đầu game, chúng ta có 525 vàng( 50 vàng từ bảng bổ trợ), như mọi sp mình thường lên: – x1, x2, x1 x2( hoặc có thể thay 1 bằng sau khi cắm mắt thám hiểm) -hoặc 1 hướng khác x3, x2, x1 lưu ý mình sẽ không viết thêm và vào item khuyên dùng nữa, mỗi lần từ suối hồi phục đi ra hãy đảm bảo bạn cầm theo ít nhất 1-2 con mắt trong người( nhiều hơn càng tốt) early game cố gắng hoàn thành 2 món và ( hoặc ít nhất cũng là nếu quá thọt) mid game để có thể thoái mái cắm mắt lựa chọn giày thích hợp tùy tình hình chiến sự nếu jungle quá thọt thì bạn có thể hỗ trợ 1 chút , hoặc nếu xanh late game Ashe ko phải là 1 sp tốt dành cho late game, nếu đc hãy cố gắng kết thúc trận đấu càng nhanh càng tốt( tất nhiên nếu bạn muốn hướng tới việc đưa ashe thành 1 adc thứ 2 thì đó là 1 câu chuyện khác, mình chỉ muốn nói đến ashe sp mà thôi) nếu lỡ có bước chân đến late game có thể suy nghĩ bổ sung thêm những món sau cho Ashe up nốt các món chưa kịp up ở mid game hơi đắt so với giá tiền nhưng thêm 1 con mắt nữa cũng tốt hoặc nàng sẽ trở thành trùm slow, ko ai có thể thoát khỏi tầm ngắm của nàng em giàu, em nhiều tiền, em có quyền BC OP. xuyên giáp hỗ trợ adc và cho ashe 1 chút hp và dam với món này thì ashe thực sự trở thành 1 cỗ máy slow hạng nặng trong combat mà đối phương khó có thể bỏ qua CÁCH CHƠI

Khởi đầu Ashe có khả năng dồn sát thương lớn ngay từ lv 1 nhờ và . Nhờ vậy team có thể suy nghĩ đến việc cướp bùa, giao tranh tại lv1. lưu ý cũng là 1 công cụ chek map khá hiệu quả giúp Ashe và đồng bọn kiểm tra các bụi cỏ, góc khuất giúp cắm mắt cũng như giao tranh ngay tại lv 1 dễ dàng hơn.

vì vậy mỗi khi đi qua khu vực khả nghi đừng ngần ngại cho 1 phát kiểm tra trước.Nếu không có ý định giao tranh sớm thì combo +AA của Ashe cũng giúp đồng đội clear rừng nhanh hơn và quan trọng là rút máu địch cùng lane rất tốt giai đoạn đi đường -nhiệm vụ chính của Ashe là bảo kê adc farm, quấy rối ngăn cản đối phương farm( nếu có cơ hội giết lun cũng đc),kiểm soát rồng, bùa cho jungle( kiểm soát ở đây bao gồm kiểm soát thời gian cũng như tầm nhìn) trên lane, nếu không thọt thì Ashe có thể chơi lấn lướt 1 chút để lấy lợi thế. Đứng trên carry 1 chút, ép góc đối phương tạo điều kiện carry farm thoải mái. -Nếu đối phương có ý định lao lên lasthit thì đừng tiếc gì tặng hắn 1 và 1-2 hit aa có kèm ( với khả năng chí mạng cao đến từ nội tại cũng như tầm bắn khủng bố (600 của aa và 1200 của thì việc đó không khó) Lane của Ashe thường sẽ đẩy cao hơn bình thường( khá nguy hiểm nếu jungle địch xuống hỏi thăm) nên Ashe cần quản lý map với và thật tốt( như đã nói ở phần kĩ năng thì còn là 1 công cụ dùng lừa tình khá tốt),liên tục thay đổi chiến lược sẽ khiến địch sa vào ma trận của Ashe. Win lane= win game, đó chính là mục tiêu của ashe ở giai đoạn đi đường khi đến lv 6, ashe thực sự nguy hiểm với . Nàng có thể sử dụng để phối hợp với đồng đội từ xa tạo cho đối phương 1 bất ngờ nho nhỏ hoặc kết hợp với đồng đội cùng lane và jungle(nếu có) combo tiễn đối thủ về suối – còn là 1 skill tốt giúp đẩy lane nếu team có ý định p nhanh giai đoạn sau của game kết thúc giai đoạn đi đường, Ashe nên đi cùng đồng đội để có thể hỗ trợ đồng bọn 1 cách tốt nhất(khả năng hack map, slow, kite, giữ chân cũng như lượng dam mà ashe có thể gây ra là ko nhỏ khi đã max ). Quản lý map thật tốt(nhất là những điểm dễ giao tranh như rồng, 3ron ,buff…) sử dụng hợp lý trong combat là chìa khóa tiến đến chiến thắng Làm sao để sử dụng hợp lý

Đừng cố để có thể sử dụng

lên cả năm thành viên địch, sử dụng đúng người đúng lúc sẽ thay đổi cục diện combat. Mục tiêu đc ưu tiên có lẽ là adc và apc địch( những thành phần gây dam chính trong combat mà lại mỏng manh dễ vỡ. 1 phát

đúng địa chỉ cùng lúc team có đủ khả năng dồn sát thương vào kẻ đc chọn sẽ giúp combat dễ dàng hơn nhiều. sử dụng

để cover carry giúp họ thoải mái rút lui hoặc gây dam trong combat cũng không phải lựa chọn tồi​

KẺ THÙ VÀ NHỮNG NGƯỜI BẠN những người bạn Ashe là 1 sp khá mạnh vào giai đoạn early và mid game, vì vậy cô nên đi kèm với những adc có khả năng tấn công snowball mạnh 1 lulu adc sẽ bù trừ rất nhiều điểm khiếm khuyết cho Ashe . Từ 1 hard cc thực sự đến khả năng rỉa máu mạnh cũng như khả năng tự bảo vệ bản thân tốt, cặp đôi này sinh ra dường như để đi với nhau vậy , : 2 adc này kết hợp với Ashe thực sự trở thành 1 bộ đôi hủy diệt. khả năng rỉa máu từ rất xa cộng với clear lính cực nhanh là cực kì khó chịu combo ulti của bộ đôi này thực sự quá bá đạo Zai anh hùng, gái thuyền quyên. Đập choai khoai to là em luôn muốn làm bạn.2 hot boy này có thể cùng Ashe kết thúc bất kì con nai vàng nào lỡ tay mắc 1 sai lầm dù là rất nhỏ. ảnh chồng em đó

kẻ thù Khi vui chơi chúng ta là BẠN, khi hoạn nạn mới biết BẠN là ai

do chạy chậm, lại ko có skill thoát thân nên 1 khi ashe bị kéo trúng thì chỉ còn nước chiến đấu đến cùng mà thôi( ko đùa đâu, nếu lỡ có bị kéo trúng mà không có ,cách tốt nhất là quay lại cast vào adc địch và dồn sát thương vào hắn, biết đâu adc mình có thể thay ta báo thù thì sao) các thể loại trâu bò các kiểu: trẻ trâu thì đến hổ báo còn phải sợ chứ đừng nói đến ashe

Huong Dan Su Dung Arduino

HƯỚ NG BẢN ARDUINO NG DẪ DẪN SỬ  SỬ  DỤNG  DỤNG CƠ BẢN

TP.HCM, Tháng 5, Năm 2014.

MỤC LỤC: Lờ i nói đầu. đầu. Chương 1: Tổng Tổng quan về về Arduino Uno. ……………………… …………………………………….. ……………………………. …………………………. ………….. 1 1. Tổng quan. ……………………………. …………………………………………… ……………………………. ……………………………. …………………………….. ………………………. ………. 1 …………………………………………… ……………………………. ……………………………. …………………. ….. 2 2. Sơ đồ chân đồ chân củ của Arduino. ……………………………. Chương 2: Cài đặt chương trình Arduino IDE và Driver cho Arduino ………………….. ………………….. 4 …………………………………………… ……………………………. …………………. ….. 4 1. Cài đặt chương trình Arduino IDE ……………………………. …………………………………………. ……………………………. ……………………………. …………………………….. ……………………. ……. 5 2. Cài đặt đặt Driver ………………………….. …………………………………………… ……………………………. ……………………………. …………………………….. ……………………. ……. 7 3. Arduino IDE ……………………………. Chương 3: Hướ ng ng dẫn dẫn cài đặt đặt bả bản mô phỏ phỏng Arduino trên Proteus…………………….. ……………………. 11 Chương 4: Giao tiếp tiế p Arduino vớ  vớ i mộ một số số linh kiện kiện điện điện tử  tử . …………………………… ………………………………….. ……..13 …………………………………………. ……………………………. ……………………………. ……………….. … 13 1) Project 1: Led nhấ nhấp nháy. ………………………….. 2) Project 2 : Đèn sáng khi nhấn nhấ n phím. ………………………….. …………………………………………. ……………………………. ……………….. … 18 …………………………… 21 3) Project 3 : Led sáng dầ d ần từ  từ led led 1 đến led 10 và ngượ c lạ lại. ……………………………. 4) Project 4 : Led sáng dầ d ần từ  từ led led 1 đến led 10 và ngượ c lạ lại thờ  thờ i gian delay thay đổi đượ c. ………………………………………….. ……………………………. ……………………………. ……………………………. ……………………………. ……………….. … 24 c. …………………………… ……………………………………….. ………….. 27 5) Project 5: Điều Điều khiể khiển tốc tốc độ động cơ bằng bằng PWM. …………………………… Điề u khiển bằng L293D. ……………………………. …………………………………………… …………………. ….. 31 6) Project 6 : Điều khiển động cơ bằng …………………………………………… …………………. ….. 34 7) Project 7: Giao tiế ti ếp Arduino vớ  vớ i LCD 16×2. ……………………………. …………………………………………… …………………………….. ………………….. ….. 47 8) Project 8: Giao tiế ti ếp vớ  vớ i máy tính. ……………………………. 9) Project 9. Đo nhiệt độ môi trườ ng ng dùng LM35D hiể hiển thị thị LCD và Serial …………………………………………… ……………………………. ……………………………. ……………………………. ……………………………. ……………….. … 49 Monitor. ……………………………. ……………………………………….. …………..54 10) Project 10: Giao tiế ti ếp Arduino vớ  vớ i Servo motor. …………………………… Tài liệ liệu tham khả khảo. …………………………… ………………………………………….. ……………………………. ……………………………. …………………………….. ………………….. ….. 56

Lờ i Nói Đầ Đầu. u. Arduino đã và đang đượ c sử dụng r ất r ộng rãi trên thế giớ i,i, và ngày càng chứng tỏ

đượ c sức mạnh của chúng thông qua vô số ứng dụng độc đáo của ngườ i dùng trong cộng đồng nguồn mở . Arduino thực sự đã gây sóng gió trên  thị trường ngườ i dùng trên toàn thế giới trong vài năm gần đây , 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ậc phổ thông lên đến đạ i học đã làm cho ngay cả  những ngườ i tạo ra chúng phải ngạc nhiên về mức độ phổ biến.Tuy nhiên tại Việt Nam Arduino vẫn còn chưa đượ c biết

“HƯỚ NG NG DẪ DẪN SỬ  SỬ  DỤNG  DỤNG CƠ BẢN BẢN ARDUINO”. ARDUINO”. Trong tài liệu này cung cấ p cho bạn ng kiến thức cơ  b  bản nhất về Arduino cũng như các ứng dụng thực tế của nó. đọc một lượ ng Tài liệu gồm có các nội dung sau:

Chương 1: Tổ ng ng quan về  Arduino  Arduino Uno. Chương 2: Chương 2: Cài đặt chương trình Arduino IDE và Driver cho Arduino. Chương 3: Hướ ng ẫn cài đặt bản mô phỏng Arduino trên Proteus. ng d ẫn Chương 4: Giao tiế  p Arduino vớ i một số  linh ử.   linh kiện điện t ử  Khi biên soạn, tác giả đã tham khảo một số tài liệu nướ c ngoài để tài liệu vừa đảm  bảo về mặc nội dung vừa có thể tiế p cận đượ c vớ i bạn đọc. Khi viết tác giả đã có gắng để tài liệu đượ c hoàn chỉnh nhất song chắc chắn không tránh khỏi sai sót, vì v ậy r ất mong nhận đượ c sự góp ý của bạn đọc. Mọi ý kiến đóng góp xin liên hệ: [email protected]

Tác giả giả SV: NGUYỄ N TRUNG TÍN

Chương 1: Tổng quan về về Arduino Uno. 1. Tổng quan. Arduino thật ra 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 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 ng Arduino chính là mức giá r ất thấ p và tính chất nguồn mở  t từ phần cứng tớ i phần mềm. Arduino Uno là sử dụng chip Atmega328. Nó có 14 chân digital I/O, 6 chân đầ u vào (input) analog, thạch anh dao động 16Mhz. Một số thông số k ỹ thuật như sau : Chip

ATmega328

Điện áp cấp nguồn

5V

Điện áp đầu vào (input) (kiến 7-12V nghị ) Điện áp đầu vào (giới hạn)

6-20V

Số chân Digital I/O

14 (có 6 chân điều chế độ rộng  xung PWM)

Số chân Analog (Input )

6

DC Current per I/O Pin

40 mA

DC Current for 3.3V Pin

50 mA

Flash Memory

32KB (ATmega328) với 0.5KB sử dụng  bootloader

SRAM

2 KB (ATmega328)

EEPROM

1 KB (ATmega328)

Xung nhịp HỌC VIỆ N HÀNG KHÔNG

16 MHz SV: NGUYỄ N TRUNG TÍN

1

2. Sơ đồ chân đồ chân củ của Arduino.

 Hình 1: Arduino Arduino Uno.

a) USB (1). Arduino sử dụng cáp USB để giao tiế p vớ i máy tính. Thông qua cáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino.  b)  Nguồn ( 2 và 3 ). Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông qua jack cắm 2.1mm ( cực dương ở  gi  giửa ) hoặc có thể sử dụng 2 chân Vin và GND để cấ p nguồn cho Arduino. Bo mạch hoạt động v ớ i nguồn ngoài ở điệ   20 volt. Chúng ta có thể c ấ p ở  điện áp từ 5  –  20 một áp lớn hơn tuy nhiên chân 5V sẽ  có mực điện áp lớn hơn 5 volt. Và nế u sử dụng nguồn lớn hơn 12 volt thì sẽ  có hiện tượ ng ng nóng và làm hỏng bo mạch. Khuyết cáo các bạn nên dùng nguồn ổn định là 5 đến dướ i 12 volt.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

2

Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ ngu  nguồn

mà chúng ta đã cung cấp cho Arduino. Lưu ý : không đượ c cấ p nguồn vào các chân này vì sẽ làm hỏng Arduino. GND: chân mass. c) Chip Atmega328. Chip Atmega328 Có 32K bộ nhớ  flash  flash trong đó 0.5k sử dụng cho bootloader. Ngoài ra còn có 2K SRAM, 1K EEPROM. d) Input và Output ( 4, 5 và 6). Arduino Uno có 14 chân digital v ớ i chức năng input và output sử dụng các hàm  pinMode(), digitalWrite() digitalWrite() và digitalRead() để điều khiển các chân này tôi s ẽ đề cậ p chúng

 các phần sau. ở  các

Cũng trên 14 chân digital này chúng ta còn mộ t số chân chức năng đó là: Serial : chân 0 (Rx ), chân 1 ( Tx). Hai chân này dùng để  truyền (Tx) và nh ận (Rx) dữ liêu nối ti ế p TTL. Chúng ta có th ể s ử dụng nó để giao tiế p vớ i cổng COM của một số thiết bị hoặc các linh kiện có chuẩn giao tiế p nối tiế p. PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu “~” là các chân PWM chúng ta có th ể s ử d ụng nó để điều khiển t ốc độ động c ơ, độ sáng của

đèn… SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này h ỗ tr ợ  ợ giao  giao tiế p theo chuẩn SPI. I2C: Arduino hỗ tr ợ  ợ giao  giao tiế p theo chuẩn I2C. Các chân A4 (SDA) và A5 (SCL) cho  phép chúng tao giao giao tiế p giửa Arduino vớ i các linh kiện có chuẩn giao tiế p là I2C. e) Reset (7): dùng để reset Arduino. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

3

Chương 2: Cài đặt chương trình Arduino IDE và v à Driver cho Arduino 1. Cài đặt chương trình Arduino IDE Các bạn truy cậ p vào trang web web http://arduino.cc/en/Main/Software và tải về chương trình Arduino IDE phù hợ  p vớ i h ệ điều hành của máy mình bao gồm Windown, Mac OS hay Linux. Đối vớ i Windown có bản cài đặt (.exe) và bản Zip, đối vớ i Zip thì chỉ cần giải nén và chạy chương trình không cần cài đặt. Sau khi cài đặt xong thì giao diện chương trình như sau:

Hình 2: Arduino IDE

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

4

2. Cài đặt đặt Driver Sử dụng cáp USB k ết nối Arduino vớ i máy tính, lúc này bạn sẽ thấy đèn led power của bo sáng. Máy tính sẽ nhận dạng thiết bị và bạn sẽ nhận đượ c thông báo:

“Device driver software was not successfully installed”

Hình 4: Device Manager.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

5

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

6

3. Arduino IDE Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho arduino

Hình 7: Arduino IDE. a) Arduino Toolbar: có một số button và chức năng của chúng như sau : Hình 8: 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,i, mở  và  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: Hình 9: IDE Menu HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

7

File menu:

Hình 10: File menu. Trong file menu chúng ta quan tâm tớ i mục Examples đây là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor …

SV: NGUYỄ N TRUNG TÍN

8

Edit menu:

Hình 11: Edit menu 

Sketch menu

Hình 12: Sketch menu 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.i.

Import Library : thêm thư việ n cho IDE

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

9

Tool memu:

Hình 13: Tool menu. 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:

Hình 14: Chọn Board  Nếu các bạn 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. c. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

10

Chương 3: 3: Hướ ng ng dẫn dẫn cài đặt đặt bả bản mô phỏ phỏng Arduino trên Proteus. Để mô phỏng đượ c Arduino trên proteus thì chúng ta cần phải download thư viện arduino cho proteus. Để có đượ c thư viên này các bạn cần truy cậ p vào trang web: http://blogembarcado.blogspot.c http://blogem chúng tôi om/search/label/Proteus Proteus

Hình 15: Thư viện mô phỏng Arduino. Sau khi download về các bạn chép 2 file chúng tôi và chúng tôi vào thư mục: Proteus 7: C:Program Files (hoặc x86) Labcenter Electronics ElectronicsProteus Proteus 7 Professi ProfessionalLIBRARY onalLIBRARY Proteus 8: C:Program

Files

(hoặc

x86)

Labcenter

ElectronicsProteus

8

 professionalDataLIBRARY  professiona lDataLIBRARY

ợ  55 loại board Arduino khác nhau trong đó gồm có Arduino Trong thư viện này hổ tr ợ  Uno, MEGA, NANO, LILYPAD và UNO SMD và một cảm biến siêu âm Untrasonic.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

11

Sau khi chép xong chúng ta khở i động Proteus lên vào th ư viện linh kiện bằng cách  bấm phím P và gõ t ừ khoá là ARDUINO chúng sẽ hiện ra danh sách các board hi ện có ở 

đây tôi chọn Arduino Uno.

Hình 16: Mô phỏng Arduino bằng Proteus. Lưu ý chúng ta cần phải cấ p nguồn vào 2 chân 5V và Gnd trên mạch như hình trên.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

12

để mô phỏng. 

Sơ đồ mạch:

Hình 17: Led nhấ p nháy. 

Code chương trình. int ledPin = 9; void setup() {  pinMode(ledPin,  pinMode(ledPin, OUTPUT); OUTPUT);  } void loop() { digitalWrite(ledPin, digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, digitalWrite(ledPin, LOW); delay(1000);  }

SV: NGUYỄ N TRUNG TÍN

để kiểm tra lổi. 13

Hình 19: Check compilation. Sau đó tiế p tục bấm HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

14

Chương trình sẽ tự động built một file hex đượ c lưu ở đườ  ng dẫn như hình dướ i ở đườ ng

Hình 21: Add file Hex cho Proteus. Bấm vào vị trí số 1 và chọn nơi lưu file hex ở  trên  trên chọn tiế p Open, OK và Play. Play. Các bạn sẽ thấy led nhấ p nháy tắt và sáng thờ i gian delay là 1s.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

15

Giải thích chương trình. int ledPin = 9;

Khai báo một giá tr ị biến integer là ledPin = 9. void setup() {  pinMode(ledPin,  pinMode(ledPin, OUTPUT); OUTPUT); }

Trong Arduino sketch cần phải có hàm setup() và loop() n ếu không có thì chương trình báo lỗi. Hàm Setup() chỉ chạy một lần k ể t ừ khi bắt đầu chương trình. Hàm này có chức năng thiết lậ p ch chế độ vào, ra cho các chân digital hay tốc độ baud cho giao tiế p Serial… Cấu trúc của hàm pinMode() là như sau:  pinMode(pin,Mode);  pinMode(pin,Mode);  pin : là vị trí chân digital.  Mode: là chế độ vào ( INPUT), ra (OUTPUT).

Lệnh tiế p theo.  pinMode(ledPin, OUTPUT);

Lệnh này thiết lậ p chân số 9 trên board là chân ngõ ra ( OUTPUT). Nếu không khai  báo “ int ledPin = 9; ” thì bạn có thể viết cách sau nhưng ý ngh ĩ a không thay đổi:  pinMode(9, OUTPUT); OUTPUT);

Bắt buộc khai báo một hàm loop() trong Arduino IDE. Hàm này là vòng lặ p vô hạn void loop() { digitalWrite(ledPin, digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, digitalWrite(ledPin, LOW); HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

16

delay(1000);  }

Tiế p theo ta s ẽ phân tích hàm digitalWrite( digitalWrite( ledPin, HIGH); lệnh này có ý ngh ĩ a là xuất ra chân digital có tên là ledPin ( chân 9) mức cao (  HIGH ), ), mức cao tướ ng ng ứng là 5 volt. delay(1000);

Lệnh này tạo một khoảng tr ễ vớ i thờ i gian là 1 giây. Trong hàm delay() của IDE thì ng ứng vớ i 1 giây. 1000 tươ ng digitalWrite(ledPin, digitalWrite(ledPin, LOW);

Cũng giống như digitalWrite( ledPin, HIGH); lệnh này xuất ra chân ledPin mức thấ p (LOW) tức là 0 volt. Và tiế p tục là một hàm delay().  Như v ậy chúng ta có thể thấy chương trình sẽ thực hiện tắt sáng led liên tục không ngừng tr ừ khi ta ngắt nguồn.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

17

2) Project 2 : Đèn sáng khi nhấn phím. 

ơ đồ mạch: Sơ đồ

Hình 22: Đèn sáng khi nhấn phím 

Code chương trình : const int buttonPin = 2; const int int ledPin = 13; int buttonState = LOW; void setup() {  pinMode(ledPin,  pinMode(ledPin, OUTPUT); OUTPUT);  pinMode(buttonPin,  pinMode(buttonPin, INPUT); INPUT);

}

void loop(){ buttonState = digitalRead(buttonPin); digitalRead(buttonPin); if (buttonState == HIGH) { HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

18

digitalWrite(ledPin, digitalWrit e(ledPin, HIGH);

}

else { digitalWrite(ledPin, LOW);  }} 

Giải thích chương trình : Trướ c tiên ta khai báo hai biến để lưu tr ữ vị trí chân của phím nhấn và led : const int buttonPin = 2; const int int ledPin = 13;

Phím nhấn sẽ ở  v  vị trí chân số 2 và led chân số 13. Ta khai báo một biến trang thái của phím nhấn là int buttonState = LOW; Trong hàm setup() là khai chế độ (Mode) cho chân button và chân led. Chân button là chân ngõ vào và chân led là chân ngõ ra.  pinMode(ledPin,  pinMode(ledPin, OUTPUT); OUTPUT);  pinMode(buttonPin,  pinMode(buttonPin, INPUT); INPUT);

Trong hàm loop() ta có câu lệnh đầu tiên là : buttonState = digitalRead(buttonPin); digitalRead(buttonPin);

Câu lệnh này có ngh ĩ a là gán giá tr ị đọc đượ c từ chân button (chân 2) cho biến buttonState.. buttonState sẽ có giá tr ị 0 nếu như button không đượ c nhấn và có giá tr ị 1 nếu

đượ c nhấn. Bằng cách sử dụng hàm digitalRead() ta có thể kiểm tra đượ c các chân digital  mức cao hay thấ p. đang ở  m Sau khi đọc đượ c giá tr ị có ở  chân  chân buttonPin ( chân 2) ta kiểm tra xem là button có nhấn hay không. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

19

 Nếu có tức là buttonState =HIGH thì lúc này ta bật led bằng lệnh digitalWrite() if (buttonState == HIGH) { digitalWrite(ledPin, digitalWrite(ledPin, HIGH);

}

 Ngượ c lại thì ta một lần nửa sử dụng hàm digitalWrite() để tắt led else { digitalWrite(ledPin, LOW);  }

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

20

3) Project 3 : Led sáng dần từ led ừ led 1 đến led 10 và ngượ c lại. 

ơ đồ mạch. Sơ đồ

Hình 23: Led sáng dần từ led 1 đến led 10 và ngượ c lại. 

Code chương trình. byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; int direction = 1; int currentLED = 0; void setup() {  for (int x=0; x HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

21

void loop() {  for (int x=0; x if (currentLED == 9) {direction = -1;} if (currentLED == 0) {direction = 1;} delay(500);  } 

Giải thích chương trình. Trong Project này chúng ta s ử dụng 10 chân digital để điều khiển 10 led, để cho

ở đây tôi sử dụng mảng 1 chiều gồm 10 phần t ử trong đó chứa chương trình ngắn gọn thì ở đâ 10 vị trí chân led mà ta s ử dụng trong project byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};

Tiế p tục khai báo 2 biến integer là : int direction = 1; int currentLED = 0;

Trong hàm setup() tôi sử dụng một vòng lặ p để định ngh ĩ a mode cho các chân led. Tôi ngh ĩ  là  là không khó để hiểu đượ c các câu lệnh này. Tiế p theo là hàm loop(), đầu tiên tôi tắt tất cả các led bằng các câu lệnh:  for (int x=0; x SV: NGUYỄ N TRUNG TÍN

22

Sau đó cho sáng led đầu tiên bằng câu lệnh : digitalWrite(ledPin[curre digitalWrite(ledPin[currentLED], ntLED], HIGH);

Vì ta đã khai báo currentLED = 0 nên mãng sẽ truy xuất phần tử đầu tiên trong mãng có giá tr ị là 4 vì thế led ở  v  vị trí chân digital số 4 sẽ sáng. currentLED += direction;

Tăng currentLED lên 1 đơn vị ( direction =1 ). Vòng lặ p tiế p theo sẽ là led ở  chân  chân digital 5 sáng và cứ như thế cho đến led ở  chân  chân số 13 sáng, thì lúc này currentLED == 9, câu lệnh “ if (currentLED == 9) {direction = -1;} ” sẽ thực hiện và led sẽ sáng ngượ c lại từ led 10 xuống led thứ 1. Hai câu lệnh : if (currentLED == 9) {direction = -1;} if (currentLED == 0) {direction = 1;}

dùng để quy định chiều sáng của led là tăng dần hay giảm dần. Nếu là Led th ứ 10 sang thì tiế p theo sẽ giảm xuống led thứ 9 và ngượ c lại nếu led thứ 0 sang thì chu k ỳ tiế p theo led 1 sẽ sáng.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

23

4) Project 4 : Led sáng d ần từ led ừ  led 1 đến led 10 và ngượ c lại thờ i gian c. delay thay đổi đượ c. 

Sơ đồ ơ đồ mạch : Trong project này hoàn toàn giống project 3 chỉ thêm một biến tr ở   dùng để điều ch chỉnh ở dùng

thờ i gian delay cho chương trình

c. Hình 24: Led sáng dần từ led 1 đến led 10 thời gian delay thay đổi đượ c. 

Code chương trình. int ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; int direction = 1;

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

24

int currentLED = 0; int potPin = 0; unsigned long changeTime; void setup() {  for (int x=0; x if (currentLED == 9) {direction = -1;} if (currentLED == 0) {direction = 1;} delay(delayvalu);  } 

Giải thích chương trình. Chương trình ta chỉ thêm và thay đổi một vài câu lệnh mà thôi ngoài ra không khác

gì nhiều so vớ i project 3, các câu l ệnh đó như sau : int potPin = 0 ; int delayvalu= analogRead(potPin);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

25

delay(delayvalu);

Đầu tiên chúng ta khai báo một biến chứa vị trí chân biến tr ở  ở k   k ết nối đó là vị trí A0 int potPin = 0 ;

Đọc giá tr ị từ chân analog A0 bằng câu lệnh analogRead(potPin) và gán nó cho biến delayvalu. Arduino có 6 chân đầu vào analog đánh dấu từ A0 đên A5 vớ i 10 bit chuyển đổi

từ analog sang digital (ADC). Ngh ĩ a là chân analog có thể đọc đượ c các giá tr ị điện áp từ 0

đến 5 volt tương ứng vớ i các số integer từ 0 ( 0 volt ) đến 1023 ( 5 volt ). Trong project này chúng ta cần thiết lậ p th ờ i gian delay bằng cách điều chỉnh biến tr ở  ở.  Ta sử dụng câu lệnh delay(delayvalu) để tạo thờ i gian tr ễ. Nếu ta điều chỉnh biến tr ở  ở  sao cho điện áp đầu vào chân analog là 5 volt thì delayvalu sẽ có giá tr ị là 1023 ( hơn 1

ở ta giây), nếu là 2,5 volt thì delayvalu sẽ là 511. Các bạn thử điều chỉnh biến tr ở   ta sẽ thấy thờ i gian delay thay đổi hoặc là nhanh dần hoặc là chậm dần. Lưu ý : đối vớ i các chân analog chúng ta không cần thiết lậ p chế độ vào ra bằng hàm  pinMode như các chân digital. Mặc định các chân analog là input.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

26

5) Project 5: Điều khiển tốc độ động cơ bằng PWM. 

Sơ đồ Sơ đồ mạch

Hình 25: Điều khiển tốc độ động cơ . 

Code chương trình. int potPin = 0; int transistorPin = 9; int potValue = 0; void setup() {  pinMode(transistorPin,  pinMode(transistorPin, OUTPUT);} OUTPUT);} void loop() {  potValue = analogRead(potP analogRead(potPin) in) / 4; analogWrite(transistorP analogWrite(transistorPin, in, potValue);  }

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

27

Giải thích chương trình.  Như trong sơ đồ ơ đồ mạch ta thấy biến tr ở đượ  ở đượ c nối vớ i chân A0, transistor đượ c nối vớ i

chân số 9 thông qua điện tr ở  ở 1k.  1k. Như vậy ta khai báo 2 biến chứa vị trí chân cho biến tr ở  ở  và transistor. int potPin = 0; int transistorPin = 9;

Biến integer potValue chứa giá tr ị đọc đượ c từ chân A0. int potValue = 0

ở đây là nếu chúng ta không k ết nối transistor điều khiển động cơ  Một câu hỏi đặt ra ở đâ vào chân số 9 mà thay vào đó là chân số 1 hoặc 2 để điều khiển tốc độ động cơ  thì  thì có đượ c không ?. Câu tr ả lờ i là Không. Vậy tại sao Không ? Tôi sẽ tr ả lờ i câu hỏi này sau. Nhưng trướ c hết tôi nói về PWM. PWM (pulse width modulation) là phương pháp điều chế dựa trên sự thay đổi độ r ộng của chuổi xung dẫn đến sự thay đổi điện áp ra.

Để tạo ra đượ c PWM trên Arduino thì chúng ta sử dụng lệnh analogWrite(Pin, Value);

Tr ong ong đó:  Pin: là vị trí chân,

đối vớ i Arduino Uno thì chỉ có các chân 3, 5, 6, 9, 10 & 11 mớ i có chức năng tạo PWM. Vậy chúng ta có thể tr ả lờ i đượ c câu hỏi bên trên, các chân digital còn lại của có thể đọc hoặc xuất 2 giá tr ị là 0 và 1 mà thôi. Value: Giá tr ị nằm trong khoảng 0 đến 255.

Để hiểu rõ hơn về PWM tôi sẽ minh hoạ qua ví dụ sau.  Nếu tôi sử dụng lệnh analogWrite(transistorP   chân 9 ( analogWrite(transistorPin, in, 127); thì dạng xung ở  chân transistorPin transistorPin = 9) sẽ như hình dướ i và giá tr ị trung bình ngõ ra s ẽ là 2,5V (50% ). HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

28

Hình 26: PWM 50%.  Nếu Value = 64 (hay 25%) thì d ạng xung như sau:

Hình 27: PWM 25%. Value = 229 (hay 90%) thì d ạng xung sẽ là :

Hình 28: PWM 90%. Từ ví dụ trên ta thấy sự thay đổi độ r ộng của chuổi xung dẫn đến sự thay đổi điện áp ra. Ta cũng thấy r ằng điện áp trên motor cũng thay đổi tuyến tính theo sự thay đổi điện áp ngõ ra trên chân 9. Tức là nếu điện áp trung bình bình trên chân 9 là 2,5 volt (50% ) thì điện áp trên hai đầu motor là 6 volt ( ngu ồn motor motor là 12 volt ). Quay lại chương trình ta cần quan tâm tớ i một câu lệnh đó là:  potValue = analogRead(potP analogRead(potPin) in) / 4; HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

29

Chúng ta cần phải chia giá tr ị đọc đượ c cho 4 vì giá tr ị analog sẽ nằm trong khoảng 0 (0 volt ) đế n 1023 (5 volt ), nhưng giá tr ị cần xuất ra ngoài chân 9 lại nằm trong khoảng

ở đây. 0 đến 255 đó chính  chính là lý do tại sao có chia 4 ở đâ Và câu lệnh cuối cùng là tạo PWM trên chân 9 để điều khiển tốc đố động cơ . analogWrite(transistorP analogWrite(transistorPin, in, potValue);

 Nếu như đã điều kiển đượ c tốc độ động cơ  b  bằng PWM r ồi thì việc điều khiển độ sáng của Led hay đèn đối vớ i các bạn bay giờ  là  là chuyện quá đơn giản. Các bạn chỉ cần nối chân số 9 v ớ i một Led có điện tr ở  ở  hhạn dòng là 220 ohm và code chương trình hoàn toàn giống như điều khiển động cơ . L ưu ý là khi mô ph ỏng các bạn s ẽ không thấy đượ c led thay đổi

độ sáng mà chỉ thấy nhấ p nháy nguyên nhân nhân là do phần mềm proteus không đáp ứng k ị p  p sự thay đổi của các xung PWM. Nhưng khi làm th ực t ế các bạn s ẽ th ấy đượ c sự thay đổi độ sáng của Led rõ r ệt.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

30

6) Project 6 : Điều khiển động cơ bằ ng L293D. 

Sơ đồ Sơ đồ mạch:

Hình 29: Điều khiển động cơ  b  bằng L293D. 

Code chương trình #define switchPin switchPin 2

9

#define potPin 0

SV: NGUYỄ N TRUNG TÍN

31

 }

void loop() {  Mspeed = analogRead(potP analogRead(potPin)/4; in)/4; analogWrite (speedPin, Mspeed); if (digitalRead(switchP (digitalRead(switchPin)) in)) { digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, digitalWrite(motorPin2, HIGH); } else { digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW);  }  } 

Giải thích chươ ng ng trình:

Code của project này hoàn toàn đơn giản. Trướ c tiên ta định ngh ĩ a các chân sẽ sử dụng trên arduino.

ắ c #define switchPin switchPin 2

9

ở n #define potPin 0

Tiế p theo trong setup() ta thiết lậ p chế độ vào, ra cho các chân v ừa định ngh ĩ a. a.  pinMode(switchPin,  pinMode(switchPin, INPUT); INPUT);  pinMode(motorPin1,  pinMode(motorPin1, OUTPUT); OUTPUT);  pinMode(motorPin2,  pinMode(motorPin2, OUTPUT); OUTPUT); HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

32

 pinMode(speedPin,  pinMode(speedPin, OUTPUT) OUTPUT)

Trong vòng loop() chúng ta đọc giá tr ị từ biến tr ở   k ết nối vớ i chân A0 và gán nó cho ở k   Mspeed :  Mspeed = analogRead(potP analogRead(potPin)/4; in)/4;

Thiết lậ p tốc độ cho động cơ  b  bằng câu lệnh: analogWrite (speedPin, Mspeed);

Kiểm tra xem công tắc có đượ c bật hay không, nếu có thì thiết lậ p motorPin1 =  LOW và motorPin2 = HIGH ta sẽ thấy động cơ quay ơ quay ngượ c chiều kim đồ ng hồ. if (digitalRead(switchP (digitalRead(switchPin)) in)) { digitalWrite(motorPin1, digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, digitalWrite(motorPin2, HIGH); }

và nếu công tắc không đượ c bật thì motor sẽ quay cùng chiều kim đồng hồ: else { digitalWrite(motorPin1, digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW);  }

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

33

7) Project 7: Giao ti ếp Arduino vớ i LCD 16×2. Giao tiế p giữa Arduino và LCD 16×2 r ất đơn giản bở i vì Arduino IDE đã có sẵn thư viện cho LCD là LiquidCrystal.h,  LiquidCrystal.h, công việc của chúng ta là hiểu và biết cách sử dụng thư viện này mà thôi. 

ơ đồ mạch: Sơ đồ

Hình 30: giao tiế p vớ i LCD 16×2. 

Code chương trình : #include  LiquidCrystal  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

34

 scrollLeftDemo();  scrollLeftDemo();  scrollRightDemo();  scrollRightDemo(); cursorDemo(); createGlyphDemo();  } void introduce(){ lcd.clear(); lcd.setCursor(0,0); lcd.print(“HV HANG KHONG VN”); lcd.setCursor(1,1); lcd.print(“HD SD ARDUINO”); delay (1000);  for(int x=0; x SV: NGUYỄ N TRUNG TÍN

35

 for(int x=0; x SV: NGUYỄ N TRUNG TÍN

36

lcd.setCursor(7,0); lcd.print(“Beginning”); lcd.setCursor(9,1); lcd.print(“Arduino”); delay(500);  for(int x=0; x HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

37

void cursorDemo() { lcd.clear(); lcd.cursor(); lcd.cursor();

SV: NGUYỄ N TRUNG TÍN

38

 B01110,  B00000  };

ữ “ơ” byte char2[8] = { ữ “ô” ra màn hình lcd.write(byte(0)); lcd.write(byte(0));

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

39

Giải thích chương trình:

Đầu tiên chúng ta khai báo thư viện mà chúng ta sẽ sử dụng để điều khiển LCD. Như đã nói ở  trên chúng ta sẽ sử dụng thư viện có tên là LiquidCrystal.h.  LiquidCrystal.h. Có r ất nhiều thư viện và code mẫu cho những loại LCD khác, bạn có thể  truy cậ p vào trang web http://www.arduino.cc/playgrou http://www.ard chúng tôi nd/Code/LCD để tải về sử dụng.

Để khai báo thư viện cho LCD hay bất cứ thư viện nào khác ta dùng câu l ệnh #include

Trong trườ ng ng hợ  p này ta khai báo là : #include

Tiế p theo tạo một đổi tượ ng ng và gán chân cho nó bằng câu lệnh :  LiquidCrystal  LiquidCrystal Object(RS, E, E, D4, D5, D6, D7);

 Như vậy trong đoạn code trên tôi đã khai báo một đối tượ ng ng có tên là lcd  ( các bạn có thể thay thế lcd  b  bằng những từ khác mà các bạn muốn ) và chân 12 của Arduino nối vớ i chân RS, chân 11 nối vớ i E và các chân 5 đến chân 2 lần lượ t nối vớ i D4 đến D7 trên LCD 16×2.  LiquidCrystal  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Trong hàm  setup() chúng ta cần khai báo loại LCD mà chúng ta s ử d ụng. Vì trong

ợ  r  thư viện LiquidCrystal.h r ất nhiều loại LCD chẳng hạn như 16×2, 16×4, 20×2, 20×4,  LiquidCrystal.h hỗ tr ợ  GLCD….Ở đây chúng ta sử dụng 16×2 thì ta khai báo. lcd.begin(16,2);

Trong loop() chúng ta có 8 chương trình con, và tôi sẽ giải thích từng chương trình con. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

40

Chương trình con thứ 1: introduce().

Đây là chương trình giớ i thiệu. 

Chương trình con thứ 2: basicPrintDemo() Trong chương trình con này chúng ta sẽ điều khiển sao cho LCD hiển thị dòng chứ

mà ta mong muốn.

Đầu tiên chúng ta xoá tất cả màn hình bằng câu lệnh: lcd.clear();

Chúng ta cần lưu ý đối tượ ng ng lcd : nếu như ban đầu chúng ta khai báo đổi tượ ng ng là  LCD16x2 thì chúng ta phải viết câu lệnh là  LCD16x2.clear().  LCD16x2.clear().

Để hi  h iển th ị một dòng ký tự b ất k ỳ lên màn hình thì ta dùng câu lệnh print() c ụ thể trong trườ ng ng hợ  p này là: lcd.print(“HV HANG KHONG”);

Các ký tự bên trong ngoặc kép sẽ đượ c hiển thị lên màn hình, nếu tổng các ký tự lớ n

ở đi sẽ không đượ c hiển thị lên màn hình. hơn 16, thì các ký tự từ thứ 17 tr ở đ 

Chương trình con thứ 3: displayOnOffDemo() Trong chương trình con này hướ ng ng dẫn cho chúng ta các câu l ệnh chức năng bật và

tắt màn hình. Ta cần quan tâm tớ i 2 câu lệnh sau. lcd.nodisplay();

Câu lệnh này có chức năng tắt màn hình hiển thị. lcd.display();

Câu lệnh này cho phép hiển thị màn hình. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

41

Chương trình con thứ 4:  setCursorDemo()  setCursorDemo()

Hình 31: LCD 16×2. Chương trình con này hướ ng ng dẫn chúng ta các câu lệnh dịch chuyển vị trí con tr ỏ theo ý muốn, các câu lệnh cần quan tâm đó là: lcd.setCursor(5,0); lcd.print(“5,0”);

Dịch con tr ỏ đến cột thứ 5 hàng thứ 0. Sau đó xuất ra màn hình LCD “5,0” từ cột thứ 5 hàng 0 tr ở đi ở đi. lcd.setCursor(10,1); lcd.setCursor(10,1);

Dịch con tr ỏ đến vị trí cột 10 hàng thứ 1. Xuất ra màn hình “10,1”

Tương tự như vậy đối vơi 2 câu lệnh cuối là : lcd.setCursor(3,1); lcd.setCursor(3,1);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

42

Chương trình con thứ 5: scrollLeftDemo()  scrollLeftDemo() Chương trình con này sẽ dịch các ký tự đang hiển thị trên màn hình sang bên trái.

Các câu lệnh trong chương trình con này không khó, chúng ta chỉ quan tâm tớ i các câu lệnh sau:  for(int x=0; x Trong vòng lặ p chúng ta có câu lệnh: lcd.scrollDisplayLeft();

Mỗi lần ch ương trình thực hi ện câu lệnh này sẽ d ịch t ất cả các ký tự đang hiển thị trên màn hình sang bên trái 1 cột. Chúng ta có vòng lặ p 16 l ần như vậy các ký tự sẽ đượ c dịch hết về bên trái.

Hình 32: Trướ c khi dịch trái.

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

43

Hình 33: Dịch trái lần thứ 8. Khi vòng lặ p thực hiện đượ c 16 lần thì màn hình sẽ tr ống hoàn toàn. 

Chương trình con thứ 6: scrollRightDemo()  scrollRightDemo() Hoàn toàn tương tự như  scrollLeftDemo()  scrollLeftDemo() chương trình con này s ẽ thực hiện dịch

 phải các ký tự trên màn hình. Câu lệnh cần quan tâm là: lcd.scrollDisplayRight(); 

Chương trình con thứ 7: cursorDemo() nháy. Ở phần này chúng ta sẽ tìm hiểu các câu lệnh điều khiển con tr ỏ bật, tắt và nhấ p nháy. lcd.cursor() : câu lệnh này cho phép chúng ta bật con tr ỏ.

Hình 34: Con tr ỏ LCD HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

44

lcd.noCursor(): tắt con tr ỏ lcd.blink(): nhấ p nháy con tr ỏ 

Chương trình con thứ 8: createGlyphDemo() Bây giờ  chúng   chúng ta sẽ tìm hiều cách tự tạo ra một ký tự không thuộc hệ thống mã

ASCII, chẳng hạn như các chữ cái có dấu trong hệ thống chữ cái tiếng việt như ă, â, ô,ơ …. ơ ….

Đối vớ i LCD 16×2 cứ mỗi ký tự trong một ô sẽ đượ c tạo thành từ 5×8 ô nhỏ ( 5 cột, 8 dòng)

Để tạo một ký tự thì chúng ta dùng một mãng gồm 8 phần tử, mỗi phần tử là 1 byte, nhưng chỉ sử dụng 5 bit thấ p của 1 byte để biểu diễn ký tự đó.

ữ “ô” byte happy[8] = {

ữ “ơ” byte sad[8] = { t ạo chữ “ơ”  B01110,  B00001,  B00010,  B01110,  B10001, HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

45

 B10001,  B01110,  B00000  };

Sau khi đã tạo đượ c ký tự mong muốn ta sử dụng câu lệnh: lcd.createchar(num,data);

Trong đó: num: là các chữ số tứ 0 đến 7. data: là các mãng chứa ký tự của chúng ta.

Câu lệnh này sẽ gán ký tự ta đã tạo vào một chữ số. lcd.createChar(0, lcd.createChar(0, happy); lcd.createChar(1, lcd.createChar(1, sad);

Để hiển thị một ký tự ra màn hình ta dùng câu lệnh lcd.write(data). Hiển thị chữ “ô” ra màn hình LCD. lcd.write(byte(0));

Hiển thị chữ “ơ” ra màn hình LCD lcd.write(byte(1));

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

46

8) Project 8: Giao ti ếp vớ i máy tính. Trong phần này tôi sẽ trình bày cách để  giao tiế p giữa Arduino vớ i máy tính thông qua chuẩn giao tiế p nối tiế p không đồng bộ UART.

Điều khiển bật tắt bằng cách gửi lệnh từ máy tính. 

Sơ đồ mạch:

ở  Dùng cáp USB k ết nối Arduino vớ i máy tính. Led n ối vớ i chân 13 thông qua điện tr ở  220 ohm. 

Code chương trình: int ledpin =13; void setup() { Serial.begin(9600);  pinMode(ledpin,OUTPUT);  pinMode(ledpin,OUTPUT);  }

{

digitalWrite(ledpin,HIGH); digitalWrite(ledpin,HIGH); break;  } case ‘0’: { digitalWrite(ledpin,LOW digitalWrite(ledpin,LOW); ); break; }}} HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

47

Giải thích chương trình:  Serial monitor b ằng cách nhấ p Để có thể điều khiển đượ c led bật tắt chúng ta cần mở  Serial vào biểu tượ ng ng

:

Hình 35: Serial Monitor. Trong chương trình ta cần chú ý tớ i các câu lệnh sau: Serial.begin(9600);

Câu lệnh này dùng để kiểm tra xem có dữ liệu truyền tớ i hay không. Ngoài ra Serial.available() còn tr ả về cho chúng ta số ký tự đã đượ c truyền tớ i Arduino HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

48

char setupled = Serial.read( Serial.read(); );

Khi dữ liệu đượ c truyền tớ i Arduino thì dữ liệu sẽ đượ c lưu vào bộ nhớ đệ ớ đệm. Chúng ta khai báo biến setupled vớ i ki ểu dữ liệu char và dùng hàm Serial.read() để truy suất dữ liệu trong bộ nhớ đệ ớ đệm và lưu vào trong nó. Như vậy ký tự đầu tiên trong chuỗi ký tự đượ c truyền tớ i sẽ đượ c gán vào setupled. Dùng hàm Switch-case để kiểm tra, nếu là “1” thì sáng led, nếu là “0” thì tắt led, các trườ ng ng hợ  p còn lại thì không làm gì.

9) Project 9. Đo nhiệt độ môi trườ ng ng dùng LM35D hiển thị  LCD và Serial Monitor. 

Sơ đồ ơ đồ mạch.

Hình 36: giao tiế p vớ i LM35, LCD và Serial monitor. 

Code chương trình: #include  LiquidCrystal  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

49

int scale = 1; int buttonPin=8;

SV: NGUYỄ N TRUNG TÍN

50

SV: NGUYỄ N TRUNG TÍN

51

Giải thích chương trình:

Tổng quan: chương trình sẽ kiểm ta mức điện áp ngõ ra của LM35 tương ứng v ớ i nhiệt độ của môi trườ ng ng hiển thị trên Lcd và Serial Monitor. Nhiệt độ của môi trườ ng ng đượ c tính bằng độ C và độ F, nếu nhấn phím thì sẽ thay đổi hiển thị là độ C hay độ F. Bắt đầu chương trình ta khai báo thư viện Lcd và định ngh ĩ a chân cũng như các biến cần dùng cho toàn bộ chương trình. #include  LiquidCrystal  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Trong hàm setup() chúng ta cần quan tâm tớ i câu lệnh: analogReference(INTERNAL);

Khai báo điện áp tham chiếu cho bộ chuyển đổi ADC bên trong Arduino Uno là 1,1V ( đây là giá tr ị điện áp tham chiếu nội mặc định của Arduino Uno). ng chúng ta cần lưu ý những điểm sau: Để tính toán đúng nhiệt độ môi trườ ng Bộ chuyển đổi ADC gồm 10 bit tức là 1024 mức. HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

52

Điện áp tham chiếu cho bộ chuyển đổi ADC là 1,1V. ng. Đối vớ i LM35 thì điện áp ngõ ra tuyến tính vớ i nhiệt độ của môi trườ ng. Hệ số chuyển đổi điện áp sang nhiệt độ là 10mV/10C = 0,01V/10C. Xây dựng công thức tính nhiệt độ. Ta biết: 1,1 volt (1100 mV) có 1024 mực biểu diễn, vậy 1 mức sẽ là 1,1/1024 (volt),

để chuyển đổi từ điện áp sang nhiệt độ thì ta chia tiế p cho 0,01V. Từ đây ta thấy cứ 1 mức chuyển đổi của ADC tương ứng vớ i

1,1

0

1024.0,01

C = 0.10742188 0C.

 Như vậy chúng ta chỉ cần đọc giá tr ị đầu vào ở  chân  chân A0 (giá tr ị nằm trong khoảng 0 – 1023) và gán chúng cho biến integer sensor. int sensor = analogRead(0); analogRead(0);

Để tính ra nhiệt độ chính xác chúng ta nhân giá tr ị của sensor vớ i 0.10742188. Trong chương trình con celsius(int sensor) ta có câu lệnh: int temp = sensor* 0.1074188; 0.1074188;

Trong chương trình con fahrenheit(int sensor) ta có câu lệnh chuyển đổi từ độ C sang độ F là:  float temp = ((sensor ((sensor * 0.1074188) 0.1074188) * 1.8)+32; 1.8)+32;

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

53

10) Project 10: Giao ti ếp Arduino vớ i Servo motor. 

ơ đồ mạch Sơ đồ

Hình 37: Giao tiế p vớ i Servo motor 

Code chương trình. #include Servo servo1; void setup() {  servo1.attach(5);  servo1.attach(5);  } void loop() { int angle = analogRead(0);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

54

 servo1.write(angle);  servo1.write(angle); delay(15);  } 

Giải thích chương trình: Khai báo thư viện cho Servo motor bằng câu lệnh. #include

Khai báo đối tượ ng ng có tên là servo1 Trong hàm setup() ta định ngh ĩ a chân cho Servo:  servo1.attach(5)  servo1.attach(5) ;

Chân số 5 của Arduino sẽ nối vớ i chân input của Servo motor.

Đọc giá tr ị điện áp của biến tr ở  ở và  và gán nó cho biến integer angle : int angle = analogRead(0); analogRead(0);

Giá tr ị đọc đượ c từ biến tr ở  ở s  sẽ nằm trong khoảng 0 đến 1023 và góc quay của Servo từ 00 đến 1800 ta sử dụng câu lệnh : angle=map(angle, angle=map(angle, 0, 1023, 0, 180);

ở sang   sang góc quay tương ứng của Câu Lệnh này sẽ chuyển đổi từ giá tr ị của biến tr ở  Servo. Để điều khiển góc quay của Servo ta dùng câu l ệnh:  servo1.write(angle);  servo1.write(angle);

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

55

Tài liệu tham khảo.    

Beginning Arduino – Mike McRoberts Arduino cookbook –  Michael  Michael Margolis http://arduino.cc http://blogembarcado.blogspot.com

HỌC VIỆ N HÀNG KHÔNG

SV: NGUYỄ N TRUNG TÍN

56

Huong Dan Hack Robux Trong Roblox

Hưᔛng DẔn Chi Tiết Cach Nạp ThẔ huong dan hack robux trong roblox Robux Trong Roblox Năm 2019

hưᔛng dẔn cach nạp roblox

pat and jen roblox hide n seek Dominus Hack Video Podval

how to get

roblox jailbreak fast run

free dominus hack

money codes for roblox mad city 2019

Mᔛi Bắt Ēầu

all roblox hackers names Huong Dan Mua Bc Roblox

hưᔛng dẔn lấy

how to hack ice cream simulator roblox

robux free trong roblox code lấy robux 2018 thanh cong

roblox email code Cach Hack Rp Piece

roblox hackercom

Roblox ฟร ว ด โอออนไลน ด

the hacking incident roblox creepypasta

ท ว ออนไลน คล ป

roblox huong dan hack auot fam va tp roblox rob! ux generator without offers dfyami one piece pirates wrath

Skachat roblox adopt me party Cho Nick Roblox 100 Thanh Cong Smotret

roblox how to get ultimate trolling gui

Onlajn

cho nick roblox 100 thanh cong

Robloxwin Com Earn roblox high school 2 promo codes 2019 wiki Free Robux

earn free robux for roblox

Roblox 50000 robux hack Hack How To Get Free Robux Roblox Cheats Android Ios roblox dungeon quest fandom wiki

roblox hack how to get free robux roblox cheats android ios tin tᔩc roblox cursed islands codes 2019 cong nghᔇ trangcongnghe com

roblox meepcity song ids

Cho Phep Avatar Cᔧa Mᔙt Ēᔩa TrẔ Bᔋ

roblox egg hunt best eggs

Ham

Ä’o la thá”i gian dai Ēᔃ co Ēưᔣc cac chi nhanh trong thế download roblox hack ios giá”›i thá”±c cho cac cuá”™c tấn cong trong game co thᔃ co can someone hack you on roblox hậu quả tam ly lau dai Ēᔑi

Skachat Hưᔛng DẔn Hack roblox redeem codes Jailbreak Ēơn G! iản Nhất Roblox roblox promo codes music R Bown Mp3

hÆ°á”›ng dẔn kiếm tiá”n nhanh nhat roblox free robux download trong roblox jailbreak

Skachat Hưᔛng DẔn Hack Robux Thanh Cong 100 How roblox hide and seek extreme script To Hack Robux 100

hackergamingvn hưᔛng dẔn hack robux 100 sẽ thanh

aesthetic roblox outfits cheap

cong

Download Mp3 Mua Robux Trong Roblox 2018 2018 Free

creepypasta de roblox

download mp3 mua robux trong

memes of roblox

roblox 2018 free thumb hưᔛng dẔn

Hưᔛng DẔn Chi Tiết Cach

is there hackers in roblox

Nạp ThẔ Robux Trong Roblox Năm 2019

roblox oof kid

Hưᔛng DẔn Ēăng Ky Tai roblox uncopylocked granny Khoản Muacash Robux Miᔅn Phi Mccash Miᔅn

hưᔛng dẔn roblox toys all Ēăng ky tai khoản muacash robux miᔅn phi mccash miᔅn

roblox run meme song Tải VᔠUnlimited Free Robux Roblox Pranking 1 0 2 Apk Com

tải vá”

roblox gorilla simulator 2 codes

unlimited free robux roblox pranking

roblox meme simulator

1 0 2 ! apk com robloxtool app apk miá”…n phi

Hưᔛng roblox account dump discord 2018 DẔn Chi Tiết Cach Chơi Game Roblox Cho roblox id mine Cac Tan Thᔧ