Várias entradas e saídas para o Arduino
Nota: caso não saiba programar então sugiro olhar antes o post Arduino Programming Notebook – Tradução que contém a tradução do mini livro “Arduino Programming Notebook” que lhe ajudará a começar no mundo da programação em conjunto com o Arduino. Para você que já programa em C ou C++ e está interessado em aprender a programar Arduino esse guia será perfeito. Dividirei em 3 partes:
Não temos tempo a perder então vamos. PARTE 1: Layout, possíveis funções dos pinos, capacidades do ArduinoArduino é uma plataforma de desenvolvimento que é constituída de uma placa com um chip microcontrolador ( que faz o papel da CPU) e demais componentes eletrônicos para fazer com que o microcontrolador funcione. Dica1: o microcontrolador é diferente de um processador pois o microcontrolador já possui memória de programa e memória RAM, tudo integrado num único chip. É um computador inteiro em um único chip, mas bem mais modesto pois possui apenas kbytes de RAM e alguns kbytes de memória de programa e alguns MHz de clock. Dica2: os shields são plaquinhas que são colocadas por cima do Arduino para dar alguma funcionalidade que ele não tem como Relés, WIFI, Bluetooth, Ethernet, etc… Continuando… existem diversos modelos(placas) de Arduinos. A escolha mais comum para começar tem sido o Arduino UNO (com microcontrolador Atmega328). Depois vem o Arduino nano (também com o Atmega328) ou o Arduino Mega (pode vir com microcontrolador “Atmega 1280″ ou o “Atmega 2560″ que tem mais memória) na lista dos mais usados. Iremos usar o Ardunio UNO por ser o mais comum. A primeira coisa a se fazer antes de comprar
Cada pino pode executar mais de uma função. Cabe a você configurar durante o programa o que o pino vai ser. Cada pino tem suas capacidades, ou seja, existem pinos que podem receber sinais analógicos já outros não. Para comunicar com o mundo externo o pino pode funcionar como entrada (analógica ou digital) ou saída (analógica ou digital). Do lado esquerdo podemos ver A0 até A5 elas são entradas analógicas. Mais na frente veremos que podem ser configuradas para serem entrada ou saída digital. Do lado Direito temos os pinos Digitais. Eles podem ser entradas ou saídas digitais. E como veremos adiante os que tem um ~ (til) tem também a função de PWM que podemos considerar a grosso modo como “saídas analógicas”. Vamos aprofundar nos pinos: DIGITAIS:Cada um dos 14 pinos digitais (lado direito da placa do Arduino Uno) podem ser utilizados como uma entrada(input) ou saída(output), usando as funções pinMode(), digitalWrite(), e digitalRead(). Os pinos operam em 5 volts. Cada pino pode fornecer ou puxar(aterrar) no máximo 40 mA e possuem resistores internos de pull-up (desconectados por padrão) de 20-50 kOhms. E ainda mais, alguns pinos podem ter funções especiais:
ANALÓGICAS:O Uno possui 6 entradas analógicas, de nomes A0 até A5, cada uma com uma resolução de 10 bits (o que dá 1024 valores diferentes). Por padrão elas são medidas a partir do terra até os 5 volts, mas é possível mudar a referência de tensão superior para outro valor utilizando o pino AREF e a função analogReference(). Conforme os pinos digitais, os pinos analógicos também possuem funções especiais:
Outros Pinos:
A pinagem é idêntica para o Atmega8, 168, e 328. Imagem retirada de mapping between Arduino pins and ATmega328 ports. Não se assuste com a quantidade de informação dessa figura abaixo, aconselho a imprimir e olhar quando for escolher um pino para executar alguma função. Imagem retirada de www.pighixxx.com. Agora de posse da informação sobre os pinos e suas possíveis funções vamos para a 2ª etapa. PARTE 2: Estrutura básica dos programas e quais funções chamar para acessar os recursos dos pinos(analogico, digital, i2c pwm, etc)Começamos com a filosofia de que “meio byte basta para programadores de nibbles” Caso não tenha baixado e configurado a plataforma de desenvolvimento do Arduino (IDE) clique aqui. A estrutura básica dos programas do Arduino é a encontrada no exemplo Bare Minimum. Conforme resumo abaixo: Podemos observar que temos dois blocos que sempre existirão nos códigos Arduino: o setup e o loop. SETUP: No setup você vai escrever o código que vai configurar o arduino para iniciar sua aplicação. Nesse bloco você informará cada pino que quer usar (seu numero) e como quer que o pino funcione, se saída (Output) ou entrada (Input). Como assim? Bem, digamos que você queira ligar um led no pino 12. Para isso você tem que informar ao arduino que o pino 12 será usado como uma saída (Output), ou seja, voce controlará o pino 12 e vai enviar tensão 0v ou 5v para ligar ou desligar coisas, nesse caso o Led. LOOP: Já o bloco Loop é a sessão que ficará sendo repetida e o programa efetivo deverá estar nele contido. Como no bloco anterior (setup) configuramos os pinos e/ou as bibliotecas… nesse novo bloco Loop iremos usar os comandos que forem necessários para que o Arduino faça o que queiramos e interaja com o meio. Concluindo: Então o programa mínimo para que a interface do Arduino não nos mostre erro é o Bare Minimum (mínimo possível) exibido abaixo: void setup() {// aqui você escreve o código para configuração inicial, que roda apenas uma vez.}void loop() {// aqui coloca o código principal, que ficará sendo repetido.}Você encontra esse programa em (File>Examples>01.Basics>BareMinimum). Agora vamos para uma tabela resumo das funções (mais comuns) que podemos usar: Durante o SETUP:
Durante o LOOP: OBS: para usar comando que atribua valor ao pino (comandos com “Write” ) você tem que ter declarado no SETUP que o pino seria OUTPUT. Da mesma forma se você vai ler o valor de um pino (comando com “Read”) tem que declarar antes no SETUP que o pino seria INPUT.
E para você que quer aprofundar sobre as funções disponíveis pela biblioteca padrão visite a Referência completa de funções do Arduino. Continuando… analise estes programas: Blink , Fade e ReadAnalogVoltage e perceba que eles utilizam as funções descritas acima. O básico da parte da programação é essa… pois de posse dela você já é capaz de ligar e desligar dispositivos, controlar “analogicamente” através de PWM, consegue saber o estado de um botão lendo o pino de forma digital e finalmente consegue ler as entradas analógicas para interfacear termistores ou potenciômetros etc… Parte 3: Conectando alguns periféricos nas portas do Arduino ( resumo).Ando sem tempo para postar material mas venho colocar aqui pelo menos os esquemas sem as explicações por enquanto desse tópico 3. Todas as imagens abaixo foram retiradas do site http://pighixxx.tumblr.com/ . Vale a pena visitar o site e olhar as muitas outras imagens. O autor das imagens não permite na licença a tradução, somente a cópia idêntica. Então escreverei abaixo de cada imagem explicações em português. OBS: geralmente o sinal marcado com “IN” nos diagramas abaixo deverão ser conectados ao Arduino em uma porta configurada como entrada. Descrição da 1 imagem:
Descrição da 2 imagem: Em breve… Descrição da imagem 3: Em breve… Descrição da imagem 4: Em breve… Descrição da imagem 5: Em breve… Descrição da imagem 6: Em breve… Descrição da imagem 7: Em breve… Descrição da imagem 8: Em breve… Descrição da imagem 9: Em breve… Descrição da imagem 10: Em breve… Descrição da imagem 11: Em breve… Descrição da imagem 12: Em breve… Descrição da imagem 13: Em breve… Descrição da imagem 14: Em breve… Descrição da imagem 15: Em breve… Descrição da imagem 16: Em breve… Descrição da imagem 17: Em breve… Descrição da imagem 18: Em breve… Descrição da imagem 19: Em breve… Descrição da imagem 20: Em breve… Descrição da imagem 21: Em breve… Descrição da imagem 22: Em breve… Espero que este tutorial tenha ajudado em alguma coisa Até a próxima. |
One Comment
Deixe uma resposta
- Robótica na Educação
- Utilização de LEGO, Arduino e Scratch na educação
- LEGO
- Arduino
- S4A
- S4A Conexões
- Modificando o S4A.
- Minibloq
- Curiosidades, macetes, hacking.
- Outros sistemas de programação, orientados a objet
- Arduino - Programas em C
- Pinos do Arduino
- Várias entradas e saídas para o Arduino
- Livros
- Softwares de programação visual
- Scratch
- Robos feitos com sucata
- Coisas doidas
- Outros sistemas de montagem
- Literatura relacionada
- Tutoriais
- Glossário
- Programas
- Trabalhando com imagens
- Área Reservada
- Contactos
super blog train instructif il ma rendu bien des service je remerci son auteur pour la qualité