nesse post demonstraremos como podemos medir a intensidade de luz com o LDR que é um componente elétrico simples. Dessa forma poderemos disparar ações em nossos projetos a partir da variação de luz do ambiente ou de onde o sensor esteja localizado.
Primeiro monte o circuito colocando o LDR na protoboard e em seguida conecte um de seus terminais no pino 5V do Arduino. Conecte o outro terminal do LDR em um terminal de um resistor e em um pino analógico do Arduino. Finalmente conecte o outro terminal do resistor ao terra (GND). A imagem abaixo mostra o circuito montado:
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
Passaremos para o desenvolvimento do código desse post. Primeiro declare a variável que indica qual pino do Arduino está conectado ao LDR e em seguida configure a porta serial:
Compile e transfira o programa para o Arduino. Em seguida acesse o monitor serial e veja o valor da medida do LDR. Varie a luz do ambiente abrindo as cortinas da janela ou ligando/desligando a luz do local e veja o valor variar.
nesse post demonstraremos como podemos emitir sons de diversas frequências utilizando o buzzer. Podemos utilizar sons em nossos projetos para indicar que algo está errado e deve ser verificado, que alguma ação teve inicio ou foi encerrada e o que mais nova imaginação criar.
Esse componente envia um sinal sonoro quando circula corrente por ele. Portanto podemos variar a frequência do som do buzzer variando o tempo que o pino fica no estado HIGH e no estado LOW.
Retire a etiqueta do buzzer, confira a polaridade dos terminais (terminal positivo e negativo) e coloque-o na protoboard. Em seguida coloque um resistor no terminal negativo e ligue esse resistor ao terra da placa e conecte o terminal positivo do buzzer a um pino digital do Arduino. A figura abaixo mostra o circuito montado:
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
Passaremos agora para o código do bloco. Declare uma constante para indicar em qual pino o buzzer está conectado e uma variável com escopo global para armazenar o valor da frequência emitida pelo buzzer. Em seguida configure o pino como um pino de saída na função setup e deixe esse pino com estado LOW como mostrado abaixo:
Na função loop escreva o código para alterar o valor do pino para HIGH e aguardar o tempo da frequência do som. Em seguida altere o valor do pino para LOW e aguarde novamente o tempo:
Com o código pronto compile e transfira o programa clicando no botão com a seta para a direita e escute o buzzer emitir o som. Altere o valor da variável frequencia e carregue o programa novamente e perceba que a frequência do som variou. Você pode alterar o programa para a frequência do som variar a cada execução da função loop.
nesse post mostraremos como executar diferentes códigos na função loop a partir de um controle e também como separar partes do nosso código em funções. Esse exemplo acenderá um led diferente a cada execução da função loop com tempo de duração também diferente.
Como sempre o primeiro passo é montarmos nosso circuito. Monte três circuitos como mostrado no post Utilizando pinos digitais do Arduino para enviar sinais, ligando cada circuito em um pino digital do Arduino. Note na figura abaixo que ligamos todos os terras dos circuitos em uma linha de furos da protoboard e essa linha em um pino terra do Arduino. Essa técnica facilita a montagem do circuito e evita que precisemos de mais de um ou dois pinos de terra (GND) na nossa placa.
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
Passaremos agora para o desenvolvimento do programa. Primeiro declare três constantes para indicar em quais pinos os led estão ligados. Em seguida configure todos os pinos como OUTPUT e deixe-os com estado LOW.
O próximo passo é escrevermos as funções que controlarão os leds, onde cada uma controlará um led diferente. Uma função é declarada indicando o tipo de valor que ela retorna seguida de seu nome e uma lista de parâmetros que ela recebe. Nossas funções retornarão para a função loop o tempo que desejamos que o programa aguarde até a próxima execução e não receberá parâmetros. A imagem abaixo mostra a declaração das funções:
Escreva o código de cada função:
Primeiro o led verde deve ficar acesso por 1,5 segundo;
Na sequência esse led deve ser desligado e acionado o led amarelo por 0,5 segundo;
Finalmente o led amarelo deve ser desligado e o led vermelho ligado por 1 segundo.
O código das funções está exibido abaixo:
Agora precisamos declarar uma variável com escopo global para controlar o estado do nosso programa e para a função loop saber qual função deverá ser chamada. Podemos utilizar uma variável do tipo inteiro como mostrado abaixo:
Agora deveremos escrever o código da função loop. Essa função deverá verificar qual o valor da variável global para decidir qual função será chamada. A função correta então deverá ser executada e em seguida aguardar o tempo informado. Encerramos o código alterando o valor da variável global para a função loop chamar a próxima função na execução seguinte.
Note que nesse código utilizamos uma combinação dos operadores IF e ELSE para testar diversas condições em sequência. Todo código da função loop está mostrado abaixo:
Com o circuito montado e o código desenvolvido compile o programa e transfira-o para o Arduino e veja a execução do programa.
nesse post demonstraremos como utilizar a funcionalidade de PWM presente em algum dos pinos digitais do Arduino. Note que não existe na linguagem de programação do Arduino uma função para escrevermos valores nos pinos analógicos. Conseguimos um efeito semelhante através de uma técnica chamada PWM (pulse modulation width – modulação de comprimento de pulso).
Essa técnica consiste em criar pulsos em um pino digital que durem um determinado período de tempo. Em diversos circuitos a proporção de tempo em que o pino digital possui o estado LOW ou HIGH funciona como um sinal analógico. Utilizamos essa técnica para controlar a velocidade de motores ou a posição de um servo motor, por exemplo.
Ao contrário dos pinos analógicos, os pinos digitais de PWM possuem resolução de 256 níveis. Portanto o valor 0 significa que o pino ficará sempre em LOW, como um pino desligado. A medida que aumentamos o valor que passamos para a função aumentamos a quantidade de tempo que o pino ficará em HIGH, resultando no efeito de maior tensão no circuito e maior intensidade de luz do LED.
Para demonstrar o uso da técnica de PWM vamos variar a intensidade da luz de um led, mas dessa vez utilizaremos o led de alto brilho. Monte o circuito semelhante ao post Utilizando pinos digitais do Arduino para enviar sinais, porém tome cuidado para conectar o led em um pino digital que possua uma barra ao lado do seu nome. Essa barra indica que o pino possui a função PWM.
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
O primeiro passo no desenvolvimento do programa é a declaração da constante que indica em qual pino o resistor está ligado. Em seguida configure o pino para que ele envie sinais, utilizando a função pinMode.
O último passo é escrever a função loop para variar a intensidade de luz do led através da quantidade de tempo que o pino fica no estado HIGH. Controlamos essa quantidade de tempo pela função analogWrite que recebe como parâmetros o número do pino e o valor proporcional ao tempo que a pino ficará em HIGH.
Para variar o valor que passamos para a função digitalWrite utilizamos um laço do tipo for. Essa instrução incrementa ou decrementa o valor de uma variável automaticamente e executa um código passando esse valor até que um valor limite seja atingido. Nesse ponto é encerrada a execução desse trecho de código. Note que utilizamos duas vezes essa instrução: uma para acender o led e outra para apagá-lo.
Ligue o a placa na energia e em seguida no computador com o cabo USB. Execute o programa e veja a intensidade do led variar.
nesse post descreveremos como realizar a leitura de sinais nos pinos digitais do Arduino. Como os pinos são digitais conseguiremos apenas ler sinais do tipo ligado/desligado. Sinais do tipo analógico devem ser lidos pelos pinos analógicos do Arduino que veremos em outro post.
No exemplo desse post faremos o Arduino ler o valor de um botão identificando quando o mesmo está ou não pressionado. Porém esse código pode ser utilizado para fazer a leitura de outros componentes do circuito ou sensores dos nossos projetos.
O primeiro passo é a montagem do circuito: Coloque um botão na protoboard e ligue um de seus terminais ao pino 5V do Arduino conforme indicado pela imagem. Em seguida conecte outro terminal do botão a um resistor e esse resistor ao terra da placa. Finalmente conecte o outro terminal do botão ao pino digital que utilizaremos para ler o valor do botão.
Eventualmente você precisará trocar algum dos terminais para acertar qual terminal do botão deve estar conectado a cada componente.
As imagens abaixo descrevem o circuito através de um diagrama elétrico e um modelo de feito em simulador 123d.circuit.oi:
O próximo passo é escrevermos o programa que fará a leitura do estado do botão, para isso crie um novo arquivo no IDE. Começamos nosso programa indicando em qual pino o nosso botão está ligado através de uma constante:
Em seguida configure o pino para leitura utilizando a constante INPUT. Utilizaremos a comunicação serial através do cabo USB para mostrar o estado do botão, dessa forma saberemos que o circuito está funcionando e a placa lendo corretamente o botão.
Portanto precisamos configurar a porta serial com o uso do método begin objeto Serial. Esse método recebe o valor da velocidade de envio de dados em bits por segundos. Utilize a velocidade de 9600.
Agora deveremos escrever a função loop. O primeiro passo é a leitura do estado do pino com a função digitalRead. Quando o botão é pressionado o circuito entre o pino e o 5V da placa é fechado, circulando corrente. Nessa situação o pino estará com o estado HIGH. Quando o botão é solto o circuito é interrompido e o pino volta para o estado LOW.
Em seguida enviamos o estado do pino para o nosso computador através da comunicação serial. Para isso utilize o método println do objeto Serial. Utilizamos o controle de fluxo IF/ELSE para verificar em qual estado o pino está e enviar o texto correto. O controle IF faz uma comparação entre dois valores e executa o código entre chaves quando essa comparação é verdadeira. Já a cláusula ELSE tem seu código executado quando a comparação do operador IF é falsa.
Terminamos o programa adicionando uma chamada à função delay para podemos ver o resultado no computador.
Ligue a placa ao computador com o cabo USB e execute o programa. Em seguida abra o monitor serial para ver o resultado da execução. Pressione e solte algumas vezes o botão para ver o programa funcionando.
nesse post mostraremos o uso dos pinos digitais do Arduino para enviar sinais para nossos circuitos. Montaremos o circuito na protoboard e escreveremos um código semelhante ao exemplo blink que acompanha o IDE do Arduino. Ou seja esse pequeno projeto acenderá ou apagará um led a cada um segundo.
O primeiro passo é montarmos o circuito, portanto coloque o led na protoboard. Note que um dos terminais (também chamados perninhas) é maior que o outro, indicando o lado correto que o componente deve ser ligado. O terminal menor deverá ser ligado no terra que é um dos pinos da placa com o nome GND (ground) com o uso de um cabo macho-macho como na imagem abaixo:
Em seguida precisamos ligar um resistor no led, como na figura abaixo. O resistor evita que ocorra um curto-circuito na placa e a queime inutilizando permanentemente, pois o led não apresenta resistência substancial. Em seguida ligue o resistor a um pino digital da placa (os pinos com nomes que vão de 0 a 13). Nesse ponto temos nosso circuito montado.
As imagens abaixo descrevem o circuito através de um diagrama elétrico e de um modelo de feito no 123d.circuit.io:
O próximo passo é escrevermos o sketch (código que roda no Arduino): acesse seu IDE, selecione o menu File ->New para criar um novo arquivo com o modelo de um sketch vazio.
No sketch vazio declare uma constante que indique qual pino da placa o nosso circuito está ligado. Constantes são valores que não podem ser alterados durante a execução do código e são declaradas com a palavra-chave const. Indicamos um pino do Arduino em nossos programas através de números do tipo inteiro (int). A imagem abaixo mostra a declaração da constante que indica em qual pino o led está conectado:
O próximo passo é configurarmos o pino utilizado através da função pinMode para o pino para enviar sinais. Indicamos o pino que o pino enviará sinais para nosso circuito utilizando a constante OUTPUT.
Agora escreveremos a função loop que conterá o que o programa deve fazer, nesse caso faremos o led acender e apagar a cada 1 segundo.
Para acender o led devemos fazer com que o pino conectado a ele esteja no estado conhecido como HIGH. Nesse estado o pino apresenta 5V (em relação ao terra), circulando corrente pelo resistor e pelo led. Para deixarmos o pino conectado ao led como HIGH utilizamos a função digitalWrite. Essa função recebe como parâmetros o pino que terá o valor alterado e o novo valor do pino. Para aguardar um segundo utilizaremos a função delay.
Em seguida alteraremos o estado do pino para o estado LOW também com a função digitalWrite. Nesse estado o pino apresenta 0V (sempre em relação ao terra) e a corrente para de circular pelos componentes eletrônicos apagando o led.
Chamaremos novamente a função delay para esperar mais um segundo. Caso não coloquemos essa linha o led apagará e a função loop será encerrada. Porém como a mesma função será chamada novamente o led acenderá e tudo ocorrerá tão rápido que não veremos o led apagar.
Nesse ponto temos nosso programa pronto e podemos transferi-lo para a placa. Recomendo ligar a placa na porta USB somente quando terminar de montar o circuito para evitar acidentes que gerem curto-circuito que podem danificar sua placa.
Aguarde a placa ser reconhecida pelo IDE e envie o programa para ela. O led deverá começar a acender e apagar a cada um segundo.
nesse post veremos o funcionamento básico do site 123dcircuits.io que simula tanto o Arduino como os circuitos que ele pode controlar. Além da simulação é possível desenhar e solicitar a placa de circuito impresso para montarmos nosso circuito em definitivo.
O primeiro passo é realizarmos o registro no site que é bem simples. Em seguida podemos iniciar os nossos projetos. Uma característica interessante do site é que podemos utilizá-lo de forma grátis, mas os nossos projetos serão públicos. Para montar um projeto e deixá-lo privado é necessário o pagamento de um taxa.
Para iniciar um novo projeto, clique no botão + New, será aberto um menu lateral na direita. Em seguida clique no botão New Eletronics Lab.
Será aberta uma tela semelhante à abaixo onde é possível criarmos nosso circuito e simularmos seu funcionamento. Para adicionar os componentes a protoboard virtual clique no botão + Components, aparecerá um o painel na parte inferior da tela com os componentes.
Adicione um resistor e um led como na imagem abaixo. Se precisar utilize o botão na parte superior esquerda da tela para girar algum componente.
Agora role o menu de componentes para baixo e adicione um Arduino. Talvez você precise clicar no terceiro botão do menu superior esquerdo (figura do retângulo dentro de uma mira) para acertar o zoom e aparecer todos os componentes da tela. Em seguida faça as conexões para ligar o resistor e o led à placa. Para realizar as conexões basta clicar no furo da protoboard e arrastar o mouse até o pino do Arduino.
Para trocar a cor dos cabos de ligação basta clique no cabo desejado, será aberto um menu suspenso na tela. Em seguida abra a lista de opções e selecione uma cor.
Com o circuito virtual montado vamos adicionar na simulação o código para o Arduino. O código utilizado será o blink, que é o equivalente ao Hello World em outras linguagens de programação.
Para abrir a tela de desenvolvimento do sketch clique no botão Code Editor. Será aberta uma tela semelhante ao IDE que instalamos em nosso computador.
No código exibido apenas troque o valor da variável chamada led de 13 para 9 ou o número do pino onde você conectou o led no circuito virtual. Em seguida clique no botão Upload & Run para iniciar a simulação.
Para encerrar a simulação basta clicar no botão Stop Simulation.
O site possui outras funcionalidades como a possibilidade de desenharmos a placa PCB (placa de circuito impresso) e solicitá-la. Dedique um tempo para explorar essa funcionalidade e outras, além de utilizar outros componentes e códigos na simulação.
Como sempre, fiquem a vontade para enviar comentários com dicas, sugestões, dúvidas e críticas.
nesse post será descrito alguns componentes elétricos básicos para montarmos os circuitos dos nossos projetos. Alguns desses componentes serão utilizados somente durante a prototipagem enquanto outros farão parte permanente das nossas soluções.
Protoboard
O primeiro componente, normalmente utilizado somente durante a prototipagem, é a protoboard.
A protoboard é uma placa de prototipagem que possui diversos furos para encaixarmos os componentes eletrônicos e conectá-los com o uso dos cabos de ligação. Os furos em linha são interligados para conectarmos diversos componentes sem o uso de cabos simplificando a montagem dos circuitos. Essas interligações estão mostradas na figura acima pelas linhas vermelhas.
Cabos jumper
Utilizamos os cabos de ligação do tipo jumper para montarmos nossos circuitos com o auxilio da protoboard. Esses cabos permitem montarmos os circuitos conectando os pinos dos componentes e das placas ao protoboard. Existem três tipos de cabos cumpres, com diferentes comprimentos:
macho-macho: cabo que possuí pinos de conexão nas duas pontas;
macho-femea: cabo que possuí pino de conexão em uma das pontas e um orifício para conexão da outra ponta;
femea-femea: cabo que possuí orifício de conexão nas duas pontas.
Led
Led é um componente elétrico que emite luz quando circula corrente por ele. Note que um dos terminais (também chamados perninhas) é maior que o outro, indicando o lado correto que o componente deve ser ligado. Utilizamos leds nos circuitos para sinalizarmos que o circuito está energizado ou que algo está acontecendo.
Resistores
Resistor é um componente que apresenta resistência para a passagem de corrente elétrica limitando essa corrente no circuito. Utilizamos os resistores para evitarmos curto-circuito que podem danificar nossa placa e outros componentes ou para controlar a corrente elétrica. Existem resistores com diversos valores de resistência.
Você pode conferir o valor de um resistor a partir das faixas coloridas que estão no corpo do componente. A tabela abaixo fornece os valores de cada faixa:
Cor
Valor
Preto
0
Marrom
1
Vermelho
2
Laranja
3
Amarelo
4
Verde
5
Azul
6
Violeta
7
Cinza
8
Branco
9
O valor do resistor pode ser calculado pela segunda fórmula:
[(10 x F1) + F2] x 10F3
Onde:
F1 = valor da primeira faixa;
F2 = valor da segunda faixa;
F3 = valor da terceira faixa.
A quarta faixa é a margem de erro do resistor, onde a faixa dourada significa +/-5% e a faixa prateada +/-10%.
Potenciômetro
Um potenciômetro é um resistor que podemos variar o valor de sua resistência. Esse componente possui três terminais, porém apenas o terminal central possui resistência variável. A resistência é variada ao giramos a haste que movimenta um cursor ligado ao terminal central sobre um resistor que está conectado aos outros dois pinos.
Buzzer
Buzzer é um componente que emite som quando é atravessado por uma corrente elétrica. Assim como os leds esse componente tem um terminal positivo e outro negativo, ou seja, devemos tomar cuidado para não invertermos os pinos. Podemos utilizar buzzer para emitir indicadores sonoros como alarmes.
Micro botões (microswitch)
Um micro botão é um botão que ao pressionarmos um circuito interno é fechado e outro é aberto. Utilizamos esse componente para disparar um evento que pode iniciar ou interromper uma ação em nossos projetos.
Ao utilizar um micro botão deve-se conferir se estamos utilizando os terminais corretos, pois existem terminais que são fechados com o botão não pressionado mas que serão abertos quando pressionarmos o botão e outros terminais que possuem o comportamento contrário.
Sensor de luminosidade LDR
O sensor de luminosidade também é conhecido como fotoresistor. Ele apresenta resistência variável de acordo com a luminosidade que incide sobre ele, ou seja, quanto mais claro menor será a resistência do componente, consumindo menos tensão. Portanto esse componente pode ser utilizado para disparamos ações baseados na intensidade de luz do ambiente ou que está direcionado para ele.
Sensor de temperatura
Sensores de temperatura são utilizados para disparar algum evento em nossos projetos. Esse tipo de componentes apresenta resistência variável de acordo com a temperatura que está exposto.
Podemos utilizar shields prontos, tanto para Arduino como para Raspberry PI ou componentes elétricos, como o sensor LM35. O sensor de temperatura LM35 normalmente é mais barato que shields e possuí a vantagem que ele varia a resistência do terminal central de forma proporcional à temperatura em graus Celsius (°C).
Finalizamos aqui o conteúdo desse post. Deixem comentários caso tenham dúvidas ou quiserem que seja adicionado outros componentes no post.