Pplware

Vamos programar com o Arduino – #03: Pinos

Nos tutoriais anteriores vimos como está organizada a programação do Arduino e como instalar bibliotecas. Na rubrica de hoje, vamos conhecer diferentes tipos de pinos do nosso Arduino e como programa-los.

Quando estamos a “programar” tanto um pino digital como um pino analógico temos que saber que cada um deles só pode ser um pino de saída ou de entrada (Input ou Output). Podemos pensar que o pino é uma constante do nosso programa.

Podemos declarar o nosso pino em dois locais do nosso programa, na função Setup ou imediatamente acima da função Setup, ou seja, no início do nosso programa.

int led = 6;
int botao = 4;
int sensor = A0;
void setup() {
}

É aconselhável que o façam desta forma, assim tornam o vosso programa mais organizado, ao declararem todas as variáveis, constantes e pinos fora da função Setup, porque como foi dito a no primeiro tutorial esta é só somente carregada uma vez.

Após ter sido atribuído um nome ao nosso pino, já sabemos com o que estamos a trabalhar, assim é mais fácil durante a elaboração do nosso programa. Por isso é importante que o façam e com nomes descritivos que indiquem o que aquilo pino contem ou faz.

Como podem ver no pedaço de código acima apresentado foi atribuído ao led o pino 6, ao botão o pino digital 4 e ao sensor o pino A0.

Assim, podemos verificar que o nosso Arduino tem dois tipos de pinos, digitais e analógicos.

Pinos Digitais

Quando falamos em pinos digitais falamos em pinos que simplesmente suportam valores booleanos (Verdadeiro ou Falso) ou binários (0 ou 1). Nomeadamente servem para ligar ou desligar qualquer componente digital que temos cupulado a esse pino.

Além desse tipo genérico dos Pinos digitais, alguns desses pinos no Arduino podem ter uma função um pouco mais elaborada, esses pinos são designados PWM (Pulse With Modulation).

Estes pinos têm como função obter resultados analógicos num formato digital. Como foi dito mais acima um pino digital normal simplesmente serve para indicar se algum componente está a 1 ou a 0, nada mais. No entanto os pinos digitais PWM, indicam-nos o ciclo de tempo em que esse pino está a 1(5V) ou a 0(0V). Este tipo de sinal digital é nomeadamente usado em motores, para conseguirmos obter um melhor controlo e precisão. Mais à frente nesta serie de tutoriais iremos falar sobre como programar motores e aí vamos debater mais a fundo este tipo de sinal PWM. É também de chamar a atenção que nem todas as portas digitais são PWM, somente algumas do nosso Arduino. O numero de portas PWM depende do tipo de Arduino que estejamos a utilizar, por exemplo o Arduino Uno tem 14 portas digitais, em que das quais 6 delas são PWM. Podemos imediatamente identifica-las na nossa placa, pois contem o símbolo (~) junto ao numero da porta.

Pinos Analógicos

Os pinos analógicos são um pouco diferentes dos pinos digitais, quanto que os digitais só nos mostram valores de 1 ou 0, os pinos analógicos mostram valores analógicos de um tamanho de 10 bits, ou seja, entre 0 a 1023. Este tipo de pinos são muito utilizados em sensores analógicos como o caso do sensor de temperatura, onde queremos saber valores intermédios para definir uma temperatura.

Agora que temos uma ideia mais apurada sobre estes dois tipos de pinos, vamos proceder para a configuração dos mesmos. Antes de enviarmos ou recebermos dados por os pinos desejados, temos que definir o tipo de pino, se é de entrada ou saída. Essa configuração é feita na função Setup.

void setup() {
pinMode(led,OUTPUT);
pinMode(sensor,INPUT);
pinMode(botao,INPUT_PULLUP)
}

Como podemos observar no código acima, na função Setup, foram definidas o tipo de pinos. O primeiro a ser configurado foi o Pino do Led, está definido sendo de Saída (Output), ou seja, os dados vão sair do nosso Arduino pelo pino 6 que é o do Led e assim dar uma instrução a esse componente, que neste caso é ligar ou desligar o Led.

O sensor, foi definido como Entrada (Input), ou seja, vai enviar informação do sensor para o nosso Arduino através da porta digital A0.

A ultima configuração é um pouco diferente, por um lado estamos a entender que o botão vai ser de Entrada(Input), mas contem algo a mais. Quando estamos a introduzir algum botão no nosso Arduino nomeadamente um botão de momento, em que só acontece alguma coisa enquanto se está a pressionar nele é aconselhavam utilizar o INPUT_PULLUP. Pois, os botões de momento transmitem 5V ou 3.3V de uma maneira muito repentina, ou seja, assim que nos pressionamos o botão ele passa dos 0V para os 5V ou 3.3V de uma maneira imediata, isto sempre que carregamos no botão, seja uma vez, sejam 1000 vezes seguidas. Como podem imaginar se não houver algum tipo de mecanismo que de controlo a porta do nosso Arduino pode queimar. O INPUT_PULLUP é esse mecanismo de defesa, ao darmos a indicação PullUp na configuração do pino, essa instrução indica que para aquele pino especifico é necessário ativar a resistência PullUP. Essa resistência vai assegurar que a repentina mudança de tensão não prejudique a nossa placa.

Assim que já temos definido o tipo de pinos que vamos utilizar, podemos passar a fase em que colocamos os nossos pinos a receber ou a enviar dados. Como falamos no primeiro tutorial tudo o que for parte logica do nosso programa é colocada na função loop.

void loop() {

digitalWrite(led,HIGH);

analogRead(sensor);

digitalRead(botao)

}

Como podemos observar no código, colocamos que íamos escrever na porta digital 6 que é a do nosso led, vamos ler da porta analógica A0 que é a do nosso sensor e que novamente ler da porta digital 4 que é onde está ligado o nosso botão.

Como podemos verificar por este tutorial, trabalhar com os pinos do Arduino é bastante simples, mas é necessário que tenhamos em atenção o que queremos fazer e o que utilizar.

Exit mobile version