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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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
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.
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!
11
12
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.
Note ainda como os espaos em branco foram usados para tornar mais clara a sequncia de instrues contidas entre as instrues for e next.
13
goto inicio
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
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
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.
16
let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 let pins = pause 250 goto main
dgito espera dgito espera dgito espera dgito espera dgito espera
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
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
20
readadc10 let dirsc = high portc, low portc, let pinsc = readi2c, writei2c, i2cslave readtemp12 pwmout
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.
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
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
No possvel aceder s entradas do portA com qualquer outra instruo de input (count, pulsin etc).
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
22
Usado para seleccionar (e mover) elementos. A seleco permite editar os parmetros ns bsrrs de edio no fundo da janela.
Select Area
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
Gera dois bales com o mesmo nmero. Independentemente da posio de cada um, encontram-se ligados.
Label Tool
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.
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.
24