В безплатното продължение на статията за микроконтролера PICAXE https://www.pcrevue.sk/a/IoT-prakticky--prais-tempts-with-the-PICAXE-simple-programmable-in-the-BASIC- language- ще ви покажем интересни функции PICAXE, които често се използват в различни устройства. Това са функции, базирани на таймери и броячи на микроконтролера, които са полезни за генериране на импулси, измерване на дължината на импулса и измерване на броя на импулсите, т.е. основно измерване на честотата

Примери са във видеото

Кратко повторение

Изтеглете средата за разработка на PICAXE Editor 6 от http://www.picaxe.com/Software, която позволява програмиране на език, подобен на популярния език за програмиране BASIC.

използва

Свързване на кабел за програмиране

Ще повторим командите, които използвахме в предишния раздел.

Командите HIGH и LOW задават изходното ниво. Можете да използвате номерация на ПИН 2 или C.2 Командата PAUSE означава забавяне с броя на милисекундите, посочени в параметъра. Коментарът може да започне с REM израз, точка и запетая (;) или апостроф (‘). Командата GOTO преминава към съответния етикет

Също така е интересно и лесно да се маркират променливи. PICAXE 08M2 има 28 еднобайтови променливи, обозначени с b0 - b27. Байтовите променливи могат да съхраняват цели числа в диапазона 0 и 255. Те не могат да използват отрицателни числа или дроби и ако надвишите праговете от 0 или 255, те се „преливат“ без предупреждение (напр. 254 + 3 = 1) (2 - 3 = 255)

За по-големи стойности можете да комбинирате байтови променливи в двойки, за да създадете 16-битова променлива с диапазон 0-65 535. Тези променливи са обозначени с w0, w1, w2. и са комбинация от байтови променливи

w0 = b1 + b0 w1 = b3 + b2 w2 = b5 + b4 w3 = b7 + b6

w4 = b9 + b8 w5 = b11 + b10 .

Байтовите променливи b0 и b1 (образуващи 16-битовата дума w0) също могат да се използват в отделни битове, маркирани както следва:

b0 = bit7: bit6: bit5: bit4: bit3: bit2: bit1: bit0

b1 = bit15: bit14: bit13: bit12: bit11: bit10: bit9: bit8

По-новите чипове от M2 също позволяват използването на байтови променливи b2 и b3 (образувайки 16-битовата дума w1) и битовете са маркирани bit16 - bit31.

След нулиране на програмата всички променливи имат стойност 0

Щипки PICAXE 08M2

Овърклок на чипове

Първо ще обясним възможностите за промяна на тактовата честота, т.е. овърклок и подклонение. Тактовата честота по подразбиране е 4 MHz. Тази честота определя не само скоростта на изпълнение на инструкциите, но и функциите на таймерите и комуникационните интерфейси. Използване на командата НАСТРОЙКА можете да увеличите тактовата честота на чипа PICAXE 08M2 до 8, 16 или 32 MHz или да я намалите до 31 kHz. За веригата PICAXE 08M2 можете да използвате командата SETFREQ с параметрите: k31, k250, k500, m1, m2, m4, m8, m16 и m32. Задавате вътрешните тактови честоти 3I kHz, 250 kHz, 500 kHz, 1 MHz, 2 MHz, 4 MHz, 8 MHz, 16 MHz и 32 MHz. Следващият пример използва честотата по подразбиране от 4 MHz. Командата PAUSE ще работи както трябва, паузата между миганията ще бъде 1000 ms, т.е. 1 секунда. За да сме сигурни, ще зададем честотата, тъй като тя ще се промени в следващите примери

Сега ще се опитаме да променим тактовата честота на 32 MHz, което е 8 пъти по-високо. Светодиодът ще мига 8 пъти по-бързо

Изглежда, че за повечето приложения ще бъде изгодно да се зададе възможно най-високата тактова честота, например споменатите вече 32 MHz. Прилага се обаче просто правило: колкото по-висока е тактовата честота, толкова по-голяма е консумацията на ток. За сравнение, при 32 MHz, самият чип без свързани устройства консумира 2,2 mA. При 31 kHz е почти 20 пъти по-малко - 0,13 mA

Генерация на импулси

Команда ИЗТЕГЛЯНЕ ви позволява лесно да генерирате импулси. Той има два параметъра: номера на пина, на който се генерират импулсите и продължителността на импулса в единици от 10 μs. Тази стойност се прилага при честота по подразбиране от 4 MHz. При максимална честота от 32 MHz, единицата, в която е зададена продължителността на импулса, е логично 8 пъти по-кратка, т.е. 1,25 μs. Генерираният импулс е противоположен на началното състояние на съответния бор. Примерът генерира възможно най-кратки импулси с пауза от 100 ms

Измерване на дължината на импулса

Команда ПУЛСИН измерва дължината на импулса на бор, определена от първия параметър. Вторият параметър определя дали импулсът ще бъде измерен от предния ръб (1) или падащия ръб (0) на сигнала. Третият параметър е променлива, в която се съхранява продължителността на импулса. Това може да бъде променлива от тип байт, започващ с b, или променлива от дума от тип, започваща с w. Единиците са същите като за функцията PULSOUT, т.е. при тактова честота по подразбиране от 4 MHz тя е 10 μs. Командата pulsin 2,1, w5 измерва дължината на импулса на ПИН 2, започвайки от предния ръб и съхранява стойността в десетки микросекунди в променливата W5

Измерването на дължината на импулса е много полезно, например, при анализ на сигнала. Типичен пример е ШИМ сигналът за сервомотор, където ъгълът на въртене се определя от широчината на импулса. Може би се чудите защо това е добре, защото когато подадете такъв сигнал на сервомотора, той ще направи необходимото. Но какво, ако трябва да замените серво със стъпков двигател, например, за да постигнете по-висок въртящ момент или по-голяма точност. След това можете да оставите контролния алгоритъм непроменен и в подпрограмата за управление на двигателя трябва само да преизчислите измерената дължина на импулса до броя стъпки, които двигателят трябва да извърши, за да може неговият вал да се завърти под желания ъгъл.

Преброяване на импулсите

Команда БРОЯ ви позволява да броите импулсите през определен интервал от време. Първият параметър е номерът на пина, вторият времето в милисекунди, през което импулсите ще бъдат отчетени, а третият параметър е променливата, където се съхранява броят на импулсите. Препоръчваме променлива дума. Броят на командите 2,1000, w5 измерва броя на импулсите за 1 секунда, т.е. всъщност измерва честотата в Hz. При тактова честота от 4 MHz импулсите трябва да са с дължина най-малко 40 μs и да измерват точно честоти до около 10 kHz. Ако увеличите тактовата честота до 32 MHz, можете да измервате до около 50 kHz. Използвайте конструкцията, за да намерите честотната стойност чрез отстраняване на грешки

В следващата част ще използваме PICAXE в различни прототипи

Пример за генериране на импулси

Първите експерименти с чипа PICAXE, лесно програмируем на езика BASIC

Видеото показва как се прави кабел за програмиране на PICAXE и свързването на буквено-цифров дисплей