Андай Arduino функцияларын білесіз?

Функция – атауы бар және қандай да бір іс-әрекеттер бірізділігінен тұратын программаның құрылымды бірлігі

Arduino-да жазылған программа скетч деп аталады. Әрбір скетч ең аз дегенде екі функциядан тұруы керек:

void setup()
{
іс-әрекеттер;
}

void loop()
{
іс-әрекеттер;
}

Программа басында, setup функциясынан алдын әдетте айнымалылар жарияланады. Платаға қуат қосылғаннан кейін бірінші setup функциясы орындалады. Ол тек бір рет қана орындалады. Әдетте онда порттардың жұмыс режимдері бапталады: әр түрлі датчиктерге жалғанған порттар кіріс ретінде, ал атқарушы құрылғыларға жалғанған порттар шығыс ретінде.

loop() функциясында жазылған код setup() функциясы орындалғаннан кейін орындалады, және шексіз циклде қайта-қайта орындалады. Бұл функцияда негізгі жұмыс орындалады: әр түрлі есептеулер, датчиктер мәндерін алу, мәндерді порттарға шығару.

Функция Сипатталуы
digitalRead(2); ШЫНДЫҚ мәнін қайтарады, егер портта HIGH мәні болса және ЖАЛҒАН, егер LOW болса.
analogRead(0); Берілген порттан аналогтық мәнді қайтарады.
analogWrite(5,255); Портқа 0-ден 255 дейін аналогтық мән қайтарады.
digitalWrite(10,LOW); Берілген портқа LOW мәнін жібереді.
digitalWrite(10, HIGH); Берілген портқа HIGH мәнін жібереді.
delay(100); Миллисекундтардағы кідіру.
if (/*шарт*/) {/*егер шарт орындалса, орындалатын әрекеттер */ } else {/*егер шарт орындалмаса, орындалатын әрекеттер */ }; Алдыңғы функцияға ұқсас орындалады, бірақ else сөзінен кейін шарт жалған болған жағдайда орындалуы қажет әрекеттер белгіленеді.
if (/*шарт*/) {/*егер шарт орындалса, орындалатын әрекеттер */ }; Егер шарт шындық болса, бейнелі жақша арасында көрсетілген әрекеттерді орындайды. Егер орындалатын әрекет біреу болса, ол бейнелі жақшаға алынбаса болады. Шарт келесі қатынас операторлары көмегімен жазылады: == - теңдікті тексеру, < - аз, > - көп, <= - аз немесе тең, >= көп немесе тең, != - тең емес.
void loop() { /*плата қуаты қосулы уақытта әрқашан орындалатын әрекеттер */ } Міндетті функциялардың бірі. Ішінде қуат қосулы уақытта әрқашан орындалатын әрекеттер орналасады.

Сандық шығыс үшін: кіріс порты ретінде конфигурацияланған енгізу / шығару портының қасиеттерін (PIN); тарту(жүктеу) резисторларын; шығыс порты ретінде конфигурацияланған енгізу / шығару портының қасиеттері (PIN) түсіндіріңіз.

Қазіргі заман компьютерлік жүйелер мен құрылғылар дискретті сандық (цифрлық) және микропроцессорлық (интегралды) элементтерден құрылғаны бәріне мәлім. Аталған құрылғылар өз міндетіне және құрылымына байланысты әр түрлі көрсеткіштермен және параметрлермен сипатталынады.

Сандық жүйелердің құрылымын және жұмыс істеу тәртібін бейнелеу үшін бірнеше деңгейді қолданады. Жоғарғы (логикалық) деңгейде жүйенің құрылымдық элементтердің атқаратын міндеттеріне байланысты сипаттамалар қарастырылады. Төменгі физикалық деңгейде компьютерлік жүйені құрайтын әр элементтің физикалық құрылымы және жұмыс істеу реті еске алынады және оның физикалық сипаттамалары есептелінеді.

Сондықтан цифрлық жүйелердің сенімділігін бағалау үшін олардың логикалық және физикалық деңгейде құрылымын және жұмыс істеу тәртібін және оларға қатысты параметрлер мен сипаттамалардың мәндер диапазонын жөн болып табылады. Құрылғыны сипаттау әр деңгейде жеке қасиеттер болады. Олардың жинақтамасы жобалаушының қойған мақсатына байланысты.

Мәліметтерді өлшеу, жинақтау, жеткізу, қабылдау, бақылау, сақтау, түрлендіру және беру сияқты қызметтер атқаратын қазіргі заманғы электрондық жүйелер қүрамына аналогтық және цифрлық қондырғылар кіреді.

Сигналдар уақыт бойынша үздіксіз өзгеретін аналогтық қондырғылардан өзгеше, сандық (санәріптік) қоңдырғыларда екі бекітілген (белгіленген) деңгейі бар сигналдар қолданылады. Бұл оларды сандық түрде бейнелеуге, мысалы жоғары деңгейді «1», төменгі деңгейді «0»- белгілерімен, мүмкіндік береді. Өз кезінде сигналдарды екілік жүйеде бейнелеу, электроникалық тіркестік тізбектерін құрастыруда логикалық алгебраның (Буль алгебрасының) математикалық амалдарын қолдануга мүмкіндік береді. Мүндай тізбектің шығысындағы сигнал ( «0» иә «1») кірістегі сигналдардың тіркесінен бір мәнді анықталады.

Микропроцессорлық жүйелердің кең таралуы оның негізінде тиімді және қолайлы әртүрлі құрылғыларды және бүкіл кешендерді басқару жүйелерді құруға мүмкіндік береді. Аталған қасиеттерге қосымша бұл жүйелер иілгіш, тасымалды, сенімді және қалпына келтірілетін болып табылады. Осы факторлар компьютерлік басқару жүйелердің өңдеушілер мен сатып алушылар жағынан микропроцессорлық жүйелерге назар аудару себебі болып танылады.

Кәдімгі микропроцессорлық жүйе келесі негізгі элементтерден түрады [8]:

· CPU (Central Processing Unit) – орталық процессор немесе орталық процессорлық құрылғы.

· RAM (Random Access Memory) – жедел жады.

· ROM (Read Only Memory) – турақты сақтау құрылғы.

· Port I/O (Port Input/Output) – енгізу/шығару құрылғы.

Процессор жедел жадымен және турақты сақтау құрылғымен бірдей жұмыс істейді және оларды ажыратпайды. Бірақ олардың арасында бір маңызды айырмашылығы бар: жедел жады ақпаратты қоректену кернеуі бар болғанша сақтайды. Жедел жады ұяшығның мысалы – D-триггерде құрылған қарапайым регистр. Осындай регистрге ақпаратты жазуға және оны кейін оқуға болады. Ол схемаға қоректену беріліп турғанша сақталынады.Бірақ қоректенуді сөндіріп регистрді қайтадан қосқанда D-триггерлер кез келген жағадйға орналасады. Ақпарат жойылады.

Қазіргі жедел жады микросхемалар динамикалық оқталатын миниатюрлы сыйымдылықтарда құрылады. Әр конденсатор ақпараттың бір битын сақтайды. Кіріс сигнал ішкі коммутация сигналдар арқылы бұл конденсаторға түседі. Егер оның мәні логикалық бірлікке тең болса конденсатор оқталады, егер нөлге тең болса – керісінше заряд жойылады. Сонан кейін ішкі кілт конденсаторды барлық тізбектерден ажыратады және зарядталған конденсаторлар біраз уақыт өз зарядын сақтайды.Енгізу/шығару порттарды бөлек те бірге де қарастыруға болады. Процессор енгізу/шығару порттарымен жадының ұяшықтарымен сияқты жұмыс істейді. Әр порттың өз адресі бар. Бірақ ұяшықтың адресі мен порт адресі абсолютты әртүрлі адрестер болып табылады. Олар әртүрлі адрестік кеңістіктерде орналасады. Процессор кез келген санды кез келген енгізу/шығару портқа жаза алады. Сонеан соң санды порттан сол адрес бойынша оқи алады. Кейбір кездерде ол бірдей сандар болып табылады. Бірақ көбінесе жазу бір құрылғыға (шығару порты) атқарылады ал процессор басқа құрылғыдан (енгізу порты) оқиды.

Шығару порт ретінде кәдімгі параллельді регистр қолданыла алады. Шығару порты микропроцессорлық жүйе әртүрлі сыртқы құрылғыларды басқаруға мүмкіндігін қамтамасыз ету үшін арналған. Шығару порт арқылы цифрлық-аналогтық түрлендіруші (АЦП), индикаторлар сияқты құрылғыларды басқаруға болады. Порттың шығуына микропроцессорлық жүйеге оданда қуатты құрылғыларды басқаруға мүмкіндік беретін электронды кілттерді қосуға болады. Мысалы электромагнитты реле, шамдар, жарық диодтар, қозғаушылар, соленоидтар ж. т. б. Шығару порттар көмегімен микропроцессорлық құрылғының схеманың ішінде жаңадан қосуларды жасауға болады. Олар кілттер мен логикалық элементтер жәрдемімен жасалынады. Осындай микропроцессорлық құрылғы иігішті және автоматты орындалатын есепке жанастыра салынуға қабілетті болады.

Енгізу порты – микропроцессор сыртқы мәліметтерді қабылдай алуға көмектесетін арнайы схема. Бұл кірулерге аналогтық-цифрлық түрлендірушілерді, батырмаларды, датчиктерді ж.т.б. қосуға болады.

Микропроцессорлық жүйенің негізгі басқару элементі болып процессор табылады. Ол басқа құрылғыларды басқарады. Қалған құрылғылар, мысалы жедел жады, ПЗУ және енгізу/шығару порттар жетектегі болып табылады. Сол себебінен оларды перифериялық құрылғылар немес периферия деп атайды.

Микропроцессорлық жүйенің барлық түйіндері өзара келесі үш негізгі шиналармен байланысқан.:

– мәліметтер шинасы (DATA bus);

– адрес шинасы (ADDR bus);

– басқару шинасы (CONTROL bus).

Олар барлығы бірге жүйелік шинаны құрайды.

Мәліметтер шинасы микропроцессордан сыртқы құрылғыларға және кері бағытта мәліметтерді беруге арналған. Шинаның иені қолданылатын процесордың түрімен анықталады. Қарапайым процессорларда мәліметтер шинасының разрядтығы 8-ге тең. Қазіргі процессорларда 16, 32, 64 разрядты мәліметтер шиналары болу мүмкін.

Барлық шиналарда бір байтты беру режимы (кіші разрядтар бойынша) ескерілген. Бұл кезде жоғары разрядтар қолданылмайды.

Адрес шинасы электронды формада екілік сандарды хабарлауға арналған өткізгіштер жиынтығы болып табылады. Бұл сандар процессор қазір бағытталған жады ұяшығының немесе енгізу/шығару портың адресі болып табылады. Адрестік шинаның разрядтар саны өте әр түрлі.

Қазіргі процессорлардың адрестік шинаның разрядтар саны 32 және одан жоғары. Адрес шинасының разрядтар санынан процессор адрестей алатын жады ұяшықтарының саны тәуелді. Он алты разрядты адрес шинасы бар процессор 216 (яғни 65536) ұяшықтарды адрестей алады. Бұл сан адрестелінетін жадының көлемі деп аталады. Нақты көлем бұл саннан кем болу мүмкін бірақ ешқашанда одан үлкен болмайды.

Енгізу/шығару порттарды адрестеу үшін де адрес шинасы керек. Екі жағдайларда бұл бір шина. Бірақ ешбір микропроцессорлық жүйеде жедел жады ұяшықтар саны сияқты порттар саны қажет болмайды. Сондықтан енгізу/шығару порттармен ақпарат алмасу үшін тек сегіз (немесе 16) адрес шинасының кіші разрядтары қолданылады.

Басқару шинасының айқын құрылымы жоқ. Басқару шинасына процессордан барлық сыртқы құрылғыларға және кері қарай әртүрлі басқару сигналдарды хабарлайтын сызықтар жиынтығын біріктіреді.

Кез келген басқару шинасында келесі сигналдарды таымалдайтын сызықтар кездеседі:

· RD (Read) – оқу сигналы.

· WR (Write) – жазу сигналы.

· MREQ – жады құрылғысын инициализациялау сигналы.

· IORQ – енгізу/шығару порттарды инициализациялайтын сигнал.

Сонымен қатар басқару шинаның сигналдарына жататын:

· READY – дайындық синалы.

· RESET – қайта жүктеу сигналы.

Микропроцессорлық жүйенің жұмыс істеу тәртібі 1 суретте көрсетілген. Негізгі режимед бүкіл микрокроцессорлық жүйенің жұмысын орталық процессор басқарады. Және де кезкелген перифериялық құрылғыларға қарай процессор уақыттың әр моментінде келесі операциялардың бірін орындай алады: жадының ұяшығынан оқу, жадының ұяшығына жазу, порттан оқу және портқа жазу.

Байтты жадының ұяшығынан оқу үшін процессор адреа шинасына қажетті ұяшықтың адресін орнатады. Сонан соң ол MREQ сигналын активті қалпына орнатады, яғни оны логикалық нөлге теңестіреді. Бұл сигнал жады құрылғыларына түседі және олардың жұмысына рұқсат болып табылады. Және де IORQ сигналы логикалық 1 тең болады. Сондықтан микропроцессорлық жүйенің енгізу/шығару порттары активті емес болып табылады. Бұдан кейін процессор активті күйіне RD сигналды аударады. Бұл сигнал жады құрылғысына және енгізу/шығару порттарға түседі. Бірақ порттар бұл сигналға жауап қайтармайды өйткені олар IORQ сигналдың жоғары денгейімен сөндірілген. Жады құрылғысы керісінше RD және MREQ басқару сигналдарды қабылдап мәліметтер шинасына адресі уақыттың бұл моментінде адрес шинасында орналасқан жады ұяшығынан ақпарат байтын шығарады.

Мәліметтерді жадына жазу процессі келесі тізбек бойынша орындалалды. Алдымен орталық процессор адрес шинасына қажетті ұяшықтың адресын қояды. Сонан соң ол мәліметтер шинасына бұл ұяшыққа жазуға арналған байтты қояды. Бұдан соң мәліметтер шинасына бұл ұяшыққа жазуға арналған байт орнатылады. Сонан кейін жадынының модуліне рұқасттама беретін MREQ сигналы активтендіріледі. Тек қана сонда процессор WR сигналын активті қалпына орнатады (лог. 0). Осы сигал бойынша адресі адрес шинасында орналасқан жадының ұяшығына байтты жазу басталады.

Жадының кейібір түрлері өте жай істейді. Олар орталық процессор сияқты жылдам ақпаратты шығаруға немесе жазуды орындауға. Жадының баяу құрылғылардың жұмысын жылдам процессормен мақұлдау үшін READY (дайындық) сигналы бар. Процессор оқу немесе жазу сигналын активті күйіне орнатқан соң лезде жады құрылғысы READY сигналын пассивті күйіне орнатады (лог. 0). Осындай сигнал деңгейі сыртқы құрылғы дайын емес екенін яғни команданы орындамағанын белгілейді. READY сигналы процессорға түседі да ол күту режиміне көшеді. Жады құрылғысы ағымдағы операцияны орындағаннан соң ол READY сигналын активті күйіне орнатады. Бұл сигналы алып процесор өз жұмысын қайтадан бастайды. READY сигналы баяу порттармен жұмыс істеу кезінде қолданылады.

Порттарға жазу және порттан оқу операциялар жедел жады құрылғылардан оқу/жазу операциялаға ұқсас орындалады. Айырмашылығы тек қана MREQ сигналдың орнына активті күйге порттардың жұмысына рұқсат беретін IORQ сигнал көшеді.

Наши рекомендации