Darbo informacija

Atsisiųsti darbą Paklausti

Bendros paskirties įvesties/išvesties išvadų valdymas

9.6 (5 atsiliepimai)

Detali informacija

Kategorija: Informatika , Laboratoriniai darbai
Lygis: Universitetinis
Failo tipas: DOCX failas
Apimtis: 19 psl., (1130 ž.)
Vertinimas:
9.6 (5 atsiliepimai)
Šaltiniai: Yra

Ištrauka

LABORATORINIS DARBAS
BENDROS PASKIRTIES ĮVESTIES/IŠVESTIES IŠVADŲ VALDYMAS


Darbo tikslas:
Išmokti valdyti GPIO (ang. General Purpose Input Output) išvadus.

Teorinė dalis
1.Kad LED pradėtų šviesti, prie katodo reikia prijungti neigiamą įtampos šaltinio
potencialą (0 V – GND, LOW), prie anodo – teigiamą (+5 V, HIGH). LED prie
mikrovaldiklių gali būti jungiami dviem būdais. Galima jungti katodą prie GND, anodu
prie GPIO išvado (bendro katodo schema) . Tokiu atveju LED užsidegs, kai GPIO
išvade bus aukštas lygis ir užges, kai išvade bus žemas lygis. Kitas būdas, LED anodas
jungiamas prie +5 V linijos, katodas prie GPIO išvado (bendro anodo schema). Tuomet
žemas lygis išvade įjungs LED, o aukštas lygis išvade užgesins LED.
2.Kai kada prietaisuose (viryklės, skalbyklės, mikrobangų krosnelės ir pan.) informacijos
išvedimui yra naudojami 7 segmentų ekranai. Priklausomai nuo to kiek mums reikia
rodyti skaitmenų, parenkamas reikiamas indikatorių skaičius.
7 segmentų indikatoriais jie yra vadinami todėl, kad skaičiui-simboliui suformuoti
pakanka 7 šviečiančių linijų (linijos viduje LED). Tiesą sakant yra ir aštuntas LED, jis
skirtas taškui. Visų LED anodai, arba katodai yra sujungti kartu, todėl gali būti bendro
anodo arba bendro katodo indikatoriai. Dažniausiai schemą projektuojantis inžinierius
pasirenka jam patogesnį variantą, o programuotojui tenka parašyti atitinkamą valdymo
programą. Bet būna ir išimčių, kai programuotojas išsirenka kas jam patogiau :) .
Reikiami simboliai ekrane suformuojami įjungiant atitinkamus LED. Yra susitarta,
šviečiančias linijas žymėti raidėmis: a, b, c, d, e, f, g ir taškas - dp.
Taigi, vienam indikatoriui valdyti mums reikės 7 (8, jei naudosime ir tašką) GPIO
išvadų. Kai reikia daugiau simbolių, pavyzdžiui 4, vietoje to, kad panaudotume 7*4= 28
GPIO (tai yra daug, Arduino turi tik 14 GPIO), išnaudojama mūsų regos inercija. Vienu
metu įjungiamas tik vienas indikatorius su reikiamu simboliu. Kiti trys yra laikomi
išjungtais. Tokiu būdu visų simbolių atitinkamos linijos yra sujungiamos kartu (a su a,
b su b, ir t.t.), o reikiamo simbolio įjungimas valdomas per simbolio bendrą išvadą
(com). Kad suvaldyti tokį indikatorių, programoje tenka periodiškai keisti GPIO pinų
būsenas. O jei dar atsižvelgtume į tai, kad be ekrano valdymo mums dar reikia atlikti ir
papildomas užduotis, tai programa pasidaro šiek tiek sudėtingesnė. Šioje vietoje gali
padėti papildomi elektronikos sprendimai. Pavyzdžiui 7 segmentų dekoderiai (pvz.:
CD4511). Tuomet iš valdiklio yra perduodama į dekoderį kokia informacija turi būti
rodoma, o jau pats dekoderis užsiima reikiamų LED valdymu. Bet dekoris kainuoja
kelis centus, o papildomos kelios kodo eilutės yra pigiau.
3.GPIO išvadai gali būti naudojami ir informacijos skaitymui, tam reikia mikrovaldikliui
pranešti, kad norėsime skaityti atitinkamo pino būseną ( pinMode(pinNum, INPUT) ).
Jei mes turime išorinį įrenginį, kuris valdo liniją ir gali keisti jos būseną (įtampą), tai su
funkcija int digitalRead(pinNum) galime nuskaityti linijos būseną. Dažnai mums tenka
nuskaityti valdymo mygtukų būsenas (klaviatūros paspaudimai, valdymo mygtukai ant
prietaisų). Tuomet reikia ant skaitomo pino įjungti pull-up vidinį rezistorių (
pinMode(pinNum, INPUT_PULLUP)). Šiuolaikiniai mikrovaldikliai turi ir moka
programiškai junginėti ne tik pull-up, bet ir pull-down rezistorius.
Jei nebūtų Pull-Up rezistoriaus, kuris nustato, ant įėjimo aukštą lygį, tai kol mygtukas
nepaspaustas, mikrovaldiklio įėjimas „kabėtų ore“. Jį galima būtų interpretuoti, kaip
imtuvą su maža antena. Tokiu atveju nuskaitoma pino būsena priklausytų tik nuo
aplinkos elektromagnetinio triukšmo. Kartais turėtume aukštą lygį, kartais žemą. Kai
prijungtas pull-up rezistorius, bet nepaspaustas mygtukas, ant pino yra aukštas lygis (5
V). Kai paspaudžiame mygtuką, pinas yra sujungiamas su GND ir įėjime turime žemą
lygį (0...

Ne tai, ko ieškai?

Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!

Atsiliepimai apie mus