În continuarea gratuită a articolului despre microcontrolerul PICAXE https://www.pcrevue.sk/a/IoT-prakticky--prais-tempts-with-the-PICAXE-simple-programmable-in-the-BASIC- language- vă vom arăta funcții interesante PICAXE, care sunt adesea utilizate pe diferite dispozitive. Acestea sunt funcții bazate pe temporizatoare și contoare ale microcontrolerului, care sunt utile pentru generarea impulsurilor, măsurarea lungimii impulsurilor și măsurarea numărului de impulsuri, adică măsurarea frecvenței

Exemple sunt în videoclip

Repetare scurtă

Descărcați mediul de dezvoltare PICAXE Editor 6 de pe http://www.picaxe.com/Software, care permite programarea într-un limbaj similar cu popularul limbaj de programare BASIC.

nextech

Conectarea cablului de programare

Vom repeta comenzile pe care le-am folosit în secțiunea anterioară.

Comenzile HIGH și LOW stabilesc nivelul de ieșire. Puteți utiliza numerotarea PIN 2 sau C.2 Comanda PAUSE înseamnă o întârziere cu numărul de milisecunde specificat în parametru. Comentariul poate începe cu o afirmație REM, un punct și virgulă (;) sau un apostrof (‘). Comanda GOTO sare la eticheta corespunzătoare

De asemenea, este interesant și ușor de etichetat variabilele. PICAXE 08M2 are 28 de variabile cu un singur octet etichetate b0 - b27. Variabilele de octeți pot stoca numere întregi în intervalul 0 și 255. Nu pot utiliza numere sau fracții negative și, dacă depășiți pragurile de 0 sau 255, „depășesc” fără avertisment (de exemplu, 254 + 3 = 1) (2 - 3 = 255)

Pentru valori mai mari, puteți combina variabile de octeți în perechi pentru a crea o variabilă de 16 biți cu un interval de 0-65, 535. Aceste variabile sunt etichetate w0, w1, w2. și sunt o combinație de variabile de octeți

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

w4 = b9 + b8 w5 = b11 + b10 .

Variabilele de octeți b0 și b1 (care formează cuvântul de 16 biți w0) pot fi, de asemenea, utilizate în biți individuali marcați după cum urmează:

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

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

Cipurile mai noi de la M2 permit, de asemenea, utilizarea variabilelor de octeți b2 și b3 (formând cuvântul de 16 biți w1), iar biții sunt marcați bit16 - bit31.

După resetarea programului, toate variabilele au valoarea 0

Pinii PICAXE 08M2

Overclockarea cipurilor

În primul rând, vom explica posibilitățile de schimbare a frecvenței ceasului, adică overclocking și underclocking. Frecvența de ceas implicită este de 4 MHz. Această frecvență determină nu numai viteza de execuție a instrucțiunilor, ci și funcțiile cronometrelor și interfețelor de comunicații. Folosind comanda SETFREQ puteți crește frecvența ceasului pe cipul PICAXE 08M2 la 8, 16 sau 32 MHz sau o puteți reduce până la 31 kHz. Pentru circuitul PICAXE 08M2, puteți utiliza comanda SETFREQ cu parametrii: k31, k250, k500, m1, m2, m4, m8, m16 și m32. Setați frecvențele de ceas interne 3I kHz, 250 kHz, 500 kHz, 1 MHz, 2 MHz, 4 MHz, 8 MHz, 16 MHz și 32 MHz. Următorul exemplu folosește frecvența implicită de 4 MHz. Comanda PAUSE va funcționa așa cum ar trebui, pauza între blițuri va fi de 1000 ms, adică 1 secundă. Pentru a fi siguri, vom seta frecvența, deoarece se va schimba în următoarele exemple

Acum vom încerca să schimbăm frecvența ceasului la 32 MHz, care este de 8 ori mai mare. LED-ul va clipi de 8 ori mai repede

S-ar părea că pentru majoritatea aplicațiilor va fi avantajos să setați cea mai mare frecvență de ceas posibilă, de exemplu deja menționată de 32 MHz. Cu toate acestea, se aplică o regulă simplă: cu cât frecvența ceasului este mai mare, cu atât este mai mare consumul curent. Pentru comparație, la 32 MHz, cipul în sine fără dispozitive conectate consumă 2,2 mA. La 31 kHz este de aproape 20 de ori mai puțin - 0,13 mA

Generarea impulsurilor

Comanda PULSOUT vă permite să generați cu ușurință impulsuri. Are doi parametri: numărul pinului pe care sunt generate impulsurile și durata impulsului în unități de 10 μs. Această valoare se aplică la o frecvență implicită de 4 MHz. La o frecvență maximă de 32 MHz, unitatea în care este setată durata impulsului este logic de 8 ori mai scurtă, adică 1,25 μs. Pulsul generat este opus stării inițiale pe pinul respectiv. Exemplul generează cele mai scurte impulsuri posibile cu o pauză de 100 ms

Măsurarea lungimii pulsului

Comanda PULSIN măsoară lungimea impulsului pe pin determinată de primul parametru. Al doilea parametru determină dacă pulsul va fi măsurat de la marginea de întâmpinare (1) sau de la marginea descendentă (0) a semnalului. Al treilea parametru este o variabilă în care este stocată lungimea impulsului. Poate fi o variabilă de tip octet care începe cu b sau o variabilă de tip cuvânt începând cu w. Unitățile sunt aceleași ca și pentru funcția PULSOUT, adică la o frecvență de ceas implicită de 4 MHz este de 10 μs. Comanda pulsin 2,1, w5 măsoară lungimea impulsului pe PIN 2 începând de la marginea de vârf și stochează valoarea în zeci de microsecunde în variabila W5

Măsurarea lungimii impulsurilor este foarte utilă, de exemplu, în analiza semnalului. Un exemplu tipic este semnalul PWM pentru un servomotor, unde unghiul de rotație este determinat de lățimea impulsului. S-ar putea să vă întrebați de ce este bine acest lucru, deoarece atunci când aduceți un astfel de semnal la servomotor, acesta va face ceea ce este necesar. Dar ce se întâmplă dacă trebuie să înlocuiți servo cu un motor pas cu pas, de exemplu, pentru a obține un cuplu mai mare sau o precizie mai mare. Apoi, puteți lăsa neschimbat algoritmul de control și în subrutina de control a motorului trebuie doar să convertiți lungimea impulsului măsurată la numărul de trepte pe care trebuie să le efectueze motorul pentru ca arborele său să se rotească cu unghiul dorit.

Numărarea pulsului

Comanda NUMARA vă permite să numărați impulsurile într-un interval de timp specificat. Primul parametru este numărul pinului, al doilea timpul în milisecunde în care impulsurile vor fi numărate și al treilea parametru este variabila în care este stocat numărul de impulsuri. Vă recomandăm o variabilă de cuvânt. Comanda numără 2.1000, w5 măsoară numărul de impulsuri în 1 secundă, adică măsoară de fapt frecvența în Hz. La o frecvență de ceas de 4 MHz, impulsurile ar trebui să aibă o lungime de cel puțin 40 μs și să măsoare cu precizie frecvențe de până la aproximativ 10 kHz. Dacă creșteți frecvența ceasului la 32 MHz, puteți măsura până la aproximativ 50 kHz. Utilizați constructul pentru a găsi valoarea frecvenței prin depanare

În partea următoare, vom folosi PICAXE în diferite plăci prototip

Exemplu de generare de impulsuri

Primele experimente cu cipul PICAXE, ușor de programat în limbajul BASIC

Videoclipul arată cum se realizează un cablu pentru programarea PICAXE și conexiunea unui afișaj alfanumeric