Anda di halaman 1dari 27

Manual PICAXE www.picaxe.co.

uk
Traduo livre e parcial (adaptada ao PICAXE 28X) por Ludgero Leote

Indice
O que um microcontrolador? ______________________________________________________1 Microcontroladores, input e outputs__________________________________________________1 O que um sistema PICAXE?_______________________________________________________2 Construindo o prprio circuito / PCI _________________________________________________2 O que um microcontrolador PICAXE? ______________________________________________3 Utilizando o sistema PICAXE _______________________________________________________3 Instalao do Software _____________________________________________________________3
Caractersticas do computador _____________________________________________________________ 3 Instalao ______________________________________________________________________________ 3

Instalao do conversor USB/srie ___________________________________________________4 Fonte de alimentao para o PICAXE ________________________________________________4


Packs de bateria AA ______________________________________________________________________ 4 Fontes de alimentao reguladas ___________________________________________________________ 4

PICAXE-28X Pinout e Circuito______________________________________________________5 Circuito srie para transferncia de dados (download) ___________________________________5 Circuito srie melhorado para transferncia de dados ___________________________________6 Cabos para transferncia de dados (download) _________________________________________6 Circuito de Reset __________________________________________________________________6 Ressoador _______________________________________________________________________6 Testando o sistema ________________________________________________________________7 Procedimento Hard-reset ___________________________________________________________7 Lista de controlo (Download CheckList) _______________________________________________8
Microcontrolador PICAXE ________________________________________________________________ 8 Software________________________________________________________________________________ 8 Cabo de transferncia (Download) __________________________________________________________ 8 Adaptador USB__________________________________________________________________________ 8

Compreendendo a memria do PICAXE ______________________________________________8


Memria de Programa____________________________________________________________________ 8 Memria de Dados _______________________________________________________________________ 8 RAM (Variveis)_________________________________________________________________________ 9 Variveis de Usos Gerais (GPR General Purpose Registers) ___________________________________ 9 Variveis para armazenamento ____________________________________________________________ 9 Variveis para Funes Especiais (SFR) _____________________________________________________ 9
PICAXE-28A / 28X / 40X SFR _____________________________________________________________________ 9

Resumo dos Circuitos para Interface ________________________________________________10


Sadas Digitais (Digital Outputs)___________________________________________________________ 10 Entradas Digitais (Digital Inputs)__________________________________________________________ 10 Entradas Analgicas (Analogue Inputs)_____________________________________________________ 10

Fluxogramas ou BASIC? __________________________________________________________11 Tutorial 1 Compreendendo e usando o sistema PICAXE ______________________________11


O software Programming Editor _________________________________________________________ 11 O cabo srie____________________________________________________________________________ 11 O chip PICAXE numa placa ______________________________________________________________ 11 Resumo procedimentos de programao __________________________________________________ 12 Transferindo o programa BASIC __________________________________________________________ 12 Instrues detalhadas para a transferncia __________________________________________________ 12

Tutorial 2 - Usando Smbolos, Comentrios e Espaos __________________________________12 Tutorial 3 Ciclos ForNext ______________________________________________________13 Tutorial 4 Produzindo sons_______________________________________________________13 Tutorial 5 Usando Entradas Digitais _______________________________________________14 Tutorial 6 Usando Sensores Analgicos_____________________________________________15
Light Dependent Resistor (LDR) __________________________________________________________ 15

Tutorial 7 - Utilizao da instruo Debug____________________________________________15 Tutorial 8 Uso do Terminal Srie com a instruo Sertxd______________________________16 Tutorial 9 - Sistemas de numerao _________________________________________________16 Tutorial 10 - Subrotinas ___________________________________________________________17 Tutorial 11 - Usando Interrupts ____________________________________________________18 O Prximo passo- o nosso prprio projecto PICAXE! ________________________________20 Apndice A Resumo dos Comandos BASIC _________________________________________20
Comandos PICAXE-28A / 28X ____________________________________________________________ 20 PICAXE-28X Comandos Addicionais ______________________________________________________ 20

Apndice D Configurao dos Pinos de Input-Output do PICAXE-28X __________________21


Funes para o PORTA _________________________________________________________________ 21 Funes para o PORTB __________________________________________________________________ 21 Funes para o PORTC __________________________________________________________________ 21 Usando as entradas do portA como entradas digitais__________________________________________ 22 Usando o portC como output _____________________________________________________________ 22

Apndice F Usando Fluxogramas (Flowcharts)_______________________________________23


Editor de Fluxograma (Flowchart Screen)___________________________________________________ 23 Ferramentas do Editor (Flowchart Tools) ___________________________________________________ 23
Select Tool ____________________________________________________________________________________ Select Area ____________________________________________________________________________________ Zoom In/Out ___________________________________________________________________________________ Pan __________________________________________________________________________________________ Line Tool _____________________________________________________________________________________ Connection Points _______________________________________________________________________________ Label Tool_____________________________________________________________________________________ Out / If / Delay / Sub / Other_______________________________________________________________________ 23 23 23 23 23 23 23 23

Desenhando Fluxogramas ________________________________________________________________ 23 Interligando os comandos ________________________________________________________________ 23 Simulao On Screen __________________________________________________________________ 24 Transferncia dos dados dos Fluxogramas (download) ________________________________________ 24 Zoom _________________________________________________________________________________ 24 Symbols _______________________________________________________________________________ 24 Gravar e imprimir Fluxogramas __________________________________________________________ 24

ii

O que um microcontrolador?
O microcontrolador por vezes descrito como computador num chip. Trata-se de um circuito integrado de baixo custo que contm memria, unidade de processamento e circuitos de entradas/sadas num mesmo circuito integrado. Os microcontroladores so adquiridos limpos e programados pelo utilizador com software especfico para uma dada tarefa. Uma vez programado, o microcontrolador inserido num produto para o tornar mais inteligente e fcil de usar. Tome-se, como exemplo, o forno de micro-ondas, onde um microcontrolador trata a informao proveniente do teclado, mostra as informaes no display e controla os dispositivos de sada (motor do prato-rotativo, luz, avisador sonoro, magnetro). Um microcontrolador pode frequentemente substituir uma quantidade de components separados, ou mesmo um circuito electrnico completo. Algumas das vantagens de utilizar microcontroladores no design de um produto so: elevada fiabilidade nveis de armazenamento reduzidos, pois um microcontrolador substiui vrios componentes montagem simplificada do produto e reduo do tempo de fabrico maior flexibilidade de produtos e adaptabilidade pois as caractersticas do produto so programadas no microcontrolador e no embutidas no hardware electrnico. modificaes rpidas no produto e seu desenvolvimento por alterao do programa e no do hardware electrnico.

Algumas aplicaes dos microcontroladores so na aparelhagem domstica, nos sistemas de alarme, nos equipamentos mdicos, nos subsistemas dos veculos automveis, instrumentao electrnica, telecomunicaes, etc. Alguns dos modernos automveis utilizam mais de trinta microcontroladores em subsistemas como sistema de injeco, ar condicionado, alarme, sinalizao, air-bags, ABS, etc. Na indstria os microcontroladores so usualmente programados em linguagens assembly ou C. Contudo, face complexidade destas linguagens, no realista o seu uso com jovens estudantes no ensino, ou por curiosos sem treino formal. O sistema PICAXE ultrapassa este problema pelo uso de uma linguagem com uma curva de aprendizagem mais rpida, a linguagem BASIC. Os programas podem ainda ser especificados graficamente utilizando um editor de fluxogramas.

Microcontroladores, input e outputs


Na imagem ao lado mostrado um popular brinquedo de h alguns anos, o Furby. Trata-se de um excelente exemplo de um sistema mecatrnico, pois utiliza um circuito de controlo electrnico para controlar um elevado nmero de mecanismos. Contm ainda um elevado nmero de sensores pelo que pode reagir a mudanas quando movido (por exemplo, quando colocado num local escuro ou virado de cabea-para-baixo). Os transdutores de Input (entrada) so dispositivos electrnicos que detectam alteraes no mundo real e enviam sinais para o bloco de processamento do sistema electrnico. Alguns dos transdutores de entrada deste brinquedo so: interruptores de presso frente e a trs para detectar se o brinquedo acariciado e um interruptor na boca para detectar quando alimentado. uma resistncia dependente da luz (LDR) entre os olhos para detectar se

dia ou noite, um microfone para detectar sons. um interruptor de inclinao para detectar quando o brinquedo deitado ou virado. Um detector de infra-vermelhos para detectar sinais enviados por outros brinquedos.

Os transdutores de Output (sada) so dispositivos electrnicos que podem ser accionados (ligados) pelo bloco de processamento do sistema electrnico. Alguns dos transdutores de sada neste brinquedo so: um motor para fazer mover os olhos e a boca. um altifalante para produzir sons. um LED de infra-vermelhos para enviar sinais para outros brinquedos.

O microcontrolador utiliza a informao dos transdutores de entrada para tomar decises sobre como controlar os dispositivos de sada. Estas decises so tomadas pelo programa de controlo, que transferido (downloaded) para o microcontrolador. Para modificar o comportamento do brinquedo basta proceder a alteraes no programa e voltar a envi-lo para o microcontrolador.

O que um sistema PICAXE?


O sistema PICAXE explora as caracterstica singulares da nova gerao de microcontroladores de baixo custo com memria FLASH. Estes microcontroladores podem ser programados uma vez e outra (tipicamente 100000 vezes) sem a necessidade de programadores caros. O PICAXE utiliza uma linguagem BASIC simples (ou fluxogramas grficos) que podem ser usados por jovens estudantes para se iniciarem na criao de programas uma hora depois de comearem. muito mais fcil aprender e detectar erros do que com linguagens de programao como o C ou o assembly. Ao contrrio de outros sistemas baseados em mdulos BASIC, toda a programao do PICAXE realizada ao nvel do chip. Assim, ao contrrio de comprar um mdulo caro pr-assemblado (de difcil reparao), com um sistema PICAXE pode simplesmente adquirir um chip standard e us-lo directamente na placa do seu projecto. A potncia do sistema PICAXE reside na sua simplicidade. No necessrio programador, apagador ou sistemas electrnicos complicados o microcontrolador programado atravs de um cabo srie com trs condutores ligado a um PC. Um sistema funcional PICAXE constitudo por 3 componentes e pode ser construdo num breadboard, stripborad ou placa de circuito impresso. O software PICAXE Programming Editor gratuito pelo que o nico custo reside no cabo de download. Num ambiente educativo isto facilita a possibilidade de os estudantes comprarem o seu prprio material e s escolas equiparem cada computador com um cabo. Outros sistemas que exigem programadores ou mdulos caros so normalmente excessivamente caros de implementar. Finalmente, como o chip PICAXE nunca retirado da placa de projecto, no existem danos nos pinos (que ocorrem facilmente cada vez que se retira um microcontrolador da placa para o programador).

Construindo o prprio circuito / PCI


O sistema PICAXE foi desenhado para permitir que estudantes/curiosos construam os seus prprios circuitos. Contudo, se no quiser construir o seu

prprio circuito, existe uma enorme variedade de placas em PCI disponveis - ver catlogo on-line para mais detalhes. Se quiser fazer o seu prprio circuito, siga as indicaes disponveis no stio na Internet www.picaxe.co.uk.

O que um microcontrolador PICAXE?


Um microntrolador PICAXE um microcontrolador standard da Microchip PICmicro que foi previamente prprogramado com cdigo bootstrap. O cdigo bootstrap possibilita que o microcontrolador possa ser programado atravs de uma ligao srie ao PC. Isto elimina a necessidade de um programador convencional (e caro), tornando todo o sistema muito barato. O cdigo bootstrap pr-programado contem ainda rotinas comuns (como a que gera atrasos ou sadas para som), pelo que cada transferncia de programa no necessita de perder tempo a carregar esse cdigo. Isso torna a transferncia de programas para o microcontrolador muito rpida. Como os microcontroladores no-programados comprados para fazer microcontroladores PICAXE so adquiridos em grandes quantidades, possvel aos fabricantes vender os PICAXE a preos prximos do microcontrolador noprogramado. O cdigo bootstrap PICAXE no disponibilizado para programao de microcontroladores virgens.

Utilizando o sistema PICAXE


Para usar o sistema PICAXE necessrio possuir: Um microcontrolador PICAXE Uma placa de circuito impresso PICAXE ou uma breadborad/stripboard. Uma fonte de alimentao (i.e.. 4 baterias recarregveis AA (4.8V) ou 3 pilhas alcalinas AA (4.5V)) Um cabo srie para download. O software gratuito Programming Editor. Todos estes items esto contidos nos packs para iniciao da PICAXE. Para correr o software necessrio possuir um computador com sistema operativo Windows 95 ou posterior. Qualquer sistema que possua o S.O. Windows funcionar no modo BASIC, embora para programao no modo grfico (fluxogramas) seja aconselhado um Pentium 4 ou superior. O computador deve possuir um porto de comunicao srie de 9 pinos para ligar o cabo de transferncia de dados. No caso dos novos portteis que no possuem porto srie, necessrio adquirir um cabo de converso USB/srie. Veja tambm a seco referente definio do porto srie para mais informaes. Para comparao entre as caractersticas dos diferentes chips PICAXE e para informao sobre as vrias placas C.I. disponveis para iniciao, veja, por favor, o original da Revolution em picaxe_manual1.pdf.

Instalao do Software
Caractersticas do computador
Para instalar o software necessrio um computador com sistema operativo Windows 95 ou superior com aproximadamente 20MB de espao livre em disco. Qualquer computador que corra o sistema operativo Windows funcionar no modo BASIC. Contudo para programao no modo fluxograma, necessrio no mnimo um Pentium 4.

Instalao
1) 2) 3) 4) Ligue o computador e autentique-se (alguns sistemas operativos exigem autorizao do administrador para instalao do software contacte o administrador do sistema). Insira o CD, ou faa download do stio Internet da PICAXE em www.picaxe.co.uk e execute o ficheiro de instalao do software. Siga as instrues do ecr para instalar o software. Nos computadores mais antigos pode ser necessrio reiniciar o computador para completar a instalao. Insira o cabo srie no conector srie de 9 pinos do computador. Se o computador for porttil e recente poder no possuir esse conector. Nesse caso ter que instalar previamente o cabo de converso USB/srie

5)

com o software que o acompanha (veja a seco Instalao do conversor USB/srie). Anote qual o nmero do porto srie utilizado COM (geralmente COM1 ou COM2). Clique em Start>Programs>Revolution Education>Programming Editor para executar o software. Se o ecr Options no aparecer automaticamente, clique no menu View>Options. No separador Mode seleccione o tipo e verso de microcontrolador (neste caso PICAXE 28X a 4MHz). No separador Port seleccione o porto srie COM apropriado e prima OK.

Est pronto para usar o PICAXE.

Instalao do conversor USB/srie


A maior parte dos computadores desktop possuem um conector srie de 9 pinos para ligao do cabo de transferncia de ficheiros (download) do PICAXE. Contudo, a maior parte dos actuais computadores portteis no possuem esse conector, mas sim conectores USB. O sistema de interface USB um sistema inteligente em que o dispositivo que ligado se configura quando ligado ao porto USB. Embora seja teoricamente possvel fabricar uma verso USB do PICAXE, a memria extra necessria iria encarecer o custo do integrado em cerca de 3 ($5). Assim, utiliza-se um sistema alternativo. O utilizador dever adquirir um cabo conversor USB/srie. Este cabo custa aproximadamente 15 ($20) e pode ser usado para quaisquer outros dispositivos.

Fonte de alimentao para o PICAXE


Todos os chips PICAXE podem funcionar com tenses de alimentao entre 3 e 5.5V CC. Contudo, alguns computadores podem exigir uma alimentao do PICAXE entre 4.5V e 5.5V para que as comunicaes se faam correctamente na transferncia de ficheiros (download). Recomenda-se assim que a fonte de alimentao seja uma das seguintes: 3 x AA pilhas alcalinas AA (4.5V) 4 x baterias recarregveis AA (NiCad ou NiMh) (4.8V) fonte de alimentao regulada de 5V a partir de 9V CC. No deve utilizar baterias ou pilhas de 9V PP3, pois esto muito acima do mximo admitido e podem provocar danos permanentes no PICAXE. As baterias PP3 9V so projectadas para aplicaes de baixo consumo de corrente e longa durao (por ex. alarmes ou multmetros). Embora uma bateria PP3 9V regulada para 5V possa funcionar por curtos perodos na alimentao do microcontrolador, assim que forem ligados dispositivos s sadas (por ex. leds, motores, bezouros, etc.) ir rapidamente descarregar. Dever portanto utilizar packs de baterias e no pilhas 9V PP3 em projectos de microcontroladores. Tenha cuidado na insero dos integrados PICAXE nos circuitos assegurando-se de que esto na posio correcta, pois a inverso dos pinos pode provocar danos permanentes.

Packs de bateria AA
As pilhas Alcalinas AA possuem uma tenso nominal de 1.5V, pelo que bastam 3 unidades para obter os 4.5V mnimos da alimentao. Se utilizar 4 unidades (4 x 1,5V=6V) j ter que inserir um dodo 1N4001 em srie para reduzir a tenso. O dodo alm de proteger de inverso de polaridade provoca uma queda de tenso de 0,7V, logo obter uns aceitveis 5.3V (6V-0.7V). As baterias recarregveis AA (NiCad e NiMh) possuem uma tenso nominal de 1.2V, pelo que 4 unidades produzem 4.8V. Tenha cuidado em no curto-circuitar os terminais dos packs de baterias, pois a enorme corrente de curto-circuito pode danific-los produzindo aquecimento ou mesmo o incio de um incndio.

Fontes de alimentao reguladas


Alguns utilizadores podem desejar utilizar fontes de alimentao fixas. essencial que se utilize uma fonte de qualidade de 9V CC com um regulador de tenso de 5V. As fontes no-reguladas (com cargas reduzidas) produzem tenses excessivas e podem danificar o microcontrolador. A fonte de alimentao 9V CC deve ser regulada para 5V utilizando um regulador de tenso como o 7805 (1A corrente) ou 78L05 (100mA corrente). O circuito completo do regulador o apresentado na figura junta.

O dodo1N4001 garante proteco contra a inverso de polaridade e os condensadores ajudam a estabilizar a tenso de 5V. Note que estes reguladores de tenso no funcionam adequadamente seno quando a tenso de entrada 8V ou superior. Nota do tradutor: Caso queira pode usar o LM2940 CT-05 que apenas precisa de 6V para fornecer uma tenso regulada de 5V. Isto , possibilita o uso de packs 6x1,2V=7,2V sem problemas.

PICAXE-28X Pinout e Circuito


Diagrama de pinos do PICAXE28X : Circuito electrnico mnimo para utilizar o PICAXE28X

Notas: 1) As resistncias 10k/22k so essenciais. 2) O pino de reset pode ser ligado directamente atravs de uma resistncia de 4k7 ohms aos 5V. 3) necessrio um ressoador cermico de 4MHz.

Circuito srie para transferncia de dados (download)


O circuito srie para transferncia de dados (download) idntico para todos os chips PICAXE. constitudo por 3 condutores que vo do PICAXE para o porto srie do computador. Um dos condutores transmite dados do computador para o microcontrolador, outro transmite dados da sada de dados do microcontrolador para o computador e o terceiro a massa comum (referncia). O circuito mnimo apresentado na figura junta. Este circuito adequado para a maior parte das aplicaes educativas. Note que as duas resistncias constituem um divisor de tenso. A resistncia de 22k, juntamente com os dodos internos do microcontrolador, adaptam a tenso

de sada srie alimentao do PICAXE, limitando a corrente a valores aceitveis. A resistncia de 10k bloqueia a flutuao da entrada srie enquanto o cabo srie no ligado. As duas resistncias devem ser includas em qualquer projecto com circuitos PICAXE (no esto includas no cabo srie). A entrada srie no deve ficar desligada. Caso fique desligada a entrada srie ir flutuar entre alto e baixo, provocando mau funcionamento o PICAXE vai interpretar essa flutuao como transferncia de dados.

Circuito srie melhorado para transferncia de dados

O dodo Shottky BAT85 funciona com tenso mais reduzida do que os dodos internos do microcontrolador, estabelecendo uma tenso de referncia mais precisa. A resistncia adicional de180R garante uma proteco adicional contra curto-circuitos no pino de sada srie.

Cabos para transferncia de dados (download)


O cabo srie de transferncia de dados constitudo por um cabo de 4 condutores (TVHV ou equivalente), possui uma ficha standard 3 pinos Molex 0.1" (2.54 mm) num dos terminais e uma ficha srie D 9 pinos macho na outra extremidade. So apenas ligados os pinos 2, 3 e 5 da ficha D. Esquema de ligaes Ficha Molex Pino do PICAXE Ficha D srie

Sada srie (7) pino 2 Entrada srie (6) pino 3 Massa (8) pino 5 No caso de o computador no possuir porto srie deve usar um adaptador USB/srie. Para computadores mais antigos com ficha srie de 25 pinos, vai precisar de um adaptador 25-9 pinos.

Circuito de Reset
Todos os PICAXE de 18, 28 e 40 pinos possuem um pino de reset. Este pino deve estar no estado alto para que o microcontrolador funcione. Se o pino ficar desligado o microcontrolador no funciona. Para lig-lo basta inserir uma resistncia de 4k7 entre o pino e a alimentao de +5V. Opcionalmente pode incluir um microswitch entre o pino e a massa (0V) isso permite-lhe reinicializar o micocontrolador.

Ressoador
Todos os PICAXE de 28 e 40 pinos necessitam de um ressoador (ou cristal de quartzo) externo. Recomenda-se o uso de um ressoador cermico 4MHz 3 pinos (referncia RES035). Este dispositivo constitudo por um ressoador e dois condensadores num nico invlucro de 3 pinos (N.T - caso opte por um cristal de quartzo, mais caro mas mais preciso, ter que incluir os dois condensadores de 22pF entre os pinos terminais e a massa). O pino central ligado massa (0V) e os outros dois pinos, indiferentemente, aos pinos respectivos do PICAXE (9 e 10 no PICAXE28X). Caso necessrio pode fazer overclock no PICAXE usando ressoadores de 8MHz ou 16MHz.Veja a seco Overclocking para mais detalhes.

Testando o sistema
Este primeiro e simples programa pode ser utilizado para testar o sistema. Requere a ligao de um LED (e uma resistncia de 330R em srie) ao pino 4 (assegure-se da polaridade correcta do LED).

1. Ligue o cabo do PICAXE ao porto srie do computador. Registe qual o nmero do porto a que est ligado (normalmente designado por COM1 ou COM2). 2. Execute o software Programming. 3. Seleccione View>Options para visualizar a janela Options (em princpio aparece automaticamente). 4. Prima no separador Mode e seleccione o tipo de PICAXE correcto. 5. Prima no separador Serial Port e seleccione o porto srie onde o cabo do PICAXE est ligado. 6. Prima OK 7. Escreva o programa seguinte: main: high 4 pause 1000 low 4 pause 1000 goto main (NOTA: repare no sinal (:) a seguir label main e nos espaos entre as instrues e os nmeros operandos). 8. Verifique se o circuito do PICAXE est ligado ao cabo srie, e de que as baterias esto ligadas. Verifique se o LED e a resistncia 330R esto ligadas sada 4. 9. Seleccione PICAXE>Run Dever aparecer no ecr uma barra de download enquanto o programa transferido. Quando a transferncia terminar o programa dever comear a executar-se no PICAXE imediatamente o LED da sada 4 dever piscar on e off segundo a segundo. Se a transferncia de dados no tiver lugar verifique a lista de causas possveis e efectue um hard-reset como indicado na seco seguinte

Procedimento Hard-reset
O processo de transferncia de dados (download) chama o PICAXE permanentemente testando a linha de entrada srie em busca de um novo sinal vindo do computador. Isto processa-se automaticamente e no notado pelo utilizador. Contudo, em raras ocasies pode o PICAXE no ler com rapidez suficiente a linha srie enquanto executa um programa. Estas situaes verificam-se quando: Existe um programa corrompido no PICAXE (remoo da alimentao ou do cabo durante a transferncia) Instrues pause ou wait mais longas que 5 segundos usadas no programa. Utilizao das instrues serin, infrain ou keyin no programa.

Mesmo assim, muito simples resolver este problema, pois a primeira coisa que qualquer PICAXE executa quando h um reset verificar se se trata de uma nova transferncia de dados (download). Portanto, se fizer reset ao PICAXE enquanto uma transferncia se inicia, a nova transferncia sempre reconhecida. Este processo designa-se por hardreset. Para realizar um hard-reset utilizando o interruptor de reset. 1) Prima o interruptor e mantenha-o premido. 2) Seleccione o menu PICAXE>Run para se iniciar o download. 3) Aguarde at que a barra de progresso aparea no ecr. 4) Largue o interruptor de reset. Para realizar um hard reset utilizando a fonte de alimentao:

1) Desligue a fonte de alimentao. 2) Aguarde at que os condensadores da fonte de alimentao descarreguem (pode demorar at 30 segundos, conforme o circuito). 3) Seleccione o menu PICAXE>Run para iniciar a transferncia. 4) Aguarde at que a barra de progresso aparea no ecr. 5) Ligue a fonte de alimentao.

Lista de controlo (Download CheckList)


Se no conseguir fazer download, verifique cada um dos items da lista abaixo. Se o programa falhar a seguir a um download isso deve-se geralmente a falha de alimentao (ou falha de ligao do cabo). Experimente com uma bateria nova.

Microcontrolador PICAXE
O integrado PICAXE est correctamente inserido no suporte. Est a usar um integrado PICAXE (e no um PIC no programado). Est a usar um PICAXE avariado (por ex. o chip sofreu uma sobretenso ou inverso de polaridade). A alimentao provem de uma fonte CC 4.5V a 5.5V DC regulada. O pino reset est ligado a V+ atravs de uma resistncia 4.7k. O ressoador de 3 pinos est correctamente ligado. As resistncias10k/22k para o circuito srie de download esto correctamente ligadas.

Software
Instalou a ltima verso do software Programming Editor (v4.1.0 ou posterior, veja a pgina sobre software em www.picaxe.co.uk para informao actualizada) O porto srie est correctamente seleccionado (menu View>Options>Port). A velocidade do ressoador est correctamente seleccionada (menu View>Options>Mode) No existe software em execuo no computador em conflito com o porto srie utilizado.

Cabo de transferncia (Download)


O cabo est correctamente ligado. O suporte est correctamente ligado s resistncias 10k/22k. Os pinos do suporte esto correctamente soldadas placa de circuito impresso. O cabo est correctamente inserido na ficha srie do computador. O cabo est devidamente inserido no suporte da placa.

Adaptador USB
O adaptador USB/srie est correctamente configurado para um porto srie. O adaptador USB/srie utiliza o driver correcto (procure no stio www.picaxe.co.uk o driver para o efeito).

Compreendendo a memria do PICAXE


A memria do PICAXE constituda por trs reas diferentes. A quantidade de memria varia conforme o tipo de PICAXE.

Memria de Programa
A memria de programa onde o programa guardado aps uma transferncia (download). Trata-se de uma memria rpida tipo FLASH, que se pode reprogramar at cerca de 100 000 vezes. O programa no se perde quando se desliga a alimentao, pelo que executado assim que esta ligada de novo. No normalmente necessrio apagar um programa, pois cada novo download reprograma toda a memria. No entanto se quiser parar um programa pode utilizar o menu PICAXE>Clear Hardware Memory para efectuar o download de um programa vazio para o PICAXE. Num PICAXE28X pode carregar cerca de 600 linhas de programa. Este valor aproximado, pois cada instruo ocupa espaos diferentes em memria. Para verificar a memria livre basta seleccionar o menu PICAXE>Check Syntax.

Memria de Dados
A memria de dados um espao adicional de memria do microcontrolador. Os dados tambm no so perdidos quando se desliga a alimentao. Em cada transferncia de dados (download) esta memria posta a 0, a no ser no caso de ser usada a instruo EEPROM para carregar dados na memria. Veja mais detalhes nas descries das isntrues EEPROM, read e write.

RAM (Variveis)
A memria RAM usada para guardar dados temporrios em variveis durante a execuo do programa. Esta memria perde toda a informao quando se desliga a alimentao. Existem trs tipos de variveis usos gerais, armazenamento e funes especiais. Para informaes sobre as variveis matemticas veja a informao contida na descrio da instruo let do Manual de Instrues BASIC.

Variveis de Usos Gerais (GPR General Purpose Registers)


Existem 14 variveis tipo byte de usos gerais. Estas variveis byte so designadas b0 a b13. As variveis tipo byte (8 bits) podem guardar nmeros inteiros entre 0 e 255. As variveis tipo byte no podem representar nmeros negativos nem fraccionrios e, no caso de ser excedido o referido intervalo 0-255 daro overflow sem aviso (por ex.. 254 + 3 = 1) (2 - 3 = 255). Para nmeros maiores podem combinar-se duas variveis byte de modo a criar uma varivel word, que capaz de guardar nmeros inteiros entre 0 e 65535. Estas variveis word so designadas w0 a w6, e so construdas do seguinte modo: w0 = b1 : b0 w1 = b3 : b2 w2 = b5 : b4 w3 = b7 : b6 w4 = b9 : b8 w5 = b11 : b10 w6 = b13 : b12 Portanto, o byte mais significativo de w0 b1, e o byte menos significativo de w0 b0. Para alm disso os bytes b0 e b1 (w0) podem ser divididos em variveis bit. As variveis bit podem ser utilizadas onde for necessrio guardar um nico bit (0 ou 1) numa varivel b0 = bit7: bit6: bit5: bit4: bit3: bit2: bit1: bit0 b1 = bit15: bit14: bit13: bit12: bit11: bit10: bit9: bit8 Pode utilizar qualquer varivel word, byte ou bit numa expresso matemtica ou instruo que utilize variveis. Deve contudo precaver-se para a possibilidade de acidentalmente usar a mesma varivel byte ou bit que est a ser usada como parte de uma varivel word noutra varivel. Todas as variveis de uso geral so inicializadas a 0 quando feito reset.

Variveis para armazenamento


As variveis de armazenamento so localizaes de memria adicicional atribudas para armazenamento temporrio de dados tipo byte. No podem ser usadas em clculos matemticos, mas podem ser usadas para armazenar temporariamente valores byte atravs das instrues peek e poke. O nmero de localizaes de memria disponveis varia conforme o tipo de PICAXE. Para o PICAXE28X so 112 do endereo 80 ao 127 ($50 to $7F) e ainda do endereo 192 ao 255 ($C0 to $FF) Estes endereos variam de acordo com as especificaes tcnicas do microcontrolador. Para informaes sobre as as instrues poke e peek veja a informao contida na descrio da instruo let do Manual de Instrues BASIC.

Variveis para Funes Especiais (SFR)


As variveis disponveis para funes especiais dependem do tipo de PICAXE.
PICAXE-28A / 28X / 40X SFR

pins = representa o dado lido no porto de entrada pins = representa o porto de sada na escrita infra = varivel usada com a instruo infrain keyvalue = outra designaao para a varivel infra, usada pela instruo keyin Note que pins uma pseudo varivel que se pode aplicar tanto a portos de entrada como de sada. Quando usado esquerda de uma expresso de atribuio de pinos aplica-se ao porto de sada. Por exemplo, let pins = %11000011 vai colocar as sadas 7,6,1,0 altas e as restantes baixas.

O sinal % s para indicar ao compilador que se est a trabalhar em binrio, em vez de decimal. Quando usado direita de uma expresso de atribuio de pinos aplica-se ao porto de entrada (porto C no PICAXE28X). Por exemplo, let b1 = pins vai guardar em b1 o estado actual do porto de entrada. Note ainda que let pins = pins significa faa o porto de sada igual ao porto de entrada. A varivel pins est separada em variveis bit individuais para leitura de entradas bit individuais atravs da instruo if...then. pins = pin7 : pin6 : pin5 : pin4 : pin3 : pin2 : pin1 : pin0

Resumo dos Circuitos para Interface


Esta seco apresenta um breve resumo dos interfaces de entrada/sada com o microcontrolador PICAXE. Para explicaes mais detalhadas, veja a seco 3 do Manual de Circuitos de Interface. Nessa seco so fornecidos esquemas de ligao detalhados e programas para a maioria dos dispositivos corrrentes.

Sadas Digitais (Digital Outputs)


O microcontrolador pode deixar passar (sink) ou fornecer (source) correntes de 20 mA nos pinos de sada. Assim dispositivos de baixa corrente, como os LEDs, podem ser directamente ligados aos pinos de sada. Dispositivos que exijam mais corrente podem ser interfaceados atravs de um transistor (p.ex. BC548B9, um FET ou um Darlington).

Entradas Digitais (Digital Inputs)


Os interruptores podem ser ligados como entradas digitais atravs de uma simples resistncia de 10k. A resistncia essencial pois impede que a entrada fique a flutuar quando o interruptor estiver aberto. Isso levaria a um funcionamento imprevisvel.

Entradas Analgicas (Analogue Inputs)


As entradas analgicas podem ser ser ligadas a um divisor potenciomtrico entre V+ e 0V. A tenso de referncia a tenso de alimentao, e o sinal analgico no deve exceder a tenso de alimentao.

10

Fluxogramas ou BASIC?
O software possui dois tipos de programao, a programao por instrues escritas BASIC e a programao grfica por fluxogramas. Ambos os mtodos utilizam as mesmas instrues e sintaxe. O fluxograma constitui um mtodo grfico simples de juntar as instrues BASIC, prescindindo-se da escrita. Os fluxogramas usam um subconjunto das instrues BASIC e particularmente destinado ao uso por alunos mais jovens em ambientes escolares. Uma vantagem da programao por fluxogramas o ambiente grfico de simulao. Isso permite que os alunos vejam o seu programa ser executado antes de o transferirem para o microcontrolador. Contudo, apenas algumas instrues so suportadas pelo editor. As maioria dos iniciados e utilizadores educativos preferem as instrues BASIC como mtodo de programao. Trata-se de um sistema mais potente do que o mtodo dos fluxogramas, que se tornam complexos para programas de certa dimenso. Os fluxogramas so automaticamente convertidos para instrues BASIC antes do programa ser transferido para o microcontrolador. Assim, a principal preocupao deste manual vai ser na programao por instrues BASIC. Para mais informaes sobre o mtodo de programao por fluxogramas, veja o apndice F, sobre fluxogramas.

main: high 0 wait 1 low 0 wait 1 goto main

Tutorial 1 Compreendendo e usando o sistema PICAXE


O chip PICAXE, o crebro do sistema PICAXE, quando comprado sem programa de controlo, no faz absolutamente nada! O utilizador tem que escrever o programa de controlo no computador e transferi-lo para o microcontrolador PICAXE. Assim, um sistema PICAXE constitudo por trs componentes principais:

O software Programming Editor


Este software executado num computador e permite-lhe utilizar o teclado deste para escrever programas numa linguagem BASIC simplificada. Os programas podem ainda ser gerados atravs do desenho de fluxogramas.

O cabo srie
Este o cabo que liga o computador ao sistema PICAXE. O cabo apenas precisa de ser ligado durante a transferncia do programa. No precisa de estar ligado durante a execuo do programa pois o programa fica permanentemente guardado no microcontrolador mesmo quando se desliga a alimentao!

O chip PICAXE numa placa


O microcontrolador PICAXE executa um programa que tenha sido para ele transferido. Contudo, o integrado precisa de estar montado numa placa que lhe fornea alimentao e possua os outros componentes, a saber, as resistncias para comunicao srie, a resistncia de reset e o ressoador. Esta placa pode ser adquirida ou construda pelo utilizador em stripboard ou placa de circuito impresso.

11

Resumo procedimentos de programao


1. Escreva o programa no computador utilizando o software Programming Editor. 2. Ligue o cabo de transferncia entre o computador e a placa PICAXE. 3. Ligue a fonte de alimentao placa do PICAXE. 4. Use o software Programming Editor para fazer download do programa. O cabo pode ser retirado aps a transferncia. O programa comea imediatamente a ser executado no PICAXE. No entanto, o programa pode ser inicializado em qualquer altura premindo o boto de reset (caso exista, ou desligando e ligando a alimentao).

Transferindo o programa BASIC


O programa seguinte liga e desliga a sada 4 em cada segundo. Ao fazer o download deste programa o LED dever acender e apagar de segundo a segundo. inicio: high 4 pause 1000 low 4 + pause 1000 goto inicio Este programa utiliza as instrues high e low para controlar o pino de sada 4, e usa ainda a instruo pause para produzir um atraso (tempo de espera de 1000 ms = 1 segundo). A ltima instruo goto inicio faz com que o programa salte para a etiqueta (label) inicio: no incio do programa. Isto significa que o programa est num ciclo infinito. As etiquetas so usadas nos programas para referenciarem uma dada posio ou localizao. Repare que na primeira vez que uma etiqueta (label) utilizada deve ser seguida do sinal (:). Isso indica ao compilador que a palavra uma nova etiqueta.

Instrues detalhadas para a transferncia


1. Ligue o cabo PICAXE ao porto srie do computador. Anote em que porto est ligado (normalmente designado COM1 ou COM2). 2. Execute o software Programming Editor. 3. Seleccione o menu View>Options para poder escolher as Opes (dever aparecer automaticamente). 4. Prima no separador Mode e seleccione o chip PICAXE apropriado. 5. Prima no separador Serial Port e seleccione o porto srie onde est ligado o cabo. Prima OK. 6. Escreva o seguinte programa: inicio: high 4 pause 1000 low 4 pause 1000 goto inicio (NB repare no sinal (:) a seguir label inicio e os espaos entre as instrues e os nmeros.) 7. Ligue um LED (com uma resistncia 330R em srie) entre o pino 4 e a massa (0V). (Assegure-se de que o LED ligado com a polaridade correcta!). 8. Verifique se o circuito com o PICAXE est ligado ao cabo srie, e que a alimentao est ligada. 9. Seleccione PICAXE>Run. Uma barra de download deve aparecer medida que o programa transferido. Assim que tiver terminado a transferncia, o programa entra em execuo imediatamente o LED comea a piscar segundo a segundo.

Tutorial 2 - Usando Smbolos, Comentrios e Espaos


Por vezes pode ser difcil lembrar quais os pinos que esto ligados aos dispositivos. A instruo symbol pode ser usada no incio do programa para renomear as entradas e sadas. Veja-se o exemplo: symbol LED = 4 symbol buzzer = 2 principal: high LED low buzzer pause 1000 renomeia output4 LED renomeia output2 buzzer cria uma label principal liga o LED (on) desliga o buzzer (off) espera 1 segundo (1000 ms)

12

low LED high buzzer wait 1 goto principal

desliga o LED (off) liga o buzzer (on) espera 1 segundo salta para o incio

Lembre-se que os comentrios (uma explicao inserida aps o sinal ()) podem tornar cada linha do programa mais fcil de entender. Os comentrios so ignorados pelo computador quando feita a transferncia do programa para o PICAXE. Uma label (por ex. principal: no programa acima) pode ser qualquer palavra (fora as palavras reservadas como switch ou pause, por exemplo), mas devem comear sempre por uma letra. Quando a label apresentada pela primeira vez deve ser seguida pelo sinal (:). Este sinal indica ao computador que se trata de uma nova label. Este programa usa a instruo wait. As instrues wait e pause criam ambas atrasos. Contudo a instruo wait s pode ser usada para segundos, enquanto a instruo pause pode ser usada para atrasos mais pequenos (medida em milisegundos (1/1000 do segundo)). Wait pode ser seguida por um nmero entre 1 e 65. Pause pode ser seguida por um nmero entre 1 e 65535. tambm uma boa tcnica de programao o uso de tabulaes no incio das linhas sem labels, de modo a que as instrues fiquem alinhadas. O termo whitespace (espao em branco) usado pelos programadores para se referirem a tabulaes, espaos e linhas em branco nos programas, que podem tornar a leitura mais fcil. Nota: Algumas linguagens BASIC mais antigas utilizavam nmeros de linha em vez de labels nas instrues goto. Este sistema inconveniente pois alteraes posteriores no programa, obrigam a alterar a numerao. O sistema de labels (etiquetas) usado na maioria das linguagens modernas.

Tutorial 3 Ciclos ForNext


por vezes muito til, a repetio de parte do programa um certo nmero de vezes, como, por exemplo, no piscar de LEDs. Nestes casos pode usar-se um ciclo fornext. O programa seguinte pisca um LED ligado ao pino de sada 1, 15 vezes. O nmero de vezes que ser repetido o cdigo guardado numa varivel de uso geral na memria RAM do PICAXE, utilizando a varivel b1 (o PICAXE possui 14 variveis para usos gerais designadas b0 a b13). Estas variveis podem ser renomeadas usando a instruo symbol para nos lembrarmos mais facilmente. symbol contador = b1 symbol LED = 4 principal: for contador = 1 to 15 high LED pause 500 low LED pause 500 next contador end define a varivel b1 como contador define o pin 4 com o nome LED inicia liga o espera liga o espera repete fim do um ciclo for...next pino 7 alto 0.5 segundos pino 7 baixo 0.5 segundos fim do ciclo for...next 15 vezes programa

Note ainda como os espaos em branco foram usados para tornar mais clara a sequncia de instrues contidas entre as instrues for e next.

Tutorial 4 Produzindo sons


Os buzzers (bezouros) produzem uma frequncia fixa quando ligados. Contudo, o sistema PICAXE pode criar som de frequncias diferentes atravs da instruo sound com um altifalante piezoelctrico. Todos os chips PICAXE suportam a instruo sound, que destinada a produzir bips de aviso. Recomenda-se o seu uso em vez de bezouros, que consomem mais corrente. Exemplo de programa para som: inicio: sound sound sound pause 2,(50,100) 2,(100,100) 2,(120,100) 1000 freq 50, durao 100 freq 100, durao 100 freq 120, durao 100 espera 1 segundo

13

goto inicio

salta para o incio

Para testar este programa deve colocar um altifalante piezoelctrico entre o pino de sada (neste caso a sada 2) e 0V. O primeiro nmero indica o nmero do pino (neste caso a sada 2). O nmero seguinte (entre parntesis) o tom, seguido da durao. Quanto mais alto for o tom, mais alto ser o som (os valores vlidos vo de 0 a 127). O programa seguinte usa um ciclo for...next para produzir 120 sons diferentes. main: for b0 = 1 to 120 sound 2,(b0,50) next b0 end O nmero armazenado na varivel b0 aumenta de 1 em cada ciclo (1-2-3 etc.) Portanto, ao usar a varivel b0 como tom, a nota vai ser modificada em cada ciclo. O programa seguinte produz a mesma tarefa mas, agora de trs para a frente, usand o como valor de step -1 (em vez do valor +1 por omisso do exemplo acima). main: for b0 = 120 to 1 step -1 contagem decrescente sound 2,(b0,50) produz um som de freq b0 next b0 ciclo seguinte end incio de um ciclo for...next produz um som de freq b0 ciclo seguinte

Tutorial 5 Usando Entradas Digitais


O sensor digital mais simples um interruptor (microswitch) que possua duas posies, ligado (on) e desligado (off): Exemplos comuns de sensores digitais so: microinterruptores interruptores de presso interruptores reed O programa abaixo mostra como usar botes de presso. Neste programa a sada 4 pisca cada vez que a entrada 3 premida. inicio: if pin3 = 1 then flash goto inicio flash: high 4 pause 2000 low 4 goto inicio cria a label inicio salta se a entrada estiver ligada caso contrrio volta para inicio cria a labelflash liga a sada 4 (on) wait 2 seconds desliga a sada 4 (off) salto para o incio

No programa as trs primeiras linhas ficam em ciclo permanente. Se a entrada estiver desligada (=0) o programa permanece aqui. Se a entrada ficar alta (=1) o programa salta para a label de nome flash. Nesse caso a sada 4 liga durante dois segundos e depois desliga voltando ao incio. Repare a sintaxe da linha ifthen pin3 uma palavra (sem espaos). Isso resulta de pin3 ser o nome de uma varivel que contem o dado do pino de entrada respectivo. Nota ainda que aps then apenas se coloca a label (localizao do ponto para onde o programa salta no so permitidas outras variantes. Podemos combinar os dados de dois ou mais interruptoes atravs dos operadores lgicos AND ou OR. Uma porta AND de duas entradas programada como if pin2 = 1 and pin3 = 1 then flash Uma porta OR de trs entradas programada como if pin1 = 1 or pin2 = 1 or pin3 = 1 then flash Para ler todo o porto de entrada pode escrever-se

14

let b1 = pins ou b1=pins Para isolar pinos individualmente (por ex. 6 e 7) no porto, temos que mascarar a varivel com o operador lgico AND let b1 = pins & %11000000

Tutorial 6 Usando Sensores Analgicos


Um sensor analgico mede um sinal contnuo como a luz, a temperatura ou a posio. O sensor analgico fornece uma tenso varivel contnua. Esta tenso do sinal pode ser representada por um nmero no intervalo de 0 a 255 (por ex. escuro=0, luz=255). Exemplos comuns de sensores analgicos so: LDR (Light Dependent Resistor) Termistores (resistncias variveis com a temperatura) Resistncias variveis (potencimetros)

Light Dependent Resistor (LDR)


A LDR bem exemplo de um sensor analgico. Pode ligar-se a uma entrada ADC do PICAXE28X (pinos ADC0 a ADC3). Note que apenas estas entradas possuem a capacidade de converso analgico-digital. O valor de entrada analgica pode ser guardada numa varivel atravs da instruo readadc. O valor da varivel (0 a 1024) pode ser ento testado. O programa seguinte liga um LED se o valor lido for superior a 512 e um LED diferente se o valor for inferior a 128. Para valores entre 128 e 512 ambos os LEDs ficam apagados main: readadc 1,b0 if b0 > 512 then top if b0 < 128 then bot low 0 low 4 goto main top: high 0 low 4 goto main bot: high 4 low 0 goto main define uma label chamada main l ADC1 para a varivel b0 se b0 > 512 vai para top if b0 < 128 vai para bot caso contrrio desliga a sada 0 e a sada 4 salta para o incio define label top liga a sada 0 desliga a sada 4 salta para o incio define label bot liga a sada 4 desliga a sada 0 salta para o incio

Tutorial 7 - Utilizao da instruo Debug


Quando se usam sensores analgicos por vezes necessrio calcular um valor de referncia (threshold) (isto , valores como os 128 e 512 do programa tutorial 6). A instruo debug fornece um modo simples de visualizar em tempo real, o valor do sensor, pelo que o valor de referncia pode ser assim calculado experimentalmente. main: define uma label designada main readadc 1,b0 l o canal 1 para a varivel b0 debug b0 transmite o valor para o ecr do PC pause 500 pequeno atraso goto main salta para o incio

15

Assim que este programa executado, surge no ecr do PC uma janela debug apresentando os valores de todas as variveis. medida que varia a luz incidente sobre o sensor LDR, o valor da varivel mostra o valor lido. A janela debug abre automaticamente aps a transferncia de um programa que contenha a instruo debug. A janela pode ainda ser aberta no menu PICAXE>Debug menu.

Tutorial 8 Uso do Terminal Srie com a instruo Sertxd


Todas as verses PICAXE suportam a instruo debug. Contudo, as verses M e X tambm suportam mensagens srie de debug mais complexas atravs da instruo sertxd, que envia uma string definida pelo utilizador em srie para o computador (a uma baud rate 4800). As mensagens podem ser visualizadas atravs da funo Serial Terminal (PICAXE>Terminal menu). O Serial Terminal pode ainda ser aberto sempre que se realiza um download atravs do menu View>Options>Options menu. main: define a label main readtemp 1,b0 l o canal 1 para a varivel b0 sertxd (O valor e ,#b0,cr,lf) pause 500 pequeno atraso goto main volta para o inicio A instruo sertxd transmite a string O valor e seguida da string ASCII contendo o valor actual da varivel b1 (o prefixo # da varivel indica uma string ASCII que representa o valor correcto transmitido). As constantes CR e LF so valores pr-definidos. (13 e 10) que fazem com que o terminal srie mostre uma linha nova para cada valor, de modo a actualizar correctamente o ecr. Este programa usa a instruo readtemp para ir mostrando no ecran a temperatura lida por um sensor de temperatura digital DS18B20, ligado ao canal 1.

Tutorial 9 - Sistemas de numerao


Um microcontrolador funciona executando uma enorme quantidade de instrues, no mais curto intervalo de tempo, processando sinais digitais. Estes sinais so codificados no sistema binrio o sinal pode ser high (1) ou low (0). Por comparao, lembre-se que o sistema de numerao corrente o sistema decimal. Este sistema de numerao usa dez dgitos, de 0 a 9 para representar valores maiores ou menores. Contudo, quando se trabalha com microcontroladores mais fcil pensar em cdigo binrio. Isto particularmente verdade quando se tenta controlar mltiplas sadas ao mesmo tempo. Um dgito binrio designado por bit (binary digit). O sistema PICAXE utiliza 8 bits (1 byte), com o bit menos significativo ao lado direito e o mais significativo ao lado esquerdo. Assim o nmero binrio %11001000 significa que os bits 7,6,3 esto altos (high/1) e os outros baixos (low/0). O sinal % indica ao compilador que se est a trabalhar em binrio, em vez de decimal. Isso significa que todas as 8 sadas podem ser controladas ao mesmo tempo, em vez de utilizar mltiplas instrues high ou low. O programa seguinte mostra como apresentar num display de 7 segmentos uma contagem de 0 to 9. main: let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 %00111111 %00000110 %01011011 %01001111 %01100110 dgito espera dgito espera dgito espera dgito espera dgito espera 0 0.25 1 0.25 2 0.25 3 0.25 4 0.25 segundos segundos segundos segundos segundos

16

let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 goto main

%01101101 %01111101 %00000111 %01111111 %01101111

dgito espera dgito espera dgito espera dgito espera dgito espera

5 0.25 6 0.25 7 0.25 8 0.25 9 0.25

segundos segundos segundos segundos segundos

Cada instruo let pins= modifica o nmero de segmentos que ligado no display. Isto mais rpido, e mais eficiente em termos de memria, do que utilizar muitas instrues high e low.

Tutorial 10 - Subrotinas
Uma subrotina um pequeno programa separado que pode ser chamado a partir do programa principal. Uma vez executada a subrotina, o pograma principal continua a partir da instruo seguinte quela que chamou a subrotina. As subrotinas so utilizadas para tornar os programas modulares, isto , dividi-los em pequenas tarefas, fceis de implementar e compreender. Por outro lado, as subrotinas de uso geral, depois de afinadas, podem ser reutilizadas noutros programas. O PICAXE28X aceita at 255 subrotinas. O programa seguinte utiliza duas subrotinas para implementar as duas seces do programa ( flash e noise). symbol LED = 4 symbol buzzer = 2 symbol counter = b1 main: gosub flash gosub noise goto main end flash: renomeia output4 como LED renomeia output2 como buzzer define um contador na varivel b1 cria uma label designada main chama subrotina flash chama subrotina noise volta para o incio fim do programa principal

subrotina flash for counter = 1 to 25 comea o ciclo fornext high LED LED on pause 50 espera 0.05 second low LED LED off pause 50 espera 0.05 second next counter continua o ciclo return retorno da subrotina noise: high buzzer pause 2000 low buzzer return liga o bezouro espera 2 segundos desliga o bezouro retorno da subrotina

Este segundo programa mostra como uma varivel pode ser usada para transferir informao para dentro da subrotina. Neste caso, a varivel b2 usada para dizer ao microcontrolador para piscar 5 vezes o LED e depois 15 vezes. symbol LED = 4 symbol counter = b1 main: let b2 = 5 gosub flash pause 500 let b2 = 15 gosub flash pause 500 goto main end renomeia output4 como LED define um contador na varivel b1 cria label desinada main carrega b2 com 5 chama subrotina flash espera carrega b2 com 15 chama subrotina flash espera volta ao incio fim do programa principal

17

flash:

cria subrotina flash for counter = 1 to b2 inicio do ciclo fornext high LED LED on pause 250 espera 0.25 segundos low LED LED off pause 250 espera 0.25 segundos next counter ciclo seguinte return retorno da subrotina

Tutorial 11 - Usando Interrupts


Um interrupt um caso especial de subrotina. A subrotina ocorre imediatamente aps verificar-se uma combinao particular dos sinais nas entradas. Uma polled interrupt um modo rpido de reagir a uma combinao particular de entradas. Trata-se do nico tipo de interrupt disponvel no PICAXE. O porto de entrada lido entre a execuo de duas instrues, e durante a execuo de uma instruo como pause. Se a combinao de entradas prevista se verificar (verdade), d-se um gosub para a subrotina interrupt, que executada imediatamente. Quando terminar a execuo da subrotina d-se o regresso ao programa principal, na exacta localizao onde se deu a interrupo. A condio das entradas que produzem a interrupo um padro de 0s e 1s no porto de entrada, mascarados pelo byte mask. Portanto, quaisquer bits mascarados com 0 no byte mask sero ignorados. por ex. para se produzir um interrupt quando o input1 est alto (high) setint %00000010,%00000010 para se produzir um interrupt quando o input1 est baixo (low) setint %00000000,%00000010 para se produzir um interrupt quando o input0 est alto (high), o input1 alto (high) e o input 2 baixo (low) setint %00000011,%00000111 etc. Em cada instante apenas pode haver um padro de entradas activo (condio a verificar). Para desactivar o interrupt execute a instruo SETINT com o valor 0 como mask byte. Notas: 1) Qualquer programa que possua uma instruo SETINT deve ter a correspondente subrotina interrupt: (devidamente terminada pela instruo return). 2) Quando se verifica o interrupt, as interrupes ficam desactivadas. Portanto, para voltar a activar as interrupes deve usar-se a instruo SETINT no fim da subrotina interrupt:. A interrupo no fica activa seno depois da execuo da instruo return. 3) Se a interrupo for reactivada e a condio de interrupo no for reinicializada na subrotina, verificar-se- nova interrupo logo aps a execuo da instruo return. 4) Aps a execuo do cdigo constante da subrotina interrupt, o programa continua a executar-se na instruo seguinte do programa principal. No caso de a interrupo se ter verificado quando da execuo de instrues como wait ou pause, o tempo restante ignorado e o programa continua na instruo seguinte. Explicaes mais detalhadas sobre a instruo SETINT. A instruo SETINT deve ser seguida por dois nmeros um nmero a comparar com (input) e uma mscara de entradas (mask). habitual apresentar esses nmeros na forma binria, pois torna mais claro quais os pinos em questo. No formato binrio a entrada7 (input7) fica esquerda da entrada0 (input0). O segundo nmero, a mscara de entradas, define quais os pinos que sero testados para verificar se a interrupo se deve dar

18

- %00000001 testa a entrada no pino 0 - %00000010 testa a entrada no pino 1 - %01000000 testa a entrada no pino 6 - %10000000 testa a entrada no pino 7 - etc Podem combinar-se vrias condies a verificar em diferentes pinos ao mesmo tempo... - %00000011 testa as entradas nos pinos 1 e 0 - %10000100 testa as entradas nos pinos 7 e 2 Tendo decidido quais os pinos que vo ser usados para produzir o interrupt, o primeiro nmero (valor das entradas) define se queremos que a interrupo ocorra quando esses pinos fiquem altos (1) ou baixos (0). Uma vez a instruo SETINT activa, o PICAXE monitoriza os pinos especificados na mscara de entrada input mask, onde esto presentes 1, ignorando os outros pinos. Uma mscara de entrada %10000100 verificar os pinos 7 e 2 criando um valor %a0000b00 onde o bit a ser 1 se o pino 7 estiver alto (high) e 0 se estiver baixo (low), e o bit b ser 1 se o pino 2 estiver alto (high) e 0 se estiver baixo (low). O nmero a comparar com (inputs), o primeiro operando da instruo SETINT, o nmero com o qual e valor criado vais ser comparado e, se os dois se igualarem, ento ocorrer o interrupt, caso contrrio n haver interrupt. Se mscara de entradas for %10000100, sero os pinos 7 e 2 testados, pelo que podemos criar valores a comparar com do tipo... - %00000000 Pino 7 = 0 e pino 2 = 0 - %00000100 Pino 7 = 0 e pino 2 = 1 - %10000000 Pino 7 = 1 e pino 2 = 0 - %10000100 Pino 7 = 1 e pino 2 = 1 Assim, se se pretender gerar um interrupt quando o pino 7 ficar alto e o pino 2 ficar baixo, a mscara a usar ser %10000100 e o valor a comparar com dever ser %10000000, donde a sintaxe da instruo SETINT... SETINT %10000000,%10000100

O interrupt ocorrer quando, e apenas quando, o pino 7 ficar alto e o pino 2 ficar baixo. Exemplo: setint %10000000,%10000000 activa o interrupt quando o pin7 fica alto (high) loop: low 1 desliga a sada 1 pause 2000 espera 2 segundos goto loop volta ao incio interrupt: high 1 if pin7 = 1 then interrupt pause 2000 setint %10000000,%10000000 return liga a sada 1 fica em ciclo aqui at que a condio desaparea espera 2 segundos reactiva o interrupt retorno da subrotina

Neste exemplo um LED na sada 1 acender imediatamente quando a entrada ficar alta. Com uma instruo if pin7 =1 then.... o programa poderia ter que esperar at dois segundos para acender o LED pois a instruo if no executada durante o tempo de espera produzido pela instruo pause 2000 do programa principal (o programa standard apresentado a seguir para termo de comparao). loop: low 1 pause 2000 if pin7 = 1 then sw_on goto loop desliga a sada 1 espera 2 segundos volta ao incio

19

sw_on: high 1 if pin7 = 1 then sw_on pause 2000 goto loop liga a sada 1 fica em ciclo aqui at que a condio desaparea espera 2 segundos volta ao programa principal

O Prximo passo- o nosso prprio projecto PICAXE!


Agora que comeamos a ficar com uma boa idia acerca de como o sistema PICAXE funciona deveremos tentar comear a fazer o nosso prprio projecto. Tem sua disposio os 2 documentos Instrues PBasic e Circuitos de Interface para Microcontroladores. H uma grande gama de idias para projectos e exemplos nos ficheiros de Help do software do Programming Editor. O estudo desses projectos-exemplo fornecero idias suplementares. No deixe tambm de ir olhando para o forum na seco technical support do site PICAXE (www.picaxe.co.uk)

Apndice A Resumo dos Comandos BASIC


No documento Instrues PBASIC existe toda a informao especfica e os exemplos para cada um dos comandos BASIC. No entanto, neste apndice, pretendemos apenas dar uma viso geral dos comandos Basic disponveis para o PICAXE 28X.

Comandos PICAXE-28A / 28X


Output Input ADC RAM Sound Serial Program Flow Loops Mathematics Variables Data memory Delays Miscellaneous Interrupt Servo Control Infrared Temperature 1-wire Serial No Keyboard high, low, toggle, pulsout, let pins = if...then, pulsin, button readadc peek, poke sound serin, serout goto, gosub, return, branch for...next let (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/ ) if...then, random, lookdown, lookup eeprom, write, read pause, wait, nap, sleep, end symbol, debug setint servo infrain readtemp readowsn keyin, keyled

PICAXE-28X Comandos Addicionais


Input count, if portA.then

20

ADC Portc config. Portc output I2C Temperature PWM

readadc10 let dirsc = high portc, low portc, let pinsc = readi2c, writei2c, i2cslave readtemp12 pwmout

Apndice D Configurao dos Pinos de Input-Output do PICAXE-28X


De modo a fornecer uma maior flexibilidade, as configuraes de entrada e sada do PICAXE-28X podem ser modificadas pelo utilizador. Depois do reset (default) o PICAXE-28 fica com 4 entradas analgicas (portA), 8 sadas digitais (portB) e 8 entradas digitais (portC). Mas, para cada um deles:

PORTA (pinos 2 a 5) d 4 entradas analgicas (default) ou at


4 entradas digitais.

PORTB (pinos 21 a 28) fornece 8 sadas fixas. PORTC (pinos 11 a 18) podem ser 8 entradas digitais (default)
ou at 8 sadas. Assim permite-nos um mximo de 12 entradas digitais, 4 entradas analgicas e 16 sadas.

Funes para o PORTA


Pino 2 3 4 5 Default analgico 0 analgico 1 analgico 2 analgico 3 Segunda Funo entrada porta 0 entrada porta 1 entrada porta 2 entrada porta 3

Funes para o PORTB


Os pinos do PORTB so fixos como sadas e no podem ser alterados.

Funes para o PORTC


Pino 11 12 13 14 15 16 17 18 Default input 0 input 1 input 2 input 3 input 4 input 5 input 6 input 7 Segunda Funo output portc 0 output portc 1 output portc 2 output portc 3 output portc 4 output portc 5 output portc 6 output portc 7 keyboard clock (input) keyboard data (input) Funo Especial infrared (input) pwm 1 (output) pwm 2 (output) i2c scl clock (input) i2c sda data (input)

Os pinos do portC podem ser usados como entradas (default), mudados para outputs, ou usados com as suas funes especiais, usando o comando apropriado: infrain, keyin, i2cslave, ou pwmou.

21

Usando as entradas do portA como entradas digitais


As entradas de a0 a a3 do portA (pinos 2 a 5) esto, por defeito, configuradas como entradas analgicas. Mas, podem ser usadas como entradas digitais, desde que sejam reservadas para deteco do estado ligado/desligado de interruptores. A sintaxe para testar a condio de entrada :
if porta pin0 = 1 then jump

isto , inserida a palavra chave adicional porta depois do comando if. Mesmo que tenham que se testar vrias entradas (do mesmo porto, pois no se podem testar portos diferentes usando s uma instruo if), s necessrio ter uma vez porta a seguir ao if. Exemplos: Para testar se duas entradas esto ligadas:
if porta pin0 = 1 AND pin1 = 1 then jump

Para testar se alguma de duas entradas est ligada:


if porta pin0 = 1 OR pin1 = 1 then jump

No possvel aceder s entradas do portA com qualquer outra instruo de input (count, pulsin etc).

Usando o portC como output


As entradas do portC esto, por defeito, configuradas como entradas digitais, s que podem tambm ser configuradas como sadas digitais. Para converter um pino como sada e p-lo a 1
high portc 1

Para converter um pino como sada e p-lo a 0


low portc 1

Para converter todos os pinos como sadas let dirsc = %11111111 Para converter todos os pinos como entradas
let dirsc = %00000000

Note que dirsc usa a notao comum no BASIC: 0 para entrada e 1 para sada. (AVANADO Se est familiarizado com a linguagem Assembly pode preferir usar o comando let trisc =. S que neste caso a notao 1 para entrada e 0 para sada. No tente fazer directamente poke ao registo trisc, pois o bootstrap do picaxe refresca, com frequncia, o valor desse registo). Depois de ter convertido todos os pinos do portc como sada, se quisermos todos os seus pinos a 1:
let pinsc = %11111111 (ou) let portc = %11111111

E, se quisermos todos os seus pinos a 0:


let pinsc = %00000000 (ou) let portc = %00000000

22

Apndice F Usando Fluxogramas (Flowcharts)


Editor de Fluxograma (Flowchart Screen)
Ao clicar neste simbolo (new flowchart) ou seleccionando no men File>New Flowchart aparece o Editor de Fluxogramas. Com este editor, consegue-se no s o desenho do Fluxograma como tambm a simulao do programa no ecr. Alm disso o cdigo gerado automticamente para que se possa fazer o download para o microcontrolador.

Ferramentas do Editor (Flowchart Tools)


Select Tool

Usado para seleccionar (e mover) elementos. A seleco permite editar os parmetros ns bsrrs de edio no fundo da janela.
Select Area

Usado para seleccionar uma area particular.


Zoom

Amplia a area que seleccionar.


Zoom In/Out

Ampliar: clicar movendo o rato para cima. Movendo-o para baixo diminui a imagem. Pan Desloca o Fluxograma. Tambm termina uma simulao em curso.
Line Tool

Desenha as linhas do fluxograma. Para fazer os cantos tem que se clicar.


Connection Points

Gera dois bales com o mesmo nmero. Independentemente da posio de cada um, encontram-se ligados.
Label Tool

Ferramenta para escrever texto no Fluxograma.


Out / If / Delay / Sub / Other

Permite passar aos sub-menus e a seleccionar commandos.

Desenhando Fluxogramas
Para desenhar um fluxograma, depois de se estar no Editor de Fluxograma (Flowchart Screen), s tem que se clicar em um dos botes do menu de comandos (out / if / delay /sub / other) na toolbar, que nos leva para o sub-menu de comandos apropriado. A selecciona o comando, e depois faz clique no stio desejado, ou em qualquer parte do ecr. O cursor continuar com o comando seleccionado at que faa uma das duas: 1) Seleccione a select tool 2) Clique no boto direito do rato Para editar, selecciona-se cada comando no fluxograma e o cdigo BASIC da instruo correspondente aparece na barra de edio, no canto inferior esquerdo. Qualquer dvida deve ser tirada no documento Instrues PBasic. Qualquer comando inexistente nos menus, pode ser adicionado atravs do comando indicado por trs pontos.

Interligando os comandos
A interligao feita movendo-os at que o topo de um se encaixe na parte de baixo do outro. Em alternativa podem-se interligar por linhas usando a line tool, mas a parte de baixo de um tem que ir sempre ligar ao topo do outro. Tambm s permitida uma linha a sair da parte de baixo de uma caixa. Os cantos das linhas so feitos clicando com o rato. Quando uma linha chega perto do ponto de juno, basta um clique na juno para fechar a ligao. No se podem deslocar linhas. Alis, seleccionar uma linha o suficiente para a apagar.

23

Simulao On Screen
Para simular o Fluxograma pode-se : 1) clicar no boto na barra de mens, 2) escolher Simulate a partir do menu Flowchart ou 3) carregar em F4 O programa simulado ( velocidade que ajustar no menu Flowchart>Options), indo destacando a vermelho cada uma das clulas, medida que executa. Simultneamente aparecem as janelas de Inputs/Outputs e das Variveis. Podem ser impostos valores de entrada (clicando nos botes por debaixo dos LED) ou ajustados valores analgicos (deslizando os cursores). Os comandos que no possuam equivalente de simulao no ecr, so ignorados.

Transferncia dos dados dos Fluxogramas (download)


No se pode fazer a transferncia dos dados dos Fluxogramas directamente para o microcontrolador. Primeiro converte-se o Fluxograma para BASIC, do qual depois que feito o download. A converso, que cria o programa BASIC, feita a partir do menu Flowchart>Convert (ou carregando em F5). Carregando novamente em F5 feito o download do programa. Isto quer dizer que a partir do Fluxograma completo, se carregarmos duas vezes em F5, o programa convertido e carregado no Picaxe. Tudo o que no Fluxograma no comece com start ou sub ignorado aquando da converso. A converso pra se faltar alguma ligao. Assim, o Fluxograma tem que estar completo, ou ento tem que se usar um stop.

Zoom
Para ampliar ou reduzir a imagem pode usar as ferramentas de zoom explicadas atrs ou clicar no canto inferior direito do ecr. A, clicando no boto esquerdo do rato, diminui, enquanto que no boto direito aumenta.

Symbols
No podem ser usados simbolos com nomes de comandos (como por ex. switch ou sound), pois dar origem a erros aquando da converso para BASIC. As entradas, as sadas e as variveis podem ser todas renomeadas (menu Flowchart> Flowchart Symbol Table...) e o novo nome o que aparecer sempre, inclusivamente no menu da barra de edio.

Gravar e imprimir Fluxogramas


A partir do men File podemos gravar (formato *.cad, para voltar a ser utilizado no programa), imprimir e exportar como ficheiro grfico (incluindo os tipos bmp e gif). A partir do men Edit podemos copiar o Fluxograma para a rea de transferncia.

24

Anda mungkin juga menyukai