Top 1 # Video Huong Dan Combo Riven Xem Nhiều Nhất, Mới Nhất 1/2023 # Top Trend | Karefresh.com

Riven Combos And Animation Canceling Guide

Edit: for those who are not interested in riven, give a try to the mentality part. it may help you

Hello guys, i’m a diamond 2 riven main. (i was master this summer but i demoted because of school+meta changes. anyway, i’ve played over 100 games in high d1/master/challenger mmr). (summoner: BrokenSoul24 EUNE). i’m also the one who did this guide a while ago and now i’ve decided to update it. for me, learning riven was hard… i had to play and replay and replay a ton of montages in order to understand animation cancelling at it’s best and to know what combos to use. i will give, for interested riven mains (or wish to main riven players) all the riven combos/animation canceling i know. i did not invent all these combos, i had took them from streams/montages. it’s going to be a lot of information… it took me some months to gather and then master it (and there is still room for improvement).

i’ll talk about animation canceling and how it works.

note 1: you shouldn’t try to learn a higher difficulty combo, unless you know most of the previous difficulty ones. note 2: to make them work, and actually cancel animations, you will need to figure out the timing between the keys. i can’t tell you the exact timing because: 1) it depends on ping. 2) I’M NOT ENTIRELY SURE ABOUT REAL VALUES it’s muscle memory for me. i’ll give some approximate values to help you figure out.

there are cancels which work for intervals like: [right after you pressed the first key, first animation ends]=[0,end], and they are the easiest cancels (e-w or hydra-w for instance). and there are cancels like [x seconds, y seconds] after the first spell. the difference between those two kind of cancels and the number of actions required for a combo gives it’s difficulty.

note: there are combos who are actually something like spell-[0.05,end]-spell, but i’ll write them as spell-[0,end]-spell because a human being can’t actually press faster than ~0.05 to fuck up the combo (i know about this because i once tried some macros in a custom). [0, end]= 0 as the first variable in the interval means “you can press the next key asap after the first one” and the second one being “end” means, but until the first animation ends, so it’s going to be a cancel involved.

⦿ E allows you to use any spell/hydra right after pressig it. the animation will not actually be canceled. right after you press e, you can start any spell/hydra, and the animations will stack, the game will show the e animation, until it’s finished, and then the rest of the following spell (which means the intervals are going to be like e-[0,end]-w). if you press E-W instantly, it will stun the area you were before pressing e. for hydra/q, the dmg will go off right when you finish your E animation. if you do E-Q, you lose A BIT (half teemo) of distance. tho, you lose more distance depending on how fast you press E-Q (with macros, you lose the entire distance of q)

⦿ any cancel of two components, that does not start with E, works like this: after the first animation starts, you will have a certain interval of time, in which you can press the second spell, to overwrite it with the second animation (which means, that only a portion of the first animation is going to be shown). the intervals are going to be like [x,y]

IMPORTANT NOTE: any combo which contains e and w-q will have either q or both w-q casted after E’s animation ends. you will have to do either E-(end)-W-(0.01)-Q or E-(0.01)-W-(end)-Q. another example: E-(0.01)-hydra-(end)-W-(0,01)-Q or E-(end)-hydra-(0,01)-W-(0.01)-Q. end=wait for animation to end before pressing next spell, 0.01= you press it right after the next one.

Imo, the best version of this combo combined with (q-aa combo) is: E-AA-hydra-Q-move-AA-Q-move-W-AA-Q-AA

(just try r-hydra-q until you figure out yourself the timing if you can’t understand the math)

note: the animation canceling works in the same way for both R1 and R2.

i did not include that laugh (any emote actually) “mechanic” (bug actually), because that is only a visual bug. it bugs the q in a way that it does not show the full animation, but the actual animation is still there. 0 animation canceling here.

note: adding anything from parenthesis (except flash, you use it to get in range) will make the core combo a bit slower, but doing more dmg. sometimes you will have to add those components from paranthesis to kill someone.

you can also use: E-R-(AA)-(flash)-Q-(AA)-W-AA-Q-AA- Q-AA-R/R-Q-AA, if you want to keep the enemy closer to you (using stun earlier) in the moment after engaging (example: your jungler is coming to gank and you don’t want the enemy gnar to jump away before your jungler can get in range for his cc or you want to send the enemy in base, without killing him, but he has escape up and would just run away from your combo if using the first form). it’s still better to use the first form of the combo in a normal duel, since you don’t waste your shield stunning the enemy.

by skipping some Q-AA from this combo, you can get: E-R-Q-W-(AA)-R-Q-(AA) (gap closing+burst)

this combo has also another form (W at the end) – video – E-R-Q-AA-Q-AA-Q-AA-W-(AA)-R-(AA) (if you use this, your enemy won’t be able to flash your ultimate, because he will be stunned!)

also, you can skip any Q-AA from this combo, in order to burst the enemy faster: video E-R-Q-W-AA-hydra-R-Q

R-W-(AA)-Q-AA-E-(AA)-Q-AA- Q-AA-R/R-Q-AA (R-Q-AA is faster but may deal less dmg if the enemy has over 25% hp when using R). hydra can be used before W or any Q.

R-W-AA-hydra-Q-AA-E-AA-Q – he did not finish the combo cuz irelia ran away.

you can skip any Q-AA or E for doing it faster.

i usually use this against champs like irelia, rene, pantheon (i wait them to stun me and then i start this combo).

you can extend it to: (Q, to gap closer)-E-R-(flash)-W-AA-(hydra)-Q-AA- -Q-AA-R/R-Q-AA. video note: those combos ares used only for burst and not for duels where the enemy can kill you. using W right after E is not effective (you waste time of your shield). just use combo 1 for a straight duel.

a full extended one E-R-flash-W-AA-Q-AA-Q-AA-Q-R – he did not use the last auto, because he didn’t need it, and he did not use R+Q because he needed the knockup to stop jayce’s q.

my favorite version of this combo: E-R1-(flash)-Q-W-AA-(hydra)-R2-(hydra)-Q-(AA-Q-AA) add Q before W. i love this combo and i use it a lot. (it’s easier to hydra before R2) example (the hydra-r-q can be done a bit faster tho)

edit: this is another version of my favorite combo, but i wouldn’t recommend using it, because it’s easier to fail, and if you fail the first part, you fuck up the entire combo. E-R-flash-hydra-W-Q-AA-R-Q-(AA-Q-AA)

this combo is the most versatile one, depending on your target’s hp, you can skip auto attacks/spells or even change it’s form. i will list the variations of this combo in the order of aproximate speed.

Q-Q-E-R-(flash)-Q-W-R Q-Q-E-R-(flash)-Q-W-R-hydra

Q-Q-E-R-(flash)-Q-hydra-W-R-(AA) video (this is slower than previous one, but can deal more dmg if the target has over 25% hp before R)

Q-Q-E-R-(flash)-Q-AA-W-R Q-Q-E-R-(flash)-Q-AA-W-R-hydra

Q-Q-E-R-(flash)-Q-AA-hydra-W-R video (this is slower than previous one, but can deal more dmg if the target has over 25% hp before R)

Q-Q-E-R-(flash)-Q-AA-W-R-AA video

Q-Q-E-R-(flash)-Q-AA-W-AA-R (this is slower than previous one, but it can deal more dmg if the target has over 25% hp before R)

Q-Q-E-R-(flash)-Q-AA-W-hydra-R-AA -my favorite verison

Q-Q-E-R-(flash)-Q-AA-W-hydra-AA-R (this is slower than previous one, but it can deal more dmg if the target has over 25% hp before R)

note: you use hydra before W when you don’t want to auto attack between W and R. also, the auto attack between Q and W will go way faster than the one between W and R. but, if you have youmu, just pop it before combo and do Q-Q-Youmu-E-R-(flash)-Q-AA-hydra-W-AA-R-(AA) or Q-Q-Youmu-E-R-(flash)-Q-AA-W-AA-hydra-R-(AA)

important: you should, if your objective is not only to kill someone, but to be able to do something after the combo (or maybe to kill someone if this combo was not enough), use the 2 Qs from the beginning of the combo and the E-R-(flash)-Q part at ~time gaps of the Q going to cooldown if not used timer. with ~40% cdr you will be able to use Q again after the combo (if you don’t have 40% cdr, you will have to wait some seconds after the combo in order to use q again). but, if the adc has really bad position, just press Q-Q-E-R-(flash)-Q as fast as you can ;).

just skip one step from the complete form if your dmg is high enough to kill someone. it’s not like i think before engaging which of those 10 variations i will use before starting the combo (i may just guess), i just start the combo, and depending on how much dmg i do with the first part of it (which is the same everytime) i decide on how many things to skip in order to do the kill in the fastest way possible. important

⦿ after you master all those combos, you can combine them/use ult not at the beginning/at the end to trick your enemies, but those combos are way too situational and have way too many variations… i won’t write them all. here is an example: E-Q-W-AA-Q-R-AA-Q-AA-R.

⦿ i feel like the 4th combo is the best for aoe in a teamfight, since you can use 3rd Q and W. if you flash stun into 5 enemyes, you may die before casting 3rd Q. and for a teamfight (in which you may need to go for as many targets as possible instead of only for 1) when enemy has hard cc+burst, i suggest using: E-R-flash-Q-(AA)-(hydra)-W-R-AA or E-R-flash-Q-(AA)-W-R-(hydra)-AA (this is faster, but r may deal less dmg) video. you can do it without letting enemies caught into it to react. use the auto attack from paranthesis if you can do the fast q mechanic fast enough (as in the video). even though the best scenario (if you have no aoe comp) is to catch the enemy adc/both carries positioned bad (in your range for execute combo (3rd or 4th) and nobody is near him to protect him) and instakill him.

⦿ if you can kill an enemy with Q+Q (while already in range) just do it (but only for execute), it’s faster than Q+AA. but, it’s almost never good to use Q-Q-Q (while already in range) to execute someone or to cc them. maybe you can use it when you are almost dying and your super fed katarina (or any instaburst champ) is coming and going to instakill the enemy with e-w and you need 0.1 more seconds to stay alive before she is there (1 in a million situations).

⦿ before minute 20 you can use flash however you want (take kill/escape/trade flashes/send enemy base to take objective), but after min 20, use it only to get shut downs, avoid getting shut downed, to take/defend objectives. ( ie: flash to kill someone and result in taking an objective; flash to stay alive and be able to take baron or something afterwards)

⦿ you can use youmu before any of the combos above to speed them up! (many may not know, but attackspeed also makes the hydra animation faster).

⦿ a good combo to execute someone in lane (really good when you are both low hp) is: E-(flash)-W-AA-Q-(AA) pr E-(flash)-AA-W-Q if you master the AA-W “cancel” thing

⦿ if you can’t do the fast q combo and you want to stun at the end of the combo, just stun before knocking up enemies, this will give you time to auto attack between W and Q3. if you can do the fast q, you can 3rdQ-AA-W without letting them escape (you have to catch q at ~3/4 range at least). if you already used 2 Qs, you are not in range to W or AA and your 3rd Q withh catch them at max range, cast Q3-W and then auto attack (i think this is something obvious, tho)

how to trade in lane

⦿ at lvl 1 i just try to push, while avoiding trading or being poked as much as i can. if i manage to lvl 2 before my enemy, and he stays close to his creeps, he is fucked because i’m going to trade again at lvl 3 (this is how i take a kill/burn a flash ~75% of the time on my low diamond smurf, if it works in low diamond, it will work in any elo below that).

⦿ what i actually do: when i’m close to hit lvl 2 (after pushing) and the 7th creep is about to die (sometimes i wait for my minions to dmg that creep, sometimes i aa it to death, if possible) and my enemy needs at least 1 more creep for lvl up, i try to get near him (if i’m not), i take the creep/let it die and then, if in range, ill start with AA, if not, i’m going to use a Q to get near him and then start the combo. the combo: (AA)-Q-AA-Q-W-AA-Q-AA. if you can’t do the fast q (it’s better to w-aa-q-aa at the end and not use stun at the beginning because it will lock down your enemy for that duration if you can do the fast q. but sometimes it’s better to q-w-aa-q-aa-q-aa, just to not let him get into his creep wave/turret range or use a dash/cc. q-w-aa is guaranteed dmg) .you kinda need ignite if you want to secure a kill this way, tho. but if you are not at least plat 3, tp is USELESSSSSSS (i’ve almost never seen a tp being more useful than an ignite under plat 3 elo.)

note: try to keep an eye on your creeps, if the enemy is going to do lvl 2 during your combo, you may get fucked.

⦿ if you don’t manage to lvl 2 before your enemy and you both lvl up at the same time, just wait for 1 more level and then use: against melee:q-w-aa to do dmg and e-q-(q) to run away, you sometimes can Q3 into them and do a bit of bonus dmg. if you didn’t dodge vs jax, try to bait his dodge with q-w into him, then run with e-q. if he gets into your minion wave, aa-Q3-aa him, if he is not in your minion wave, but he managed to stun you with e, then you messed up and you are fucked now, farm under tower and wait for jungler.

⦿ against ranged: if you can’t get in range for auto attack with e and 2Qs, just don’t try. you will get kited and fucked up after you do the combo. also, at lvl 1, try to start with Q: push the first 3 minions with q if he is not there (aa-q-aa-q-aa-q-aa, DO NOT QQQ PLZ) even if you may need to give up 1 or 2 cs for your q to come off cooldown, it’s worth it if you manage to lvl 2 first. if you can get in range to auto attack him with just 1 q, then try to trade at lvl 1. at higher elo (d3+) it’s better to start with e, because the enemy won’t fuck up so often.

⦿ if your enemy pushes you and does lvl 2 before you, just give up cs until you are also lvl 2. IF YOUR JUNGLER COMES TO GANK, THE ENEMY HAS MINIONS PUSHING NEAR YOUR TOWER AND THE ENEMY IS NOT A GUARANTEED KILL, TELL HIM TO WAIT YOU KILL THE CREEPS, OR JUST DO ANOTHER CAMP. if your jungler still comes, then: 1. the enemy top laner may get a double kill. 2. he may escape and you may lose a lot of cs, 3. the enemy jungler may show up and fuck you up. 4. you may get a kill, for losing a lot of cs. only the 4th scenario is worth, but it mostly relies on your enemies (top&jungler) to fuck up.

⦿ champs against you can’t actually do shit against and you should dodge: trynda, irelia, jax, mundo, tahm, hecarim. (ofc you won’t dodge if you have a good comp and your enemy has a shitty one)

⦿ ofc, those strats won’t work in every scenario, but doing this every game, should work most of the time while being lower than diamond low. if you are higher than diamond low… i’m sorry but that’s just too much to think about and write for me…. i take the decisions based on too many factors (and also experience+muscle memory): 1) my opponent’s champ; 2)my position/his position; 3)mine and his hp; 4)creeps health/position; 5)mine and his cooldowns; 6) where the jungler may be; 7) items/level; 8) summoner spells; 9) my opponent’s playstyle;

PS: i don’t know shit about what to do vs poppy or illaoi, since i’ve never faced them.

this is one of the most important (and hard) combos on riven.

normally, a combo such as AA-Q-AA-Q-AA-Q-AA takes ~3 seconds, but if you do the fast q combo, it will take ~1-2 seconds (depending on how fast you can do it).

the full combo is something like this: AA-Q-move-AA-Q-move-AA-Q-move-AA

this video will show you how it looks and speak about how it works.

you can also combine the fast q mechanic (Q-move-AA) with any other combos that contain Q and AA afterwards.

a good combo without ultimate is: e-aa-q-move-aa-q-move-w-aa-q-move-aa you can add hydra in this combo before any q (or right after e) and add only 0.1 seconds to it. you have to move between q and w, to cancel the animation of q and to be able to press w, furthermore, the auto attack right after w will go off really fast.

since this combo needs to be a reflex for a good riven player, try practicing it a lot in custom games.

any of the combos above are completely doable even without ult, you can use them to all in when your ult is down, even though the combos without ult are really versatile… most of them are based on 2-3 spells to go in and 2-3 to go out and depend on every matchup.

while watching the videos, in order to understand the combos better, play them in slow motion (0.25 speed)

REALLY IMPORTANT: disable (from video settings) Wait for Vertical Sync and Anti Aliasing. Wait for Vertycal Sync matches the monitor refresh rate with maximum fps, avoiding screen tearing (google it up if you don’t know what that is), for the cost of performance. as for the anti aliasing, it just makes the graphics smoother, but can give lag sometimes.

for those who want to focus on decision making, try to improve the following:

map awareness: look on that map when you think the enemy jungler may gank you, or before any engage you would like to do. (for example, after i see that 4 enemies are on bot+mid, and i don’t have teleport, i will just focus on my lane until it’s probably for someone to gank me).

jungler awareness: knowing when to ask for ganks and knowing when to expect to be ganked

wave control: there is a lot about this, just google it up

objective control, knowing when to take/give up an objective

oh, yep, there is something more important than mechanics and decision making in order to rank faster. once you understand and apply that thing, learning new mechanics or improving decision making will be way easier. that thing is called MENTALITY (you can rank up even with shitty mentality, but it will be way harder and less enjoying). i don’t want to go deep into this, because this thread is about riven mechanics and there are plenty of guides about mentality. i’ll still speak a bit about it because it makes your climb way easier.

learn from your mistakes (which is also a Riven quote). every time you die or lose a fight/objective, first think of what you should have done better, and after that think of what your teammates did wrong. some say that you should take all the blame on yourself, but that is not realistic. sometimes your amumu just misses ult, then flashes, misses q, and meanwhile you get killed by the enemy renekton. sometimes, your team dives 4v5 even if you told them to wait because you had 2k gold in your inventory, and sometimes they recall instead of taking an objective. but even if playing perfectly would have not changed the outcome of the fight/skirmish, you should still think of what you failed. next time, in a similar scenario, your team may not fail that hard, and knowing what to do better, will help.

even if your teammates are to blame, don’t get angry (well, it’s natural to get a bit angry, tho. but try to contain that as much as you can). laugh at how bad/sutupid they are (not in chat please, don’t tilt them).

don’t flame… it makes you feel superior at the moment, but for the cost of probably making your team play worse. (and it’s also wrong to make someone feel bad because of a game. furthermore, think that tilting that player, may result in him fucking up his next game and ruining another 4 teammates, which probably haven’t done anything wrong. but this is not about climbing, so i’ll stop here).

think about learning, not climbing. there are games you just can’t win, important is to learn something from them.

don’t play if you just want to climb. if you stopped enjoying the game, take a break and it will be fine in a few hours/days. most of the time this effect is called tilt.

since a lot of people are going to ask:

⦿ runes& items: (first of all, it’s still preseason and i’ve heard that a new assassin item is coming up on pbe… this is just what i’m currently building. i don’t think it’s the optimal version, tho)

runes: 9 ad red, 9 armor yellow, 6 cdr flat blues, 3 cdr/lvl blues, 3 ad quints

build vs tanky team: bc first item, cdr boots, hydra for the core, and then complete the build with: lw/dd/bt/maw/qss/ga/randuin/visage/banshee

build vs squishy team: youmu, boots, warhammer, hydra for the core. lw/dd/bt/maw/qss/ga/randuin/visage/banshee. later on, you sell youmu for bc.

i’m not sure about this (i tried it twice and it worked, but it was on a high platinum mmr smurf): when your team really needs a tank, or the enemy team has a lot of burst,cc,disengage (anti riven comp), you can go with this build: bc, cdr boots, titanic, sterak/other tanky items, an ad item depending on what you need and another tanky/ad item depending on the situation.

⦿ masteries: 12-18

NOTE:the intervals used are there to get an overall idea on how fast you should press the keys. they are not precise, and they also depend on your ping. TL;DR:

E will cancel any spell/item you use after it

You can R-Q (both R)

hydra can be used before W, Q or R/ after E and R

feel free to ask anything you would like to know about riven. i’ll answer everyone.

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ᔧ

Huong Dan Su Dung Eview 7

, Student at Khoa Hoc Tu Nhien

Published on

Huong dan su dung eview 7

1. TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING BỘ MÔN TOÁN HƯỚNG DẪN SỬ DỤNG PHẦN MỀM EVIEW 7.0 ThS. NGUYỄN TRUNG ĐÔNG ThS. NGUYỄN VĂN PHONG TP. HỒ CHÍ MINH – 2013

2. 1 MỤC LỤC Trang 1. Màn hình Eviews………………………………………………………………………………………………….. 3 2. Các kiểu dữ liệu thông thường ……………………………………………………………………………….. 4 2.1. Số liệu theo thời gian…………………………………………………………………………………… 4 2.2. Số liệu chéo ……………………………………………………………………………………………….. 4 2.3. Số liệu hỗn hợp…………………………………………………………………………………………… 4 3. Nhập dữ liệu ………………………………………………………………………………………………………… 5 3.1. Nhập trực tiếp vào Eview…………………………………………………………………………….. 5 3.2. Nhập từ Excel và Word có sẵn……………………………………………………………………… 10 4. Vẽ đồ thị. ……………………………………………………………………………………………………………. 14 4.1. Vẽ biểu đồ phân tán số liệu ………………………………………………………………………….. 14 4.2. Vẽ đường hồi quy tuyến tính ……………………………………………………………………….. 17 5. Tìm hàm hồi quy tuyến tính mẫu (SRF)…………………………………………………………………… 18 6. Một số hàm trong Eviews………………………………………………………………………………………. 21 7. Cách tìm một số dạng hàm hồi quy…………………………………………………………………………. 21 8. Tìm ma trận tương quan và ma trận hiệp phương sai của các hệ số hồi quy…………………. 22 8.1. Ma trận tương quan giữa các biến…………………………………………………………………. 20 8.2. Ma trận hiệp phương sai của các hệ số hồi quy……………………………………………….. 23 9. Bài toán tìm khoảng tin cậy cho các hệ số hồi quy……………………………………………………. 24 10. Bài toán dự báo…………………………………………………………………………………………………… 26

3. 2 11. Định mẫu …………………………………………………………………………………………………………… 31 12. Tính các giá trị thống kê………………………………………………………………………………………. 33 13. Các bài toán kiểm định giả thiết mô hình ………………………………………………………………. 35 13.1. Kiểm định phương sai ……………………………………………………………………………….. 35 13.1.1. Kiểm định White ……………………………………………………………………………… 35 13.1.2. Kiểm định Glejser…………………………………………………………………………….. 37 13.1.3. Kiểm định Breusch – Pangan – Godfrey ……………………………………………… 38 13.2. Kiểm định tự phương quan (kiểm định BG) …………………………………………………. 39 13.3. Kiểm định biến có cần thiết trong mô hình hay không (kiểm định Wald)…………. 41 13.4. Kiểm định thừa biến trong mô hình …………………………………………………………….. 43 13.5. Kiểm định biến bị bỏ sót trong mô hình……………………………………………………….. 45 13.6. Kiểm định Chow trong mô hình hồi quy với biến giả…………………………………….. 46 14. Định dạng mô hình (Kiểm định Ramsey RESET) ………………………………………………….. 49 15. Lưu kết quả trong Eviews ……………………………………………………………………………………. 51 15.1. Lưu file dữ liệu ………………………………………………………………………………………… 51 15.2. Lưu các bảng kết quả ……………………………………………………………………………….. 51 Tài liệu tham khảo …………………………………………………………………………………………………… 54

4. 3 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM EVIEW 7.0 1. Màn hình Eviews Hình 1 Màn hình Eviews Thanh công cụ Cửa sổ Command Cửa sổ Workfile

5. 4 2. Các kiểu dữ liệu thường dùng. 2.1. Số liệu theo thời gian: là các số liệu thu thập tại nhiều thời điểm khác nhau trên cùng một đối tượng. Chẳng hạn như số liệu về GDP bình quân của Việt Nam từ 1998 – 2006 được cho trong bảng sau: 2.2. Số liệu chéo: là số liệu thu thập tại một thời điểm ở nhiều nơi, địa phương, đơn vị, khác nhau. Chẳng hạn như số liệu về GDP bình quân trong năm 2006 của các nước Brunei, Campuchia, Indonesia, Lào, Malaysia, Myanmar, Philippines, Singapore, Thái Lan, Việt Nam được cho như sau: 2.3. Số liệu hỗn hợp: là số liệu tổng hợp của hai loại trên, nghĩa là các số liệu thu thập tại nhiều thời điểm khác nhau ở nhiều địa phương, đơn vị khác nhau. Chẳng hạn như số liệu về GDP bình quân của các nước từ 1998 – 2006.

7. 6 Mở Eview, để nhập dữ liệu: Chọn File→New→Workfile, ta có màn hình như sau: Hình 2 Tuỳ vào kiểu dữ liệu cần khảo sát, ta có thể chọn được các kiểu sau : Dated – regular frequency Multi – year : Số liệu nhiều năm Annual : Số liệu năm Semi – Annual : Số liệu nửa năm Quarterly : Số liệu theo quý Monthly : Số liệu theo từng tháng Bimonthly : Mỗi tháng 2 lần/2 tháng 1 lần Fortnight : Hai tuần lễ/15 ngày Ten – day (Trimonthly) : Weekly : Số liệu theo từng tuần Unstructure / Undate : Số liệu chéo Để nhập dữ liệu ở ví dụ 1, ta chọn các khai báo như trong hình 3 như sau:

8. 7 Hình 3 Để nhập dữ liệu ở ví dụ 2, ta chọn các khai báo như trong hình 4 Hình 4 Để nhập dữ liệu cho ví dụ 3, ví dụ 4, ta có thể khai báo báo như trong hình 5.

9. 8 Hình 5 Trong ô Observations ta nhập cỡ mẫu (số các quan sát) Chẳng hạn như trong ví dụ 3, ta nhập 10 rồi nhấn OK ta được hình 6 Hình 6 Để nhập số liệu ta chọn : Quick →Empty Group (Edit Series), màn hình xuất hiện một cửa sổ như hình 7. Trong đó

10. 9 – Cột obs ghi thứ tự quan sát. – Các cột kế tiếp để khai báo các biến và nhập số liệu. Hình 7 Ví dụ nhập số liệu cho biến Y vào cột số 2, ta nhấp chuột vào đầu cột này và gõ tên biến Y sau đó nhấp Enter và lần lượt gõ các giá trị vào các ô bên dưới có ghi chữ NA. Chẳng hạn như trong ví du 3 và ví dụ 4, ta khai báo và nhập số liệu tuần tự như trong các hình sau : Hình 8

11. 10 Hình 9 3.2. Nhập từ Excel và Word có sẵn Giả sử ta có sẵn File Excel vidu chúng tôi chứa số liệu của ví dụ 3. Khi đó ta thực hiện các bước Import sau: (Excel 2003 mới dùng được) Mở chương trình Eviews chọn File → Open →Foreign Data as Workfile…như sau Hình 10

12. 11 Hình 11 Chọn Open ta được kết quả như trong hình 12. Trong cửa sổ này chúng ta thấy có hai cột số liệu của X và Y tương ứng trong Sheet1 của File vidu chúng tôi Hình 12

13. 12 Sau đó chọn Next ta được kết quả như trong Hình 13 Trong của sổ này với cột nội dung Column info ta có thể mô tả lại tên của các biến tại các ô Name: Tên biến; Description: Mô tả tên biến Hình 13 Cuối cùng chọn Finish ta được kết quả như trong hình 14 Hình 14 Lưu ý. Các bước trên được gọi là trích lọc dữ liệu từ một file dữ liệu có sẵn.

14. 13 Ta có thể thực hiện copy trực tiếp từ một file Word hoặc Excel Mở của sổ Group của Eview Hình 15 Từ file excel hoặc file word bôi đen rồi copy và paste vào file trên. Chẳng hạn ta có file word ta thực hiện như sau: Hình 16 Ta paste vào của sổ Group như sau

15. 14 Hình 17 Và được kết quả như sau: Hình 18 4. Vẽ đồ thị. 4.1. Vẽ biểu đồ phân tán số liệu. Mục đích của việc vẽ đồ thị này cho phép ta đánh giá sơ bộ về mối quan hệ cũng như hình dung được dạng hàm (mô hình) giữa hai biến với nhau. Để vẽ đồ thị phân tán của hai biến, chẳng hạn như trong ví dụ 3 ta vẽ đồ thị phân tán của Y và X.

16. 15 Từ của sổ Eviews chọn Quick→Graph Hình 19 Một của sổ Series List xuất hiện. Ta gõ tên biến độc lập (X) và biến phụ thuộc (Y) giữa hai biến này là khoảng trắng. Khi đó màn hình sẽ như sau (không cần viết hoa) Hình 20 Nhấp OK, ta được màn hình sau

17. 16 Hình 21 Ta chọn Scatter rồi nhấn Ok, ta được đồ thị phân tán dữ liệu như sau Hình 22 Làm tương tự như các bước trên ta có thể vẽ các loại đồ thị khác.

18. 17 4.2. Vẽ đường hồi quy tuyến tính. Hình 23 Thực hiện các bước tương tự như trên. Ta chọn Scatter→Regression line rồi nhấn Ok, ta được đồ thị đường hồi quy như sau: Hình 24

19. 18 Đối với đồ thị cần hiệu chỉnh màu (đường nét,…,) ta chỉ cần nhấp đúp vào đồ thị màn hình sau sẽ xuất hiện: Hình 25 Trong đó: – Color : hiệu chỉnh màu sắc – Line pattern : hiệu chỉnh kiểu đường nét – Line width : hiệu chỉnh độ rộng của đường nét – Symbol size : chọn kiểu hiển thị cho các điểm 5. Tìm hàm hồi quy tuyến tính mẫu (SRF). Muốn tìm hàm hồi quy tuyến tính mẫu của Y theo X chẳng hạn như trong ví dụ 3 có nhiều cách làm sau đây tôi chỉ giới thiệu một cách đơn giản nhất. Từ cửa sổ Command ta gõ dòng lệnh ls y c x và nhấn Enter. Ta có bảng hồi quy sau mà ta gọi là bảng Equation

20. 19 Hình 26 Các kết quả ở bảng trong hình 22 lần lượt là – Dependent Variable : Tên biến phụ thuộc – Method: Least Squares : Phương pháp bình phương tối thiểu (nhỏ nhất). – Date – Time : Ngày giờ thực hiện – Sample : Số liệu mẫu 1 – 10 – Included observations : Cỡ mẫu là 10 (số các quan sát) – Cột Variable : Các biến giải thích có trong mô hình (trong đó C là hệ số bị chặn) – Cột Coefficient : Giá trị các hệ số hồ quy ɵ ɵ 1 2;β β . – Cột Std. Error : Sai số chuẩn của các hệ số hồi quy. ɵ ( ) ɵ ( ) ɵ ( ) ɵ ( )1 1 2 2se var ;se varβ = β β = β – Cột t – Statistic : Giá trị thống kê t tương ứng ɵ ɵ ( ) ɵ ɵ ( ) 1 2 1 2 1 2 t ;t se se β β = = β β

22. 21 6. Một số hàm trong Eviews. LOG(X) : ln(X) EXP(X) : X e ABS(X) : giá trị tuyệt đối của X SQR(X) : căn bậc 2 của X @SUM(X) : tổng của các X @MEAN(X) : giá trị trung bình của X @VAR(X) : phương sai của X @COV(X,Y) : hiệp phương sai của X, Y @COR(X,Y) : hệ số tương quan của X, Y 7. Cách tìm một số dạng hàm hồi quy. Giả sử ta có số liệu của các biến Y và X tại thời điểm t. Nếu tìm hàm hồi quy của tY theo X và t 1Y− (biến trễ thì câu lệnh sẽ là y c x y(-1). Giả sử ta có số liệu của các biến Y và X. Nếu tìm hàm hồi quy của ln(Y) theo ln(X) thì câu lệnh sẽ là log(y) c log(x). Giả sử ta có số liệu của các biến Y và X. Nếu tìm hàm hồi quy của Y theo X thì câu lệnh sẽ là y c sqr(x). Giả sử ta có số liệu của các biến Y và X. Nếu tìm hàm hồi quy của Y theo X e thì câu lệnh sẽ là y c exp(x). Giả sử ta có số liệu của các biến Y và X. Nếu tìm hàm hồi quy của Y theo X và 2 X thì câu lệnh sẽ là y c x x^2. Giả sử ta có số liệu của các biến Y và X. Nếu tìm phương trình sai phân cấp 1 của Y theo X thì câu lệnh sẽ là d(y) c d(x). Giả sử ta có số liệu của các biến Y và X. Nếu tìm phương trình sai phân cấp k của Y theo X thì câu lệnh sẽ là d(y,k) c d(x,k). Nếu cần tìm hàm hồi quy nhưng không sử dụng hết các quan sát của mẫu, chẳng hạn ta tìm hàm hồi quy của Y theo X trong ví dụ 3 nhưng ta chỉ sử dụng 7 cặp quan sát đầu tiên. Khi đó ta thực hiện các thao tác như sau: Từ bảng Equation chọn Estimate, ta có màn hình sau. Ta chỉnh 10 thành 7

23. 22 Hình 28 8. Tìm ma trận tương quan và ma trận hiệp phương sai của các hệ số hồi quy 8.1. Ma trận tương quan giữa các biến. Giả sử ta có mẫu gồm các biến Y, X2, X3 cho trong ví dụ 4. Để tìm ma trận tương quan của các biến này ta thực hiện như sau: Từ cửa sổ Eviews chọn Quick →Group Statistics →Correlations. Khi đó màn hình xuất hiện như sau: Hình 29

24. 23 Nhấp chuột sẽ xuất hiện cửa sổ sau Hình 30 Sau đó nhấn OK, ta được ma trận tương quan như sau Hình 31 Ý nghĩa: Ma trận tương quan (Correlation) cho biết xu thế và mức độ tương quan tuyến tính giữa hai biến trong mô hình. Nhìn vào bảng ma trận tương quan ở trên ta thấy hệ số tương quan của X2 và X3 là 0.480173 khá nhỏ điều đó có nghĩa là X2 và X3 có tương quan tuyến tính ở mức độ yếu và tương quan thuận. 8.2. Ma trận hiệp phương sai giữa các hệ số hồi quy. Giả sử ta có mẫu gồm các biến Y, X2, X3 cho trong ví dụ 4. Để tìm ma trận hiệp phương sai giữa các hệ số hồi quy, ta thực hiện như sau: Từ cửa sổ Equation chọn View →Covariance Matrix. Khi đó màn hình xuất hiện như sau:

25. 24 Hình 32 Nhấp chuột, ta được ma trận hiệp phương sai giữa các hệ số hồi quy như sau Hình 33 Ý nghĩa: Ma trận hiệp phương sai của các hệ số hồi quy (Coefficient Covariance matrix) cho biết phương sai các hệ số hồi quy nằm trên đường chéo chính, các thành phần còn lại là hiệp phương sai của những hệ số trong mô hình. Chẳng hạn, ví dụ 4 bên trên. Nhìn vào ma trận hiệp phương sai bên trên ta có phương sai của các hệ số hồi quy là: ɵ ( ) ɵ ( ) ɵ ( )1 2 3var 39.10093;var 0.107960;var 0.168415.β = β = β = 9. Bài toán tìm khoảng tin cậy cho các hệ số hồi quy (Khoảng tin cậy đối xứng). Khoảng ước lượng các hệ số hồi quy tổng thể

26. 25 ɵ ɵ ( ) ɵ ɵ ( )j j j jj Cse ; Cse ; j 1,2,…,k β ∈ β − β β + β =   Trong đó C là giá trị được dò trong bảng phân phối Student với bậc tự do là (n-k). Ký hiệu n k 2 C t − α = Giả sử ta có mẫu gồm các biến Y, X2, X3 cho trong ví dụ 4. Để tìm khoảng tin cậy cho các hệ số hồi quy tổng thể, ta thực hiện như sau: Từ cửa sổ Equation chọn View →Coefficient Diagnostics→confidence Intervals… Khi đó màn hình xuất hiện như sau: Hình 34 Nhấp chuột, ta được kết quả sau

28. 27 Hình 36 Nhấp chuột, màn hình sau xuất hiện. Ở ô quan sát (Observations) ta điều chỉnh 12 thành 13) như sau: Hình 37 Nhấp OK. Từ bảng Group. Ta chọn Edit+/- , sau đó nhập 2 3X 20,X 16= = vào hàng số 13 có chữ NA như sau:

29. 28 Hình 38 Tắt cửa sổ Group. Bước 2. Tính giá trị ( ) ( )0 0 0DB 0Y Y ;se Y Y se1;se Y se2.= − = = Từ bảng Equation. Chọn forecast màn hình xuất hiện như sau Hình 39

30. 29 Ô Forecast name ta đổi Yf thành DBY , ô S.E. (optional) ta gõ Se1. Nhấn OK. Hình 40 Tắt đồ thị dự báo Từ bảng Workfile. Chọn Genr và gõ lệnh như sau rồi nhấn Ok. Hình 41 Bước 3. Tìm khoảng dự báo – Dự báo giá trị trung bình

31. 30 Từ bảng Workfile. Chọn Genr và gõ lệnh như sau rồi nhấn Ok. Hình 42 Dự báo giá trị cá biệt. Từ bảng Workfile. Chọn Genr và gõ lệnh như sau rồi nhấn Ok. Hình 43

32. 31 Để mở các kết quả trên cùng một bảng ta thực hiện như sau: Từ của số Workfile, nhấn phím Ctrl rồi chọn canduoicabiet, cantrencabiet, canduoitrungbinh, cantrentrungbinh sau đó nhấn Enter, ta được kết quả sau (lưu ý nhìn vào hàng thứ 13) Hình 44 Vậy khoảng dự báo giá trị trung bình và giá trị cá biệt của Y là CANDUOITB CANTRENTB CANDUOICB CANTRENCB 153.9864 163.0754 148.3989 168.6630 11. Định mẫu Trước hết ta xét ví dụ sau Ví dụ 5. Bảng số liệu sau cho biết số liệu về lượng hàng bán được (Y tấn/tháng), giá bán (X ngàn đồng/kg) ở 20 khu vực bán và được khảo sát tại hai nơi là Thành phố và Nông thôn.

33. 32 Trong đó Z là biến giả: Z = 0 : khảo sát ở nông thôn Z = 1 : khảo sát ở thành thị Có nhiều trường hợp ta không sử dụng hết các số liệu của mẫu ban đầu, hay chỉ cần khảo sát sự phụ thuộc khi biến giả nhận một giá trị nào đó. Để định mẫu lại, từ cửa sổ Workfile chọn Sample, màn hình xuất hiện như Hình 45 Chẳng hạn ta chỉ khảo sát 15 mẫu đầu tiên và ở khu vực Thành phố ứng với Z = 1 . Ta khai báo vào ô Sample range pairs và IF condition nhưtrong hình sau

34. 33 Hình 46 Nhấn OK, ta thấy có sự thay đổi trong cửa số Workfile như sau Hình 47 12. Tính các giá trị thống kê. Để tính các giá trị thống kê như Trung bình, trung vị, độ lệch chuẩn, …của các biến có trong mô hình chẳng hạn vớ số liệu cho trong ví dụ 4 ta làm như sau: Từ cửa sổ EViews chọn Quick →Group Statistics →Descriptive statistics →Common sample, như hình sau

35. 34 Hình 48 Nhấp chuột và nhập tên các biến vào cửa sổ Series List như hình sau Hình 49 Nhấp OK, ta được bảng các giá trị thống kê sau:

36. 35 Hình 50 Giải thích : – Mean : trung bình. – Median : trung vị – Maximum : Giá trị lớn nhất – Minimum : Giá trị nhỏ nhất – Std. Dev : Độ lệch chuẩn – Skewness : Hệ số bất đối xứng – Kurtosis : Hệ số nhọn – Jarque – Bera : Kiểm định phân phối chuẩn – Sum : Tổng các quan sát – Sum sq. Dev : Độ lệch chuẩn của tổng bình phương – Observations : Số quan sát (cỡ mẫu) 13. Các bài toán kiểm định giả thiết mô hình. 13.1. Kiểm định phương sai thay đổi. 13.1.1. Kiểm định White. Chẳng hạn như trong ví dụ 4.

37. 36 Để thực hiện việc kiểm định White bằng Eview, sau khi ước lượng mô hình hồi quy mẫu, từ cửa sổ Equation chọn View→Residual Diagnostics → Heteroskedasticity tests… Khi đó màn hình sẽ như sau: Hình 51 Nhấp chuột, màn hình như sau Hình 52

41. 40 Hình 56 Nhấp chuột, cửa sổ sau xuất hiện như sau: Hình 57 Ô Lags to indude ta gõ bậc tự tương quan vào (ví dụ như tự tương quan là bậc 2) Nhấn Ok. Ta có kết quả như sau:

43. 42 Hình 59 Nhấp chuột ta có cửa sổ sau xuất hiện: Gõ c(2)=0 vào Hình 60 Nhấp Ok. Ta được kết quả như sau:

44. 43 Hình 61 Ta đặt bài toán kiểm định như sau: 0H : Biến X2 không cần thiết trong mô hình; 1H : Biến X2 cần thiết trong mô hình. Từ bảng kiểm định Wald ở trên, ta có P _ value 0.0000= < α cho trước nên bác bỏ 0H .Vậy X2 cần thiết trong mô hình. Lưu ý: Trong trường hợp này ta chỉ khảo sát X2 nên ta có thể dùng giá trị xác suất của thống kê t hoặc giá trị xác suất của thống kê F đều được. Trong trường hợp ta khảo sát nhiều hơn hai biến thì ta chỉ dùng thống kê F. 13.4. Kiểm định thừa biến trong mô hình (biến không cần thiết). Giả sử xét ví dụ 4 bên trên, ta tiến hành như sau: – Tìm hàm hồi quy của Y theo X2 và X3. Từ cửa số Equation, ta chọn View→Coefficient Diagnostics → Redundant Variables Test – Likelihood ratio… Khi đó màn hình sẽ như sau:

45. 44 Hình 62 Nhấp chuột ta có cửa sổ One or more test series to remove xuất hiện, rồi gõ biến X3 vào Hình 63 Nhấp Ok, ta có kết quả sau:

46. 45 Hình 64 Ta đặt bài toán kiểm định như sau: 0 3H : 0 :β = Biến X3 không cần thiết trong mô hình; 1 3H : 0:β ≠ Biến X3 cần thiết trong mô hình. Từ bảng kiểm định ở trên, ta có P_ value 0.0000= < α cho trước nên bác bỏ 0H . Vậy X3 cần thiết trong mô hình. 13.5. Kiểm định biến bị bỏ sót trong mô hình. Giả sử xét ví dụ 4 bên trên, ta tiến hành như sau. – Tìm hàm hồi quy mẫu của Y theo X2. Từ cửa số Equation, ta chọn View→Coefficient Diagnostics → Omitted Variables Test – Likelihood ratio… Khi đó màn hình sẽ như sau: Hình 65

47. 46 Nhấp chuột ta có cửa sổ One or more test series to add xuất hiện. Ta gõ biến X3 vào Hình 66 Nhấp Ok, ta được kết quả sau: Hình 67 Ta đặt bài toán kiểm định như sau: 0 3H : 0 :β = Biến X3 ảnh hưởng tới Y (X3 không bị bỏ sót); 1 3H : 0:β ≠ Biến X3 bị bỉ sót trong mô hình. Từ bảng kiểm định ở trên, ta có P_ value 0.0000= < α cho trước nên bác bỏ 0H . Vậy X3 bị bỏ sót trong mô hình. 13.6. Kiểm định Chow trong mô hình hồi quy với biến giả. Ví dụ7. Giả sử số liệu về tiết kiệm và thu nhập cá nhân ở nước Anh từ năm 1946 đến 1963 (đơn vị pound) cho ở bảng sau:

48. 47 Trong đó, Y : Tiết kiệm ; X : Thu nhập. Để kiểm định rằng có sự thay đổi về tiết kiệm giữa hai thời kỳ hay không, ta thực hiện các bước kiểm định Chow như sau: Hồi quy Y theo X, ta được kết quả Hình 68 Từ cửa sổ Equation, chọn View →Stability Diagnostics → Chow Breakpoint Test…như hình sau:

49. 48 Hình 69 Sau khi nhấp chuột, một cửa sổ xuất hiện như sau: Hình 70

50. 49 Ta gõ vào cửa sổ Chow Test giá trị Breakpoint là 1955 như hình trên, nhấp OK. Khi đó ta được kết quả sau: Hình 71 và dự vào bảng kết quả trên ta cũng có giá trị F = 5.037 . Với giá trị xác suất là 0.022493. nên ta chấp nhập giả thuyết là hai mô hình hồi quy khác nhau. 14. Định dạng mô hình (Kiểm định Ramsey RESET) Xét mô hình gốc: i 1 2 i iY X (1)= β +β + ε Kiểm định Ramsey RESET 2 3 m 1 i i ii 1 2 i 1 2 m iY X Y Y … Y (2) + = β +β + α + α + α + ε Bài toán kiểm định 0 1 2 m 1 j H : … 0 H : 0, j 1,m α = α = = α =  ∃α ≠ = H0 : Mô hình gốc không thiếu biến, dạng hàm đúng H1 : Mô hình gốc thiếu biến, dạng hàm sai 2 2 2 1 2 22 2 R R n k F F(m,n k ) 1 R m − − = ⋅ − − ∼ Giả sử xét ví dụ 3 bên trên, ta tiến hành như sau: Tìm hàm hồi quy tuyến tính mẫu của Y theo X. Từ của số Equation. Chọn View →Stability Diagnostics →Ramsey RESET Test…như hình sau:

51. 50 Hình 72 Nhấp chuột ta có cửa sổ Number of fitted terms xuất hiện. Ta gõ tham số m=1 vào Hình 73 Nhấp Ok, ta được kết quả sau: Hình 74

53. 52 Chẳng hạn với số liệu trong ví dụ 3 sau khi tìm được mô hình hồi quy xong và ta thực hiện lưu trữ như sau: Từ cửa sổ Equation. Nếu ta chọn chức năng Name như hình 63 Hình 76 Chọn OK ta được kết quả có biểu tượng là Hình 77

54. 53 Từ cửa sổ Equation. Nếu ta chọn chức năng Freeze thì ta thấy một table mới xuất hiện như sau: Hình 78 Chọn OK ta được kết quả có biểu tượng là

55. 54 TÀI LIỆU THAM KHẢO [1] Đinh Ngọc Thanh, Nguyễn Văn Phong, Nguyễn Trung Đông, Nguyễn Thị Hải Ninh: Giáo trình kinh tế lượng, lưu hành nội bộ, Đại học tài chính – Marketing. [2] Bài tập sử dụng Eview 5.0. Đại học kinh tế. [3] Nguyễn Quang Dong: Bài giảng Kinh tế lượng, nhà xuất bản thống kê, 2006. [4] Phụ lục hướng dẫn sử dụng phần mềm Eview 5.1, lưu hành nội bộ. [5] Huỳnh Đạt Hùng, Nguyễn Khánh Bình, Phạm Xuân Giang: Kinh tế lượng, nhà xuất bản Phương Đông, 2012. [6] Bùi Dương Hải, bổ sung kiến thức kinh tế lượng cơ bản.