CURSO DE ARDUINO E MICROCONTROLADOR
Curso de Arduino e Microcontrolador
Conteúdo do curso
• A História dos Microcontroladores
• Eletrônica Básica
• Eletrônica Analógica
• Microcontrolador ATmega328P
• Arduino UNO
• Hardware do Arduino UNO
• Software do Arduino UNO
• Princípios de programação
• Entradas e saídas do Arduino
UNO
• IDE do Arduino
• Programação da placa Arduino
UNO
• Primeiro programa para o
Arduino Uno
• Comunicação Serial e saída
PWM
• Projeto com entradas saída
digital /analógicas
• Projete um Semáforo
• Projeto de Circuito Seguidor Solar
• Projeto Medidor de Umidade
ARDUINO UNO
Uma breve história
O Arduino foi criado em 2005 pelo professor Massimo Banzi na Itália.
Banzi queria ensinar para seus alunos conceitos de programação e de eletrônica,
porém enfrentava um problema, não havia placas de baixo custo no mercado, e
portanto isso dificultaria a aquisição do produto por todos os seus alunos. Com
isso em mente Banzi decidiu criar uma placa de baixo custo que fosse semelhante
a estrutura de um computador para que seus alunos tivessem a oportunidade de
aprendizado. A sua placa, nomeada de Arduino, foi um sucesso, recebendo uma
menção honrosa na categoria Comunidades Digitais em 2006.
Atualmente existem a venda várias placas semelhantes a original criada
por Banzi, porém com componentes construídos por diversas outras pessoas. Isso
se deve ao fato que o Arduino original criado por Banzi e seus colegas é Open
Source, ou seja, qualquer placa criada com a mesma estrutura do Arduino
original e que utilizasse sua linguagem padrão consegue realizar as mesmas
funções que um Arduino original.
Entradas e saídas digitais
Acendendo Leds com o arduino .Neste
projeto muito simples ,vamos trabalhar com as portas digitais do arduino uno
,veja o diagrama do projeto abaixo.
É interessante como pode ser simples ensinar crianças, jovens e adultos os conceitos básicos de programação, robótica e eletrônica. Sua iniciação no mudo da robótica e automação com o Arduíno de um jeito bem simples.
Aprenda a programar e a elaborar projetos com o Arduíno .
Compre nosso Curso De Arduíno E Microcontrolador (curso Livre)
Cupom de desconto de 10% para o curso
Digite:
PROMOABRIL
Guia para sensores de temperatura LM35, LM335 e LM34 com Arduino
Este guia mostra como usar os sensores de temperatura LM35 (LM35DZ), LM335 e LM34 com a placa Arduino. Mostraremos como conectar os sensores e escrever o código para obter leituras de temperatura. Por fim, construiremos um exemplo de projeto para exibir as leituras do sensor em um display OLED.
Apresentando os sensores de temperatura LM35, LM335 e LM34
O LM35, LM335 e LM34 são sensores lineares de temperatura que emitem uma tensão proporcional ao valor da temperatura.
Sensor de temperatura |
Voltagem de saída |
Linearidade |
LM35 (LM35DZ) |
proporcional à temperatura em Celsius (ºC) |
10mV/ºC |
LM335 |
proporcional à temperatura em Kelvin (ºK) |
10mV/ºK |
LM34 |
proporcional à temperatura em Fahrenheit (ºF) |
10mV/ºF |
Esses sensores funcionam de maneira semelhante, mas são calibrados de forma diferente para gerar uma tensão proporcional às diferentes unidades de temperatura.
O LM35 produz 10 mV por aumento de temperatura em graus Celsius. De maneira semelhante, o LM335 produz 10 mV por grau de aumento de temperatura Kelvin e o LM34 produz 10 mV por grau Fahrenheit de aumento de temperatura.
Por exemplo, se o LM35 emite uma tensão de 345 mV, isso significa que temos um valor de temperatura de 34,5ºC.
Para mais informações sobre estes sensores, você pode consultar sua ficha técnica:
Pinagem LM35 (LM35DZ)
O LM35 possui apenas três pinos,CCV,VoueGND.
Aqui estão as conexões que você precisa fazer entre o LM35 e o Arduino:
LM35/LM34 |
Arduino |
CCV |
5V |
Vou |
Qualquer
pino analógico |
GND |
GND |
Nota: se você estiver usando um sensor de temperatura LM34, a pinagem é a mesma do LM35.
Pinagem LM335
A pinagem do sensor de temperatura LM335 é um pouco diferente.
LM335 |
Arduíno |
Adj. |
Não
conecte |
Vou |
Qualquer
pino analógico (puxe para cima com resistor de 2k Ohm) |
GND |
GND |
Oadj.O pino pode ser usado para calibrar o sensor e obter leituras de temperatura mais precisas. Não usaremos esse pino neste tutorial, portanto ele deve ser deixado desconectado.
Diagrama esquemático
Você deve seguir o mesmo diagrama esquemático se estiver usando um sensor de temperatura LM35 ou LM34. Você deve seguir um diagrama ligeiramente diferente se estiver usando o LM335.
LM35 e LM34 com Arduino
LM335 com Arduino
Código – Ler Temperatura
O código a seguir lê a temperatura do sensor LM35 e exibe as leituras no Monitor Serial. Este código também é compatível com LM335 e LM34 – basta descomentar algumas linhas do código para usar o sensor correto.
/*
* Rui Santos
* Complete Project Details https://RandomNerdTutorials.com
*/
const int sensorPin = A0;
float sensorValue;
float voltageOut;
float temperatureC;
float temperatureF;
// uncomment if using LM335
//float temperatureK;
void setup() {
pinMode(sensorPin, INPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin);
voltageOut = (sensorValue * 5000) / 1024;
// calculate temperature for LM35 (LM35DZ)
temperatureC = voltageOut / 10;
temperatureF = (temperatureC * 1.8) + 32;
// calculate temperature for LM335
//temperatureK = voltageOut / 10;
//temperatureC = temperatureK - 273;
//temperatureF = (temperatureC * 1.8) + 32;
// calculate temperature for LM34
//temperatureF = voltageOut / 10;
//temperatureC = (temperatureF - 32.0)*(5.0/9.0);
Serial.print("Temperature(ºC): ");
Serial.print(temperatureC);
Serial.print(" Temperature(ºF): ");
Serial.print(temperatureF);
Serial.print(" Voltage(mV): ");
Serial.println(voltageOut);
delay(1000);
}
Como funciona o código
Você começa definindo o pino que está conectado à saída do sensor. Deve ser um pino analógico. Estamos usando alfineteA0, mas você pode usar qualquer outro pino analógico.
const int sensorPin = A0;
Defina uma variável que irá armazenar o valor analógico lido do sensor:
float sensorValue;
A VoltageOut variável armazenará o valor real de saída de tensão proveniente do sensor.
float voltageOut;
Em seguida, crie variáveis que armazenarão o valor da temperatura. Aqui, criamos umtemperaturaCe umtemperaturaFvariáveis para manter a temperatura em Celsius e Fahrenheit, respectivamente.
float temperatureC;
float temperatureF;
Se estiver usando o sensor LM335, você também precisará de uma variável para manter a temperatura em Kelvin. Então, se você estiver usando esse sensor, você precisa descomentar a seguinte linha:
//float temperatureK;
Nosetup(), declare opino do sensorcomo entrada:
pinMode(sensorPin, INPUT);
Inicialize uma comunicação serial a uma taxa de transmissão de 9600. Você precisa inicializar a comunicação serial para poder exibir as leituras no Monitor Serial:
Serial.begin(9600);
Noloop(), leia o valor vindo do seu sensor e salve-o emtensãoSaídavariável. Para ler um valor analógico com Arduino você só precisa usarleitura analógica()função e passe o pino que deseja ler como argumento.
voltageOut = analogRead(sensorPin);
Conforme mencionado anteriormente, esses sensores emitem um valor de tensão proporcional à temperatura.
Os valores analógicos lidos do Arduino podem ter um valor entre 0 e 1024, onde 0 corresponde a 0V e 1024 a 5V. Assim, podemos facilmente obter a tensão de saída do sensor em mV.
voltageOut = (sensorValue * 5000) / 1024
No caso do sensor LM35, vimos que 10mV corresponde a um aumento de temperatura em graus Celsius. Portanto, a temperatura em Celsius corresponde à tensão lida no sensor em mV dividida por 10mV.
temperatureC = voltageOut / 10;
Para obter a temperatura em Fahrenheit, só precisamos usar a conversão Celsius -> Fahrenheit:
temperatureF = (temperatureC * 1.8) + 32;
Se estiver usando um LM335 ou LM34, você usa os mesmos cálculos para obter a temperatura. Basta ter em mente que o LM335 retorna a temperatura em graus Kelvin e o LM34 em graus Fahrenheit. Então, você pode converter os valores para outras unidades, se necessário.
Por fim, imprima as leituras dos sensores no Monitor Serial em graus Celsius e Fahrenheit.
Serial.print("Temperature(ºC): ");
Serial.print(temperatureC);
Serial.print(" Temperature(ºF): ");
Serial.print(temperatureF);
Para fins de depuração, também imprimimos a tensão.
Serial.print(" Voltage(mV): ");
Serial.println(voltageOut);
Oloop()é repetido a cada segundo.
delay(1000);
Demonstração
Carregue o código em seu Arduino IDE. Não se esqueça de selecionar a placa e a porta COM corretas no menu Ferramentas.
Depois disso, abra o Monitor Serial a uma taxa de transmissão de 9600. Você deverá obter novas leituras de temperatura a cada segundo. Você pode cobrir o sensor com o dedo para ver os valores de temperatura aumentando.
Leituras de temperatura em display OLED
Nesta seção, mostraremos como exibir as leituras do seu sensor em um display OLED .
Para um tutorial detalhado sobre como usar o display OLED com o Arduino, siga o próximo guia:
Peças necessárias
Para este projeto, você precisará das seguintes peças:
- Placa Arduino (leia os melhores kits iniciados pelo Arduino )
- Sensor de temperatura LM35 (ou LM335 , LM34 )
- Resistor de 2k Ohm (se estiver usando um LM335)
- Visor OLED I2C
- Fios de ligação em ponte
- Tábua de ensaio
Diagrama esquemático
Conecte todos os componentes conforme mostrado no próximo diagrama esquemático:
Instalando bibliotecas OLED
Para controlar o display OLED você precisa das bibliotecas adafruit_SSD1306.h e adafruit_GFX.h . Siga as próximas instruções para instalar essas bibliotecas.
1. Abra seu Arduino IDE e vá para Sketch > Incluir Biblioteca > Gerenciar Bibliotecas . O Gerenciador da Biblioteca deve abrir.
2. Digite “ SSD1306 ” na caixa de pesquisa e instale a biblioteca SSD1306 da Adafruit.
3. Após instalar a biblioteca SSD1306 da Adafruit, digite “ GFX ” na caixa de pesquisa e instale a biblioteca.
4. Após instalar as bibliotecas, reinicie seu Arduino IDE.
Código – Exibir leituras em OLED
Após conectar o circuito e instalar as bibliotecas necessárias, carregue o código a seguir em sua placa Arduino.
/*
* Rui Santos
* Complete Project Details https://RandomNerdTutorials.com
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int sensorPin = A0;
float sensorValue;
float voltageOut;
float temperatureC;
float temperatureF;
// uncomment if using LM335
//float temperatureK;
void setup() {
pinMode(sensorPin, INPUT);
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
sensorValue = analogRead(sensorPin);
voltageOut = (sensorValue * 5000) / 1024;
// calculate temperature for LM35 (LM35DZ)
temperatureC = voltageOut / 10;
temperatureF = (temperatureC * 1.8) + 32;
// calculate temperature for LM335
//temperatureK = voltageOut / 10;
//temperatureC = temperatureK - 273;
//temperatureF = (temperatureC * 1.8) + 32;
// calculate temperature for LM34
//temperatureF = voltageOut / 10;
//temperatureC = (temperatureF - 32.0)*(5.0/9.0);
Serial.print("Temperature(ºC): ");
Serial.print(temperatureC);
Serial.print(" Temperature(ºF): ");
Serial.print(temperatureF);
// clear display
display.clearDisplay();
// display temperature Celsius
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(temperatureC);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
// display temperature Fahrenheit
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(temperatureF);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("F");
display.display();
delay(1000);
}
Demonstração
Parabéns! Você concluiu o projeto. Agora você pode verificar as leituras do sensor no display OLED. Novas leituras de temperatura são exibidas a cada segundo.
Empacotando
O LM35, LM335 e LM34 são sensores lineares de temperatura que emitem uma tensão proporcional ao valor da temperatura. Eles podem ser alimentados pelo pino 5V do Arduino, e para ler a tensão, você usa um pino analógico.
Ler a tensão do sensor é tão fácil quanto usar oleitura analógica()função no pino do sensor. Depois, basta fazer um cálculo simples para obter a temperatura na unidade desejada.
Esperamos que você tenha achado este guia útil. Temos outros guias sobre sensores e módulos Arduino que você pode gostar:
Comentários