Piscar um LED

Piscar um LED é das primeiras coisas que se deve fazer quando se começa num novo microcontrolador porque permite aprender como se usam as portas digitais como uma saida.

Para ver como se faz isso basta ir no vosso Energia a "File" no canto superior esquerdo, "Examples"->"Basics"->"Blink". Isso irá abrir um exemplo de como piscar o LED vermelho na vossa launchpad.

Contêm primeiro um define:

#define LED RED_LED

Isto é apenas uma definição para ajudar a fazer o codigo. Agora quando escrevem LED é o mesmo que escreverem RED_LED. Isto dá jeito porque se quiserem em vez de usar o LED vermelho, usar o verde, basta mudarem o define para:

#define LED GREEN_LED

Vão ver que dá jeito porque caso contrario teriam de mudar muitas coisas no codigo. Assim basta mudar isso.

void setup()

Depois vão notar algo assim:

void setup() {

// initialize the digital pin as an output.

pinMode(LED, OUTPUT);

}

void setup() vai ser algo que vao sempre precisar para qualquer codigo. É ao que se chama uma função. Esta chama-se "setup" e é obrigatoria tê-la tal como está. Tambem notam antes de "setup" que está escrito "void". Void significa vazio, tem a ver com o tipo de valor que a função retorna (neste caso nada, vazio) que depois irão entender melhor. Uma função tambem precisa dos parênteses "()", em algumas escreve-se algo la dentro mas nesta nunca.

Uma função contêm codigo. O codigo que está dentro de uma função é limitado por "{" e depois "}", "{" é onde começa e "}" é onde acaba. Nunca esquecer.

Dentro da função está uma função a ser chamada. Sim isto tambem é uma função, so que está está noutro lado a dizer o que faz. Nos agora estamos a usá-la, a chamá-la. Chamam com o seu nome "pinMode" e depois metem algo dentro dos parênteses. Isto são parametros. Estão a ver como a matemática ha funções f(x)? Isto é tipo isso. Metem parametros (x) e ela faz algo de acordo com esses parametros.

Neste caso esta função aceita 2 parametros. O pin que querem usar, neste caso o LED antes definido, e o tipo de pin que querem, sendo neste caso uma saida (OUTPUT). Respeitem sempre as maiúsculas e minusculas, porque "output" não é igual a "OUTPUT".

No fim é necessário sempre ";". Se não meterem ";" dá erro.

Mais info sobre void setup()

O void setup é a função em que o codigo começa. Sempre. Esta função é onde se coloca o que so se quer que execute uma vez como configurações de pins. Depois quando chega ao fim salta para o loop() que vamos ver a seguir.

O void loop()

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

Esta é outra função obrigatoria. É tambem void, tem o nome "loop" e não leva parametros (nao tem nada dentro dos parênteses).

Esta é onde metem o codigo que querem que seja executado. Esta função ao contrario de do setup e de todas as outras, quando chega ao fim, volta ao inicio.

Podem ver a função "digitalWrite" a ser chamada. Essa é o que usam para controlar as saidas digitais que é o que queremos para piscar um LED. Tem como parametros o pin (LED) e o estado do pin (HIGH). O estado do pin pode ser 1 ou 0, que é o mesmo que HIGH ou LOW. HIGH significa que a saida está a 3.3V, e liga o LED. LOW significa que está a 0V e desliga o LED.

A função entre os digitalWrite chamada "delay" serve para criar um tempo de espera. Se não tivessem isso entre meter o LED a 1 e meter a 0, o LED iria piscar tao rapido que nao iriam ver nada (o led demorava menos de 1uS a ligar e desligar). O "delay" aceita só 1 parametro que é o tempo de espera em milisegundos. O valor 1000 faz com que espere 1 segundo.

A função loop como volta ao inicio quando chega ao fim, apenas necessita dessas 4 linhas de codigo. O led vai ligar, esperar 1 segundo, desligar, esperar 1 segundo e voltar ao inicio repetindo sempre isto.

Com isto conseguem piscar um LED. Podem agora fazê-lo piscar mais rapido ou lento mudando os tempos de espera. Podem ainda fazer varias cores para alem de vermelho! A placa tem um LED RGB (Red, Green, Blue). São 3 cores mas é possivel combiná-las para criar outras novas como roxo, rosa, laranja, azul claro, etc. Para ter todas as cores possiveis é preciso controlar o brilho dos LEDs mas isso fica para a proxima.

Para referência:

LED vermelho chama-se RED_LED ou PF_1

LED verde chama-se GREEN_LED ou PF_3

LED azul chama-se BLUE_LED ou PF_2