O iniciante precisa aprender o Bê-a-Bá para poder fazer suas peripécias. Pois bem senhores... apresento o tutorial mais básico para os aventureiros que queiram desbravar o mundo do Arduino.
Está pronto para "picar a mula"?
1-O básico da programação:
Vamos dar uma olhada nessa "belezura"? Note os dois blocos distintos de instruções entre chaves:
void setup() {
// Escreva o código que será executado apenas uma vez.
}
void loop() {
// Escreva o código que será executado infinitas vezes
}
A função setup() é chamada quando o código(sketch) é executado.
Use-a para:
- Iniciar variáveis.
- O modo como os pinos devem operar: entrada(INPUT) ou saída(OUTPUT)
- Bibliotecas.
- Cabeçalhos
Caso o botão de reset que se encontra na placa do arduino for pressionada ou a energia cair o código será reinicializado e nessa condição especial o setup() novamente é executado.
A função loop() tem um propósito fundamental repetir infinitamente o que está escrito. Bem... mas qual a finalidade disso?
Ao repetir a mesma função o microntrolador nunca para de funcionar. Imagine como seria se ao digitar uma letra seu editor de texto parasse de funcionar e fosse preciso abri-lo novamente para escrever a outra letras da palavra? Ou após um carro passar num semáforo de trânsito as luzes não brilharem mais?
Basicamente o loop() será o seu escravo e o setup() dirá como o escravo se comporta.
Usa-se: // (duas barras invertidas) para fazer cometários na linha de código. O objetivo é deixar o mais claro possível para que terceiros possam entender.
Tudo que é deixado como comentário será descartado no momento da gravação no microcontrolador.
2-O Primeiro Projeto com seu Arduino
Para este projeto será preciso um LED , um resistor e fios e uma matriz de contatos:
Aprendendo um pouco sobre os compoentes:
O Led é um componente polarizado e deve ser corretamente conectado. Perceba que o polo positivo possui uma perna maior.
Alguns Leds apresentam o polo negativo com um chanfro(parte ligeiramente plana) no seu encapsulamento.
Temos no Arduino:
- VCC(+)
- GND ou Ground como (-).
O resistor é um componente que oferece resistência a passagem da energia elétrica. Ao combina-lo com outros componente pode-se fornecer a energia correta para alimentar componentes.
O filamento de tungstênio das lâmpadas incandescentes é uma resistência que transforma grande parte da energia que flui por ele em energia térmica e luminosa.
As faixas de cores determina quanto é maior essa resistência.
A matriz de contatos possui apenas pontos interligados num sentido vertical. O que permite combinar e interligar os componetes rapidamente.
Veja na imagem abaixo duas fileiras independentes("A" e "B") com seus respectivos pontos interligados.
Os fios: existem modelos de fios que permitem uma fácil conexão. Dê preferência para estes modelos, pois vão garantir ligações seguras e a rapidez na montagem e manutenção do circuito.
2.1-A montagem do Projeto:
Agora que está munido destes componetes e de como eles operam monte o circuito abaixo:
Valores de resistores entre 220R e 10k podem ser usados.
Após a montagem copie o código abaixo e cole na interface de programação do arduino e faça o upload, após alguns segundos ele executará automaticamente:
/*
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
void setup() {
pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}
void loop() {
digitalWrite(12, HIGH); // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(1000); // Espera por 1s
digitalWrite(12, LOW); // Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(1000); // Espera por 1s
}
Comentando o código:
Este é o código chamado Blink. Nele temos declarado no setup() que usaremos o pino 12 do Arduino e este não fará leitura de dados mas enviará por isso Saída(OUTPUT).
Temos no loop() duas tarefas sendo executadas:
- digitalWrite(12,HIGH); diz que o pino 12 é o polo + que alimenta o LED. Logo há um polo(+) e outro (-) e o Led liga pois é possível fluir a energia.
- digitalWrite(12,LOW); diz que o pino 12 é o pólo - logo não há fluxo de energia com dois polos(-) e o LED fica desligado.
- delay(1000); esté entra na brincadeira para dizer: OPA! Calma ai... espere um pouco. E para cada "1000" temos 1s, logo se tivessimos 5000 teríamos um atraso de 5s.
Veja o vídeo como funciona:
3-Modificando o Código:
Após fixar bem os conceitos elucidados vamos modificar o código e ver o que acontece.
M1-Execute o código:
/*
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
void setup() {
pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}
void loop() {
digitalWrite(12, HIGH); // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(100); // Espera por 1s
digitalWrite(12, LOW); // Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(100); // Espera por 1s
}
Comentário sobre o código:
Observe que o valor do delay() foi modificado de (1000) para (100). O que aconteceria se fosse (10) ou qualquer outro valor?
Experimente modificar e perceba que ligando e desligando algo temos comportamentos de piscar diferentes.
M2-Execute esse outro código:
/*
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
Tutorial desenvolvido por Gamesh_ com base no Exemplo de domínio público: Blink
http://brasilrobotics.blogspot.com/
*/
void setup() {
pinMode(12, OUTPUT); //Declara que o pino 12 do arduino é de Saída. Vai mandar dados, energia...
}
void loop() {
digitalWrite(12, HIGH); // Diz que o pino 12 do arduino está Ligado. Logo LED ON
delay(random(100)); // Espera por 1s
digitalWrite(12, LOW); // Diz que o pino 12 do arduino está Desligado. Logo: LED OFF
delay(random(100)); // Espera por 1s
}
Comentário sobre o código:
Substituímos no delay() o valor de (1000) por: random(100). O que queremos com isso?
Já ouviu falar em números randômicos? Aleatórios? O random() gera números aleatórios. Mas ao inserir um valor como 100 em random() estamos informando que o número deve variar entre 0 e 99 ou seja: entre 0 e (100-1).
Logo: temos um comportamento inesperado no piscar do LED, o que gera um efeito interessante.
Experimente o seguinte:
- Pegue alguns centímetros de um papel branco. Papel higiênico é excelente.
- Amassar bem e posicionar sobre o LED.
- Mude a cor do LED para testar os efeitos.
Veja no vídeo o efeito com um LED Vermelho:
Gostou do tutorial? Incentive mais tutoriais visitando:
17 comentários:
Caracas,
muito facil de entender !!!
Muito bom! Essa explicação me ajudou muito... Eu mal sabia por onde começar, e agora até consegui fazer uns códigos diferentes com base nesse!
Valeu.
Eh interessante salientar que se deve clicar em (tools) e escolher o arduino que se esta trabalhando.
E tambem em (tools) escolher a serial port que esta sendo usada pelo arduino.
mas de resto tudo certo =D
muito didatico. gostei da parte do random.
Muito bom o tutorial, aliás, o site inteiro muito bom, com muito conteudo, fácil de entender os tutoriais e bem didático...Parabens.
ola, comprei uma copia do arduino, mas não consigo de jeito nenhum fzaer o pc reconhecer a placa (revolution arduino) uso o xp home basic. poderia me ajudar?
alberto brasilia DF
ola
Veja os tutorias e aulas do arduino.
Temos uma loja com produtos de qualidade e garantidos caso queira compra um sem problemas viste aLoja do Brasilrobotics.
Estou iniciando em Arduino e gostaria de saber qual material necessário para construir uma matriz de leds 24x8
igual a essa http://www.youtube.com/watch?v=SRjeJqdbNkM
Me indiquem qual material comprar aqui na loja, obrigado
msn erivelton42@hotmail.com
Sobre reconhecimento de placa veja tutorial:
http://brasilrobotics.blogspot.com.br/2011/03/como-instalar-drivers-da-usb-do-arduino.html
Sobre matriz de led:
http://lojabrasilrobotics.blogspot.com.br/2010/10/74hc595-r400.html
http://lojabrasilrobotics.blogspot.com.br/2011/01/matriz-led-8x8-r-1000.html
Eu percebi que a fonte de tensão está ligada primeiro no led e posteriormente no resistor, perdoa-me minha ignorância, mas não tinha que estar ligado primeiro no resistor e depois ao led?
não sei porque mais meu Led só fica acesso ele não pisca nem quando eu mudo o delay , ele fica permanentemente acesso. Se tiver como me ajudar agradeço.
yghor_07@hotmail.com
Parabéns pelo Site, sempre tive interesse de aprender sobre arduíno e aqui foi o único lugar que achei que não apenas nos joga códigos e esquemas, mas explica oq tem por trás disso ... Ja sou um fã do site!
Obrigado pelos desenvolvedores e todos os envolvidos!
É possivel fazer a experiencia sem a matriz de contatos e sem os fios?
Muito bom! Didático e super fácil, amei o site. 💙
Leia meu nome
Maria joakina num mi ama vomi mataaaaa
Quer ver meu 10 dedo hehehehe
Postar um comentário