Arduino
Arduíno
- Descrição
- O Arduino é um microcontrolador montado em uma plataforma de prototipagem eletrônica de hardware livre que pode ser utilizado em múltiplas aplicações. O Arduino é facilmente programável e pode ser utilizado para automação de dispositivos eletrônicos, acionamento de motorExemplo.jpges e leds, monitoramento de sensores, construção de protótipos de soluções tecnológicas e um mundo de possibilidades.
- Links e referências
- Instalação
- Para instalação no Ubuntu 12.04:
sudo apt-get install arduino
Placas Arduino
Arduino UNO
Arduino Micro
Arduino Mega
Ambiente de desenvolvimento do Arduíno
O ambiente de desenvolvimento de software do Arduíno usa uma linguagem de programação própria, baseada na linguagem C.
Os programas fonte são identificados pela extensão .ino.
A própria IDE do Arduíno apresenta vários exemplos de aplicações e programas que ajudam quem está iniciando a programá-lo.
Ambiente de programação S4A (Scratch for Arduíno)
Também é possível programar o Arduíno usando o ambiente de programação S4A (Scratch for Arduino), permite realizar a programação do Arduino utilizando as mesmas estruturas da linguagem Scratch, o que facilita muito o trabalho de quem está iniciando no mundo da programação de computadores.
- Instalação do S4A e do firmware no Arduíno
- O ambiente de desenvolvimento S4A e o firmware devem ser baixados no Site do S4A (Scratch for Arduino) e instalados, respectivamente, no computador e no hardware do Arduíno.
- Exemplos de programas com S4A e Arduíno
- Clique na aba Docs do site Site do S4A (Scratch for Arduino) e veja exemplos básicos de aplicação com S4A e Arduino.
- Sensores virtuais no S4a
É possível criar sensores virtuais para o S4A a partir da Web.
- Veja referência em: Sensores Virtuais no S4A
Informações sobre sensores e drives para uso com o Arduíno
- Sites de lojas virtuais
- Arduíno, shields e acessórios
- Sensor Infravermelho
- http://bildr.org/2011/06/pir_arduino/
- https://www.sparkfun.com/datasheets/Sensors/Proximity/SE-10.pdf
- Sensor Ultrasônico
- http://www.dfrobot.com/wiki/index.php?title=URM37_V3.2_Ultrasonic_Sensor_%28SKU:SEN0001%29
- Manual URM3.2
- Motores e drives
- Arduíno Motor Shield (L298N)
- http://communityofrobots.com/tutorial/kawal/how-drive-dc-motor-using-l293d-arduino
Eletrônica para Arduíno
- Fundamentos e conceitos
- Sensores baseados em resistência variável para Arduíno
- Sensores de luminosidade (LDR) e sensores de temperatura possuem um resistor variável em função da grandeza que estão medindo. Os mesmos podem ser configurados em uma estrutura baseada em um divisor de tensão para fornecer uma tensão variável ao Arduíno.
- Acionamento de leds com Arduíno
- O Arduíno fornece no máximo 40mA de corrente em cada um dos pinos de saída e tensão de 0V a 5V. Portanto, deve ser colocado um resistor em série com o led para limitar a corrente de saída do Arduíno e também a corrente máxima do led.
- Transistor como chave para acionar uma carga elevada com uma única saída do Arduíno
- Exempĺo de uso: Acionamento de vários leds com uma única saída do Arduíno no projeto de Automação de Semáforo com Arduíno.
Exemplos de Aplicação com Arduíno
Comunicação Serial
- Informações sobre comunicação serial e paralela
- Comunicação Serial entre dois Arduínos
- Emissor
- Receptor
Código do Arduíno emissor
//emissor int num = 0; void setup(){ Serial.begin(9600); } void loop(){ num = 0; Serial.write(num); delay(2000); num = 1; Serial.write(num); delay(2000); }
Código do Arduíno receptor
//receptor int recByte; int led = 13; void setup(){ Serial.begin(9600); pinMode(led,OUTPUT); } void loop(){ if (Serial.available ()> 0) { recByte = Serial.parseInt(); } if(recByte == 0){ digitalWrite(led,LOW); }else if(recByte == 1){ digitalWrite(led,HIGH); } }
- Autoria
- Matheus Marques / CST Análise e Desenvolvimento de Sistemas - IFPR - Câmpus Foz do Iguaçu
Controlando Leds pelo Monitor Serial
- Componentes necessários
- Placa Arduino;
- Conector Arduino
- Protoboard;
- 5 fios com conectores macho;
- 2 resistores de 220 ohm(Vermelho, vermelho, marrom);
- 2 Leds.
- Montagem
- Primeiramente, faça as ligações como mostra a imagem abaixo:
- Agora, abra a IDE do Arduino e passe a seguinte programação
char c; void setup(){ pinMode(2,OUTPUT); pinMode(3,OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { c = Serial.read() - '0'; Serial.flush(); digitalWrite(c,!digitalRead(c)); } }
- Instruções
- Conecte o Arduino no PC, selecione a versão do seu Arduino e a porta e clique em UPLOAD. Abra o Serial Monitor, ao digitar o número 2 no Serial Monitor, irá acender o LED conectado na porta digital 2 do Arduino, e ao digitar novamente o número 2, o LED apagará. Agora se digitar o número 3, irá acender o LED da porta digital 3 e se digitar novamente o número 3, o LED apagará.
- Autoria
- Igor Matheus B. Quintana / CST Análise e Desenvolvimento de Sistemas - IFPR - Câmpus Foz do Iguaçu.
Sensor de temperatura (LM35)
- Componentes necessários
- Placa Arduino;
- Conector Arduino;
- Protoboard;
- 3 fios com conectores macho;
- Sensor de temperatura – LM35
- Funcionamento do sensor LM35
- O LM35 tem uma resolução de 10mV por cada 1oC. Como sensor básico de temperatura, mede temperaturas entre 2oC e 150oC.
- Leitura pela entrada analógica do Arduíno
- O Arduíno lê valores pelas entradas analógicas entre 0V e 5V e os converte em números digitais com 10 bits de magnitude, ou seja, 210 valores (entre 0 e 1023).
O valor de tensão lido na entrada analógica do Arduíno (entre 0V e 5V) pode ser obtido multiplicando a leitura por 5/1023. Como a tensão medida pelo sensor varia 10mV/1oC, se multiplicarmos por 100, teremos o valor em graus Celcius:
ConversaoGrausCelcius = 5 / 1023 * 100 = 0,488758553
- Montagem
- Primeiramente, faça as ligações como mostra a imagem abaixo:
- Agora, abra a IDE do Arduino e passe a seguinte programação
const float ConversaoGrausCelcius = 0.488758553; //ConversaoGrausCelcius = 5 / 1023 * 100 = 0,488758553 float Temperatura; void setup() { Serial.begin(9600); } void loop() { Temperatura = analogRead(A0) * ConversaoGrausCelcius; Serial.print("Temperatura: "); Serial.println(Temperatura); delay(2000); //Tempo entre as leituras em ms }
- Instruções
- Conecte o Arduino no PC, selecione a versão do seu Arduino e a porta e clique em UPLOAD. Agora abra o Serial Monitor e terá a temperatura atual, observe que a cada 2 segundo será feita uma nova leitura, caso queira aumentar ou diminuir este tempo deve ser alterado o tempo de leitura na linha dois do código.
- Referencias
- http://www.ajudino.com/2013/06/11-lendo-temperatura-com-lm35.html
- http://www.ti.com/lit/ds/symlink/lm35.pdf
- Autoria
- Igor Matheus B. Quintana / CST Análise e Desenvolvimento de Sistemas - IFPR - Câmpus Foz do Iguaçu
- --Evandro.cantu (discussão) 14h33min de 29 de junho de 2015 (BRT)
Sensor de Temperatura NTC 10k
O sensor de temperatura NTC 10k é um thermistor, isto é, um resistor cuja resistência varia com a temperatura.
Existem dois tipos de thermistores:
- NTC (Negative Temperature Coefficient), no qual a resistência diminui com o aumento da temperatura;
- PTC (Positive Temperature Coefficient), no qual a resistência aumenta com o aumento da temperatura.
Para leitura com o Arduíno, o sensor NTC 10k é utilizado numa estrutura com um divisor de tensão com um resistor de 10K Ω.
Esquema de ligação com Arduíno [1]:
(Ground) ---- (10k-Resistor) -------|------- (Thermistor) ---- (+5v) | Analog Pin 0
- Equação de Steinhart–Hart [2]
- A equação de Steinhart–Hart, descrita na Wikipédia, detalha a operação do thermistor NTC relacionando a variação de temperatura (Kelvin) com a resistência (Ω).
- onde a, b e c são parâmetros de Steinhart–Hart específicos para cada dispositivo.
- Valores típicos para um thermistor com resistência de 10K Ω na temperatura de (25 °C = 298.15 K) é:
- a = 0.001129148,
- b = 0.000234125,
- c = 0.0000000876741.
- Código para Arduíno [1]
#include <math.h> double Thermistor(int ADC) { double R; double logR; double Temp; R = 10000.0*((1024.0/ADC)-1); //Resistor do divisor de tensão 10k logR = log(R); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * logR * logR ))* logR ); Temp = Temp - 273.15; // Conversão Kelvin para Celcius return Temp; } void setup() { Serial.begin(115200); } void loop() { Serial.println(int(Thermistor(analogRead(0)))); // Mostra Graus Celcius delay(1000); }
- Autoria
- --Evandro.cantu (discussão) 22h22min de 28 de junho de 2015 (BRT)
Sensor de força resistivo
- Funcionamento
- O sensor de força resistivo funciona como um potenciômetro, isto é, se aplicar força na superfície, a resistência do sensor diminui. Se não tiver nada em cima do sensor, a resistência vai para mais de 20M ohm, tornando-se praticamente um circuito aberto. Este sensor consegue ler objetos com peso de 100g a 10Kg. É necessário que a força seja aplicada dentro da área de contato do sensor, se parte do objeto estiver fora desta área, o sensor não detectará ou dará uma leitura incorreta.
- Componentes necessários
- Placa Arduino;
- Conector Arduino;
- Protoboard;
- 6 fios com conectores macho;
- 1 resistor de 100K ohm (Marrom, preto, amarelo);
- Sensor de força resistivo.
- Montegem
- Primeiramente, faça as ligações como mostra a imagem abaixo
- Agora, abra a IDE do Arduino e passe a seguinte programação
int Senval=0; int Senpin=A0; void setup() { Serial.begin(9600); } void loop() { Senval=analogRead(Senpin); Serial.println(Senval); delay(200); }
- Instruções
- Conecte o Arduino no PC, selecione a versão do seu Arduino e a porta, clique em UPLOAD. Agora abra o Serial Monitor, ao aplicar uma força no sensor, verá que o número irá variar de 0 a 1023, a resistência vai alterar de acordo com a força aplicada sobre o sensor, consequentemente os valores mostrados no serial monitor mudarão.
- Referência
- https://www.sparkfun.com/products/9376
- Autoria
- Igor Matheus B. Quintana / CST Análise e Desenvolvimento de Sistemas - IFPR - Câmpus Foz do Iguaçu.
Referências