Arduino: Introdução
Autor: Yago Souza Oliveira | Publicado: 2014-02-20T16:14:00-03:00





O Arduino é um microcontrolador que você pode programar e usar para controlar circuitos. Ele interage com a mundo exterior através de sensores, leds, motores, alto-falantes ... até mesmo a internet, o que o torna uma plataforma flexível para diversos projetos. Alguns usos populares incluem:
- Luz displays programáveis ​​que respondem a música ou a interação humana
- Robôs que utilizam informações dos sensores para navegar ou realizar outras tarefas
-, Controladores e interfaces customizáveis ​​originais para músicas, jogos, e muito mais
- Conectando objetos do mundo real para a internet (Twitter é especialmente popular)
- Qualquer coisa interativo
- Automação e prototipagem

Há toneladas de Projetos Arduino incríveis publicadas on-line, aqui estão alguns dos meus favoritos:

Twitter Mood Light por RandomMatrix, uma luz que muda de cor dependendo do que tipo de palavras emocionais são tendências no Twitter




Nebulophone Synth&nbsp;de&nbsp;Bleep Labs:




Há alguns microcontroladores no mercado hoje , mas o Arduino se destaca do resto por conta da comunidade online ativa em torno dele. Se você procurar no google ou youtube, você vai encontrar toneladas de grandes idéias de projetos e informações para você começar . Mesmo que você não pode ter qualquer tipo de programação ou experiência de trabalhar com um microcontrolador , o Arduino é simples de se levantar fazer, além de ser uma maneira divertida de aprender sobre eletrônica através da experimentação .

Para este projeto que você vai precisar de:

(1x) Arduino Uno
(1x) cabo usb (tipo para impressora)
(1x) Protoboard
(1x) fios jumper
(1x) LEDs vermelhos
(1x) Resistores de 220ohm

Neste post eu vou estar usando 123D circuitos para demonstrar e simular os circuitos , as simulações de circuitos embutidos funcionam melhor com o navegador Chrome.




Primeiro vamos dar uma olhada em todas as partes do Arduino . O Arduino é essencialmente um pequeno computador que pode se conectar a circuitos elétricos . O Arduino Uno é alimentado por um chip Atmega 328P , é o maior chip da placa. Este chip é capaz de executar programas armazenados em sua (muito limitada) memória.

Podemos carregar programas para o chip via USB usando o Arduino IDE ( baixar isso se você não tiver) . A porta USB também fornece energia para o Arduino . Alternativamente, poderíamos ligar uma placa programada usando o conector de energia , nesse caso , não precisamos de uma conexão USB.

O Arduino tem algumas linhas de pinos que pode conectar os fios para dentro . Os pinos de alimentação são rotuladas na imagem acima. O Arduino tem tanto um 3.3V ou 5V , neste projeto vamos utilizar a fonte de 5V , mas você pode encontrar algumas fichas ou componentes que requerem 3,3 V a correr, nesse caso, o fornecimento de 3.3V será útil. Você também vai encontrar alguns pinos rotulados como " GND " no Arduino , estes são pinos de terra ( terra é a mesma coisa que 0V) . A corrente elétrica flui sempre de alguma tensão positiva para a terra , para que estes pinos são úteis para completar circuitos , vamos usá-los muitas vezes .

O Arduino tem 14 pinos digitais , rotuladas 0-14 , que se conectam a circuitos para transformá-los ligado ou desligado, ou para medir botões e outros circuitos de 2 estaduais ( um botão de dois estados é porque ou é pressionado ou não pressionado , ao contrário para um mostrador , que tem uma gama de possíveis estados). Estes pinos podem atuar tanto como entradas ou saídas , o que significa que pode controlar um circuito ou medi-la.

Ao lado das conexões de alimentação são os pinos de entrada analógica, rotulados A0- A5. Estes pinos são usadas para fazer as medições de sensores analógicos ou outros componentes . As entradas analógicas são especialmente bons para medir as coisas com uma gama de valores possíveis. Por exemplo, um pino de entrada analógica vai deixar-nos medir a quantidade de flexão de um sensor flexível , ou a quantidade que um mostrador foi transformada . Você pode usar uma entrada analógica para medir um componente digital (como um botão).







A protoboard permite que façamos conexões elétricas temporárias entre os componentes para que possamos testar os circuitos antes que permanentemente solda-los. Toda essa classe será feito em uma placa de ensaio para que possamos reutilizar componentes e fazer mudanças rápidas para um circuito.

Protoboards tem fileiras de buracos que você pode conectar cabos ou outros componentes elétricos. Alguns destes furos estão eletricamente ligados uns aos outros através de tiras de metal na superfície da parte de baixo da placa de ensaio . Veja como funcionam as conexões :

Uma de cada lado da placa de ensaio , duas filas de orifícios estão ligados ao longo de todo o comprimento da placa. Geralmente, você irá conectar esses longos "rails" para 0V ( também chamado de " terra ) e qualquer tensão que você está usando para poder ( neste projeto, vamos utilizar 5V do Arduino), para que essas conexões estão disponíveis em todos os lugares na linha . Neste caso , a primeira coisa que você tem que fazer são essasessas conexões com o Arduino, observe como eu me conectei para a linha " - " e 5V à linha " +" , sua placa de ensaio pode ou não podem ser etiquetados . Nota: às vezes estas tiras laterais só irá prolongar a meio caminho através de uma placa de ensaio mais longo, fios de uso para completar a ligação.

O resto dos furos na placa de ensaio estão agrupados em linhas de cinco até o centro da placa de ensaio. Este é o lugar onde você vai se conectar componentes elétricos uns aos outros para formar circuitos .




Como expliquei antes, a corrente elétrica flui de alta tensão para baixa tensão. Nesta aula estaremos alimentando tudo fora de 5V do Arduino , então corrente fluirá de 5V fora do Arduino , através do nosso circuito, e volta para o pino " terra " do Arduino . A primeira coisa que vai ligar um LED .

O circuito que acende um LED envolve dois componentes: um resistor e um LED. A representação esquemática do circuito é mostrado na imagem 4 acima . A resistência é representada por uma caixa retangular (você também pode vê-lo representado por uma linha em ziguezague ) . O LED é representado por um triângulo com uma linha e, normalmente, algumas setas apontando para fora , que representam a luz que sai do componente.

Então, por que precisamos do resistor neste circuito ? Esta resistência é chamado um resistor limitador de corrente , isso significa que a resistência limita a quantidade de corrente eléctrica que flui através do LED . Cada LED está classificado para uma determinada quantidade de corrente , se você passar por cima desse valor que você provavelmente irá danificar o LED . Usando a Lei de Ohm, podemos calcular o valor do resistor limitador de corrente , devemos usar o nosso LED .

A lei de Ohm é muito simples , se diz que existe uma relação linear entre corrente e tensão numa resistência de : aumentar a tensão através de uma resistência irá aumentar a corrente que flui através dele . Especificamente, diz:

V = I * R
onde
V = voltagem através do resistor
I = corrente através do resistor
R = resistência - isso é o que queremos para o cálculo
por isso, se sabemos que os valores de V e I, podemos calcular o correto R para o nosso circuito

Primeiro, precisamos calcular a tensão sobre o resistor. No circuito mostrado na imagem 4 , um total de 5V é aplicada ao circuito . A maioria dos LEDs ou 3 milímetros 5 milímetro que você irá usar exigem 3V a acender, para que a 2V restante ( 5V - 3V = 2V) é aplicado através do resistor .

Em seguida calcula-se a corrente que passa através da resistência . A maioria dos LEDs 3 milímetros ou 5 milímetros funcionar em pleno brilho em cerca de 20 mA de corrente; passando por cima pode danificar o LED , e indo sob isto fará com que o LED brilhar dimmer (mas não faz mal ) . Supondo que queremos executar o nosso LED em 20mA , sabemos que a mesma quantidade de corrente deve ser executado através do resistor , uma vez que os componentes são ligados entre si em série. Isso nos deixa com :

2V = 20 mA * R
2V = 0.02A * R
R = 100 Ohms

Assim, 100 Ohms é a resistência mínima absoluta que precisamos ter certeza de que nós não danificar o LED . Para ser seguro , é uma boa idéia para usar algo um pouco maior, apenas no caso de o seu LED tem um pouco diferentes classificações que o que eu usei aqui. Eu gosto de usar 220ohms porque eu sempre parece ter um monte de pessoas à sua volta . Se você conhece as classificações do seu LED ( você pode encontrá-lo na folha de dados do LED) e você quer fazer este cálculo , você também pode tentar usar uma calculadora online.

Em seguida, vamos conectar o LED na placa de ensaio . Ligue o resistor eo LED na parte central da placa de ensaio para que o terminal mais longo do LED é eletricamente conectada a uma das pistas do resistor (imagem 3 ) . Em seguida, conecte a outra extremidade do resistor para 5V ​​e a outra extremidade do diodo emissor de luz para a terra . Você deverá ver a luz do LED para cima.

Algumas coisas para tentar:

Observe como ligações do LED não têm o mesmo comprimento , isto é porque LEDs precisam estar em um circuito em uma orientação específica em um circuito. Atual sempre flui através de LEDS da longa ligação ao cabo curto ( na representação esquemática , a corrente flui na mesma direção apontada pelo triângulo , aqui é um bom gráfico disso) . Tente inverter a orientação do seu LED - você deve achar que o LED não acenderá se for colocado no circuito para trás.

Resistores, por outro lado , não têm uma orientação, você vai perceber que suas ligações têm o mesmo comprimento (a sua representação esquemática mostra essa simetria também). Lançando a orientação de um resistor em um circuito não terá nenhum efeito sobre o circuito - experimentá-lo .

Agora tente trocar a posição do LED e do resistor no circuito ( imagem 5). Você deve achar que isso também não afeta o circuito. Não importa se a resistência limitadora de corrente é , de um lado do diodo emissor de luz ou outro , que ainda será eficaz para proteger o LED contra o excesso de corrente .

Programação

Programas na linguagem Arduino são chamados de "sketches". Um esboço Arduino é composta por duas partes principais: a função de configuração ea função loop.

setup () - a função setup () é executado automaticamente no início de um programa de Arduino. Dentro dessa função, você vai inicializar variáveis​​, pinos, e quaisquer bibliotecas que você pode estar usando em seu esboço. A função setup () é executado somente uma vez durante um esboço Arduino, bem quando a placa está ligado ou reiniciado.

loop () - o loop () é onde a maior parte do seu programa irá viver. Esta função é executada após o setup () está completa. O Arduino vai executar os comandos dentro do loop uma e outra vez até que o conselho está desligado.


De agora em diante, a página de referência do Arduino vai ser muito útil para saber mais sobre a linguagem Arduino e ambiente de programação.

Neste exemplo vamos ligar o nosso circuito de LED para um dos pinos digitais do Arduino e virar o LED ligado e desligado com um código . Este exemplo introduz algumas funções úteis incorporadas ao idioma Arduino , são eles:

pinMode ( pinNumber , mode) - pinMode é usado durante o setup () parte do esboço para inicializar cada pino que estamos usando tanto como uma entrada ou uma saída. Não podemos ler ou gravar em um pino antes pinMode foi definido. pinMode () recebe dois argumentos - um número PIN ( cada um dos pinos do Arduino é rotulado com um número) e que do modo que queremos que o pino ( ou " INPUT" ou " OUTPUT" ) . No caso de piscar um LED , estamos enviando dados para fora do Arduino para controlar o estado do LED , por isso usamos "SAÍDA ", como o segundo argumento.

digitalWrite ( pinNumber , estado ) - digitalWrite é um comando que nos permite definir a tensão de um alfinete , quer 5V ou chão (lembre-se " terra " é sinônimo de 0 Volts) . No último exemplo, ligado um LED a uma fonte de 5V e vi que ligar , se ligar o LED a um dos pinos digitais do Arduino em vez disso, podemos transformar o LED , definindo o pino de 5V e off definindo o pino de terra. digitalWrite () também recebe dois argumentos - um número PIN eo estado do pino ( "HIGH" para 5V ​​e "LOW" para terra).

delay(TempoEmMS) - pausa o programa por um determinado período de tempo . Por exemplo , o atraso (2000) vai fazer uma pausa no programa para 2000 milissegundos (2000 milissegundos = 2 segundos) , delay (100) irá pausar o programa para 100 milissegundos (1/10 de um segundo) , e assim por diante ...

Abaixo está o código LED Blink , execute este código em seu Arduino .

//LED Blink

int ledPin = 7;//the Arduino pin that is connected to the LED

void setup() {                
  pinMode(ledPin, OUTPUT);// initialize the pin as an output
}

void loop() {
  digitalWrite(ledPin, HIGH);//turn LED on
  delay(1000);// wait for 1000 milliseconds (one second)
  digitalWrite(ledPin, LOW);//turn LED off
  delay(1000);//wait one second
}
Algumas notas sobre o código :

As linhas que começam com " / /" são comentários - Arduino ignora estes.

Você deve ter notado todos os pontos e vírgulas , pontos e vírgulas são usados ​​no final de cada comando na linguagem Arduino . Se você esquecer uma vírgula , você receberá um erro. Você vai descobrir que muitas outras linguagens de programação utilize ponto e vírgula no final de cada linha.

Neste código " ledPin " é uma variável . As variáveis ​​são usadas para armazenar informações em programas , neste esboço , eu estou usando a variável " ledPin " para armazenar o número 7. Mais tarde, no programa quando o Arduino atinge uma linha com a variável " ledPin ", ele irá avaliar a variável de acordo com seu atual valor armazenado . Assim, a linha :

pinMode ( ledPin , OUTPUT);

é avaliada por Arduino como :

pinMode (7, OUTPUT);

Na verdade , poderíamos substituir todos os usos de pinMode com o número 7 eo programa iria funcionar exatamente o mesmo, mas usando a variável nos ajuda mais facilmente ler e compreender o código.

"int" a partir da primeira linha é um tipo de dados - na linguagem Arduino , você sempre deve inicializar variáveis ​​ao declarar seu tipo. Há muitos tipos diferentes ( você pode ler sobre todos eles aqui) , pois agora tudo o que você precisa saber é que int variáveis ​​são números inteiros positivos ou negativos - você vai usá-los muitas vezes .

Abaixo está uma simulação do esboço, tente pressionar o botão play para ver como ele funciona ( funciona melhor no Chrome)
Como esperado, o LED acende-se por um segundo, em seguida, desliga-se por um segundo. Tente alterar a duração do atraso () para ver como isso afeta o tempo de piscar LED. 

Outra coisa de olhar para fora - um erro que as pessoas costumam fazer é omitir a última delay () no loop (). Experimente - você vai achar que o LED permanece aceso, sem piscar. Isso pode ser confuso para você, porque ainda temos um comando digitalWrite (ledPin, LOW) no programa. O que está acontecendo aqui é que o LED está desligado, mas o Arduino imediatamente atinge o final do loop () e começa a executar a primeira linha do loop () novamente (transformando o LED). Isso acontece tão rápido que o olho humano não pode ver o LED desligar por um breve momento, enquanto o loop está reiniciando.
É isso! Críticas e sugestões nos comentários abaixo. See you!