domingo, 11 de agosto de 2013

Linguagem Arduino - Funções

  • pinMode()
- Descrição: Configura a porta especificada para se comportar tanto como entrada ou saída.

-Sintaxe:
  1. pinMode(pin,mode);
- Parâmetros:
  1. pin: O número da porta que você deseja configurar.
  2. mode: INPUT para entrada, OUTPUT para saída
  •  digitalWrite()
-Descrição: Altera o estado da porta para HIGH(alto=1) ou LOW(baixo=0) de uma porta digital.

-Sintaxe:
  1. digitalWrite(pin,valor);
-Parâmetros:
  1. pin: O número da porta digital.
  2. valor: HIGH ou LOW.

  • digitalRead()

-Descrição: Lê o valor de um pino digital especificado, alta ou baixa. 

-Sintaxe:
  1. digitalRead (pin);

-Parâmetros

  1. pin: o número do pino digital que você quer ler (int).
Retorna: HIGH ou LOW.


Linguagem Arduino - Estrutura

Setup ():

 A função setup () é chamado quando o programa começa. Use-o para inicializar variáveis​​, modos de pino, comece a usar as bibliotecas, etc A função será executada apenas uma vez, após cada energização ou redefinir da placa Arduino.

Loop ():

Depois de criar o setup () , que inicializa e define os valores iniciais, o loop ( faz exatamente o que seu nome sugere, e laços consecutivamente, permitindo que o seu programa  mudar e reagir. Usa-se para controlar ativamente a placa Arduino.

Estruturas de Controle
  • if / else

  O if / else permite um maior controle sobre o fluxo de código do que o básico if, permitindo que vários testes sejam agrupados. Por exemplo, uma entrada analógica podem ser testadas e uma ação feita se a entrada foi inferior a 500, e uma outra ação, se a entrada foi de 500 ou superior. O código ficaria assim:

if (pinFiveInput <500)
{
   / / Ação A
}
else
{
   B / / ação
}


mais pode proceder de outra, se teste, para que os vários testes, mutuamente exclusivos podem ser executados ao mesmo tempo.
  •  For  
A declaração é usado para repetir um bloco de instruções entre chaves. Um contador de incremento é geralmente usado para incrementar e encerrar o loop. A declaração de é útil para qualquer operação repetitiva, e é frequentemente usado em combinação com matrizes para operar em coleções de dados / pinos.

três partes para o cabeçalho loop:

for (inicialização; condição, incremento) {

/ / declaração (s);

}

Inicialização: é geralmente uma atribuição que determina o valor inicial da variável de controle. Esta declaração pode ser feita antes do laço e desta forma, não necessita se declarada no escopo do comando.

Condição: é uma expressão que determina o final do laço ou o valor final da variável de controle.

Incremento: define com a variável de controle do laço varia cada vez que o laço é repetido.

Ex: 

void setup()
{
  // no setup needed
}

void loop()
{
   for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   } 
}

  • Switch Case   
Como if as declarações, switch ... Case controla o fluxo de programas, permitindo que programadores especificar código diferente, que deve ser executado em várias condições. Em particular, uma indicação do interruptor compara o valor de uma variável aos valores especificados nas declarações de caso. Quando uma instrução case é encontrada, cujo valor corresponde ao da variável, o código em que a declaração caso seja executado.

-sintaxe

switch (var) {
  case label:
     / / Declarações
     break;
   case label:
     / / Declarações
     break;
   default:
     / / Declarações
}


-parâmetros

var: a variável cujo valor para comparar com os vários casos

label: um valor para comparar com a variável.
ex:
   switch (var) {
     case 1:
       / / fazer algo quando var é igual a 1
       break;
     case 2:
       / / fazer algo quando var é igual a 2
       break;
     default:
       / / Se nada mais jogos, faça o default
       / / Default é opcional
   }
 
 
  
  • While

While será repetida continuamente, e infinitamente, até que a expressão dentro dos parênteses (), torna-se falsa. Algo precisa mudar a variável testada, ou o loop while nunca vai sair. Isto pode ser no seu código, tais como uma variável incrementado, ou a uma condição externa, tal como um sensor de teste.

-sintaxe

while (expressão) {
   / / Declaração (s)
}


-parâmetros

expressão - uma declaração (boolean) C que avalia para verdadeiro ou falso

ex:

var = 0;
while (var <200) {
   / / Fazer algo repetitivo 200 vezes
   var + +;
}
    




  • Do -While

O circuito que funciona da mesma maneira como o laço While, com a exceção de que a condição é testada no final do ciclo, de modo que o laço do irá sempre executar pelo menos uma vez.


-estrutura:

do // fazer
{
     / / Declaração de bloco
} While (condição de teste); // enquanto

 ex:
 
do
{
   delay (50); / / espera para sensores para estabilizar
   x = readSensors () / / verificar os sensores

} While (x <100);
 
       
                       
                                                     

sábado, 10 de agosto de 2013

Conhencendo o software arduino/ linguagem arduino

Para enteder como funciona o software e a linguagem arduino, vamos começar com um exemplo basico, que vamos pegar um exemplo do proprio software, então, abra o seu software e clicle em FILE>EXAMPLES> 1.BASICS > BLINK como mostrado na figura abaixo:
Feito isto, o código do programa irá aparecer na  sua tela.

Codigo:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);    
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}


Para iniciar o entendimento do código, devemos observar  que a liguagem arduino é praticamente igual á C, só que com algumas funções novas. Então, para quem já sabe C, ou tem uma pequena base, já facilita muitoo. Então vamos agora entender a estrutura do progama. Em todos os programa do arduino há uma ordem a ser respeitada:

1. Estrutura de Inclusão de Bibliotecas
2. Estrutura de Declaração de Variáveis
3. Estrutura Setup
4. Estrutura Loop
5. Demais estruturas de funções

O que são estas 5 estruturas citadas acima?


O diferencial de uma placa como o Arduino está profundamente ligada à estrutura de numero 1 citada acima. Quando você estiver pensando em fazer algum projeto mirabolante, você pode ter certeza que há 90% de chances de alguém já o ter feito. Desta forma, quando alguém já o fez, é bem provável que este alguém, em qualquer parte do mundo, já tenha escrito toda uma biblioteca para fazer o tal projeto. Então vá no google e escreva ARDUINO "(nome da biblioteca que você pensa em fazer)" LIBRARY. Portanto, o que são Bibliotecas? São conjuntos de funções desenvolvidas para uma aplicação particular. Seu ambiente de desenvolvimento Arduino já vem com algumas bibliotecas instaladas. Para vê-las, simule que você quer importar uma biblioteca (apenas simule, não precisa clicar em nenhuma para importar). Para tanto, clique em SKETCH > IMPORT LIBRARY... e veja quantas bibliotecas prontas para seu uso já existem:


Legal né? por isso que eu amoo o arduino, é muito simples trabalhar com ele.. rsrs
Mas neste momento não iremos utilizar nenhuma das bibliotecas mostradas à cima, mesmo porque nosso programa BLINK não necessita de uma biblioteca para funcionar, pois é um programa muito básico. Por este motivo você pode notar que o programa BLINK, após os comentários iniciais, começa com a declaração de variáveis, que o segundo da ordem:


int ledPin = 13; // LED connected to digital pin 13


A linha anterior quer dizer o seguinte:
int : variável do tipo inteira
ledPin = 13; : nome da variável. Neste caso, como o próprio nome diz, temos que a variável PINO DO LED vale 13.
// LED connected to digital pin 13 : comentário dizendo que existe um LED conectado ao pino
digital de numero 13.

Agora  olhe o seu Arduino mais de perto. Se você notar, verá que logo abaixo do pino 13 digital existe um LED SMD, ou seja, um microled, já colocado na placa, como mostra a figura abaixo:
Vamos agora olhar a estrutura de Setup do programa:
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}

void setup() { : Declaração que irá começar o Setup do programa. Sempre aberto com uma “{“ e fechada, no fim da declaração, por uma “}”.
// initialize the digital pin as an output: : Comentário dizendo que o pino digital será inicializado como uma saída.
pinMode(ledPin, OUTPUT); : Escolha do modo do pino, se é entrada (INPUT) ou saída (OUTPUT).
Como neste caso queremos acender um led, a corrente elétrica irá sair do pino e não entrar. Logo, setamos o ledPin (que tinha o valor 13, por causa do pino digital 13) como saída.
O Setup é a função que executa o codigo dentro  apenas uma vez, como nao tem necessecidade que o "pinMode(ledPin, OUTPUT);" seja executado mais de uma vez, ele ficou dentro da função Setup.

Por fim, neste programa, iremos analisar a estrutura Loop:

void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}

void loop() : De modo análogo ao setup, com o comando ao lado dizemos que irá começar o loop do programa, ou seja, o programa principal que ficará rodando por tempo indeterminado. Também é aberto com uma “{“ e fechado com uma “}”.

digitalWrite(ledPin, HIGH); // set the LED on : Escrita digital. Por tratar-se de um pino digital, ou você terá nível lógico 1 ou terá nível lógico 0, no caso de um led, ou teremos led acesso (1) ou teremos led apagado (0). O comando então liga o led, ou seja, envia 1 para o pino 13.

delay(1000); // wait for a second : Delay é mais uma função pronta de seu arduino. O numero
que for inserido entre os parêntesis será o valor, em milissegundos, que o Arduino irá esperar para
seguir para a próxima instrução. No caso, temos um delay de 1000 milissegundos, ou seja, uma
espera de 1 segundo para executar a próxima instrução.

digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
: Estes dois comandos são análogos aos dois vistos anteriormente, com a única diferença que a escrita digital escreverá um 0 no pino do led, ou seja, um nível lógico baixo: o led apagará e o Arduino espera 1 segundo para fazer a próxima instrução que, no caso, volta a ser o digitalWrite(ledPin, HIGH); .

Conhecendo a plataforma arduino

Creio que todos que estiverem lendo este blog, tenham uma base de eletrônica e saibam o que é resistor, led, transistor e etc... sendo assim vamos prosseguir com a apresentação do arduino, neste blog vou trabalhar com o Uno que apresento a vocês abaixo( lindo né?):
Bom, vamos as especificadões principais, ele contém 14 pinos I/0 digitais(dos quais 6 podem ser saídas PWM), 6 I/O analógicas , 3 pinos de GND, 1 de 5V, 1 de 3.3V, uma entrada USB,  e uma entrada para alimentação externa, e outras que falaremos mais adiante. 
Esses pinos são chamados de "portas" e podem ser entradas, ou saída, dependendo da programação feita. Qundo usados como saída, eles fornecem 5v, e quando entradas, temos que ter cuidado, pois só podemos entrar com 5v também, e ter cuidado com a corrente, que nao pode ultrapassar  40mA.
O USB quando conectado com o computador fornece energia para o arduino, fazendo-o assim ser uma forma de alimenta-lo, o USB vai servir para fazer as gravações dos programas no arduino.

A entrada para alimentação, ele pode aguentar tensões entre(6v á 20v) porém quando fornecendo menos de 7v, a placa fica instável e quando mais de 12v, o regulador de voltagem pode super-aquecer e avariar a placa. Então o recomendado é fornecer tensões entre (7v á 12v). O mais apropriado é usar uma fonte retificadora direto da tomada para o arduino, pois usando bateria para alimenta-lo descarrega muito rápido(experiência própria), mas se você preferir, fique á vontade, para usar a bateria, temos que usar aquela de 9v com um cabinho especial que encaixa na entrada do arduino, mas é facilmente encontrada nessas lojas de componentes.
 Fonte retificadora de 12v.

Bateria de 9v energizando o arduino.



sábado, 3 de agosto de 2013

Iniciando com o arduino

Bom, primeiro de tudo temos que baixar o software do arduino, que podemos baixar gratuitamente neste link: http://arduino.cc/en/Main/Software, depois de baixar você deverá copiar-lo para a raiz de seu disco rígido. Para abrir o programa, basta clicar duas vezes no ícone “arduino.exe”. 
Depois de instalado, temos que instalar o driver da nossa plaquinha arduino no computador.
O dispositivo Arduino é totalmente Plug & Play. Uma vez rodando o ambiente de desenvolvimento, insira o cabo USB AB no Arduino e depois no computador. Seu computador deverá reconhecer automaticamente o Arduino e uma nova porta COM (no caso de sistema operacional Windows Vista, Windows 7 ou Linux). Caso o sistema operacional não reconheça a placa automaticamente, os drivers podem ser localizados na pasta “\arduino-1.0.1\drivers”. 
Para selecionar esta nova porta COM onde o Arduino está localizado, abra o ambiente de desenvolvimento, então clique em TOOLS > SERIAL PORT> COM X (onde X é o número da porta que o Arduino foi instalado automaticamente). Na imagem a seguir temos um exemplo do que você deverá ver:

Note que o numero da porta COM não é necessariamente 108 como na imagem acima. Cada
computador poderá mostrar um numero de porta diferente. Seu Arduino não está sendo reconhecido pelo Windows 7? Veja abaixo a solução: 
Por causa de fatores ligados à permissões do sistema, o Windows 7 algumas vezes impede que o driver seja instalado de uma determinada pasta, onde estão os drivers e ambiente de desenvolvimento do Arduino. Desta forma, temos que fazer com que o Windows “force” a instalação destes drivers de alguma forma.
Siga os seguintes passos:
1) Conecte seu Arduino à porta USB de seu computador. Aguarde até aparecer a mensagem de erro de instalação de driver. A mensagem deve parecer com a seguinte:
2) Feche esta mensagem. Clique em “Iniciar” depois em “Dispositivo e Impressoras”. Você verá um dispositivo como “Não Especificado”, como mostra a figura abaixo:



3) Clique com o botão direito do Mouse neste “Dispositivo Desconhecido” e depois em Propriedades;
4) Clique na aba “Hardware” e depois em “Propriedades”;
5) Na nova janela, clique no botão “Alterar Configurações”;
6) Clique agora em “Atualizar Driver...”;
7) Na janela que abrir, clique em “Procurar Software de Driver no Computador”



 8) Neste ponto, não use a opção de seleção de diretório para escolher o driver do Arduino. Se você fizer isto, o Windows não irá permitir que o driver seja instalado, pois ele não tem permissão para carregar o driver da pasta em questão. Clique então em “PERMITIR QUE EU ESCOLHA EM UMA LISTA DE DRIVERS E DISPOSITIVOS NO COMPUTADOR”, como na figura a seguir:
 9) Na janela que abrir, role a lista para baixo até encontrar “Portas (COM e LPT)” e clique em Avançar;
10) Na próxima janela, selecione “Porta de comunicação”, como na figura abaixo e clique em “Com Disco...”:

  11) Na janela que abrir, faça a busca do driver pelo botão “Procurar”. Direcione esta busca para a pasta DRIVERS, do ambiente de desenvolvimento Arduino, e dentro dela clique em “ARDUINO UNO REV3”, caso esta seja sua placa Arduino, conforme a figura abaixo:
12) Clique em “Abrir”, então em “Ok” e depois em “Avançar”;
13) Clique em “Instalar este software mesmo assim”;
14) Pronto! Seu Arduino está instalado e pronto para ser usado! Agora, basta selecionar a porta
serial do mesmo no ambiente de desenvolvimento Arduino e usá-lo.



  Obs.: Se você ainda não tiver a plataforma arduino e for um iniciante e não tem pretenções de fazer grandes projetos, aconselho comprar um arduino uno.

Seleção da placa arduino


Para salvar códigos em sua placa Arduino, você precisa selecionar qual placa está usando no ambiente de desenvolvimento Arduino. Para isto, basta ir ao menu TOOLS e depois BOARD, conforme a figura abaixo:
e então selecione a sua placa, nesta caso "Arduino Uno".

Apresentação

Olá, eu sou a victoria e sou estudante de mecatrônica no IFAM, tenho 16 anos, e quando dei inicio ao meu projeto, senti uma certa dificuldade para achar sites bons e completos para aprender sobre o arduino, e então tive a ideia de fazer um blog para compartilhar as informações que eu adquiri ao longo desse tempo. Aqui eu vou postar sobre o arduino interagindo com alguns componentes e módulos, como o RTC, teclado, RFID e etc..