Arduino: Sensores: mudanças entre as edições
(53 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
=Arduíno: | =Arduíno: Sensores e Atuadores= | ||
O Arduíno pode ler '''sensores''' através dos pinos de ''' | O Arduíno pode ler '''sensores''' e acionar '''atuadores''' através dos pinos de '''entrada/saída''', sejam elas '''digitais ou analógicas'''. | ||
==Informações sobre Arduíno== | ==Informações sobre Arduíno== | ||
Linha 11: | Linha 11: | ||
==Sensor de Luminosidade LDR== | ==Sensor de Luminosidade LDR== | ||
O '''Sensor de luminosidade (LDR)''' (''Light Dependent Resistor'') é um '''resistor dependente de luz''' ou '''fotoresistor''', o qual varia sua resistência em função da luminosidade. | O '''Sensor de luminosidade (LDR)''' (''Light Dependent Resistor'') é um '''resistor dependente de luz''' ou '''fotoresistor''', o qual varia sua resistência em função da luminosidade. | ||
[[Arquivo:LDR.jpeg|100px]] | |||
Os sensores baseados em '''resistência variável''' utilizam a estrutura '''[[Divisor de Tensao|divisor de tensão]]''' para obter uma tensão variável que pode ser lida por uma entrada analógica do Arduíno. | |||
===Laboratório 1: Sensor de luminosidade LDR=== | ===Laboratório 1: Sensor de luminosidade LDR=== | ||
Linha 20: | Linha 24: | ||
*Carregar programa exemplo '''[https://www.arduino.cc/en/Tutorial/AnalogReadSerial Arquivo/Exemplos/Basic/AnalogReadSerial]''' e verificar o valor da '''entrada analógica''' gerada pelo '''LDR''' no '''monitor serial'''. | *Carregar programa exemplo '''[https://www.arduino.cc/en/Tutorial/AnalogReadSerial Arquivo/Exemplos/Basic/AnalogReadSerial]''' e verificar o valor da '''entrada analógica''' gerada pelo '''LDR''' no '''monitor serial'''. | ||
== | ==Projeto 1: Sistema indicador de luminosidade== | ||
;LDR: | ;LDR: | ||
*Montar hardware com '''sensor LDR''' utilizando '''divisor de tensão''' para o sensor e uma '''coluna de 5 leds''' utilizando um '''resistor de proteção''' para cada led. | *Montar hardware com '''sensor LDR''' utilizando '''divisor de tensão''' para o sensor e uma '''coluna de 5 leds''' utilizando um '''resistor de proteção''' para cada led. | ||
Linha 29: | Linha 33: | ||
O sensor de temperatura '''NTC 10k''' é um '''thermistor''', isto é, um resistor cuja resistência varia com a temperatura, podendo medir de −90 °C a 130 °C. | O sensor de temperatura '''NTC 10k''' é um '''thermistor''', isto é, um resistor cuja resistência varia com a temperatura, podendo medir de −90 °C a 130 °C. | ||
[[Arquivo:NTC_10k.jpg|200px]] | |||
Existem dois tipos de thermistores: | Existem dois tipos de thermistores: | ||
Linha 34: | Linha 40: | ||
*PTC (Positive Temperature Coefficient), no qual a resistência aumenta 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 [ | Para leitura com o Arduíno, o sensor '''NTC 10k''' é utilizado numa estrutura com um '''[[Divisor de Tensao| divisor de tensão]]''' com um resistor de 10K Ω. | ||
Esquema de ligação com Arduíno: | Esquema de ligação com Arduíno: | ||
Linha 55: | Linha 61: | ||
:*c = 0.0000000876741. | :*c = 0.0000000876741. | ||
===Laboratório | ===Laboratório 2: Sensor de Temperatura com NTC=== | ||
Monte o hardware para o '''sensor de temperatura''' '''NTC10k''' conectado a entrada analógica A0 do Arduíno. | |||
====Exemplo de código 1==== | |||
Uso da biblioteca <code>math.h</code> e implementação da equação de Steinhart–Hart. | |||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Linha 85: | Linha 93: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Observações: | |||
*A função <code>log()</code>, utilizado no código exemplo, faz parte da biblioteca <code>math.h</code><ref>https://www.arduino.cc/en/math/h</ref> e é o logaritmo natural (ln). A função para o logaritmo base 10 seria <code>log10</code>. | |||
*Código adaptado de <ref>http://playground.arduino.cc/ComponentLib/Thermistor2</ref>. | |||
====Exemplo de código 2==== | |||
Uso da biblioteca <code>thermistor.h</code>, a qual implementa a equação de Steinhart–Hart e pode ser baixada de https://github.com/panStamp/thermistor. | |||
<syntaxhighlight lang="c"> | |||
#include "thermistor.h" | |||
THERMISTOR thermistor(A0, // entrada analógica | |||
10000, // resistência nominal a 25 ºC | |||
3950, // coeficiente beta | |||
10000); // resistor série | |||
float temp; | |||
void setup() | |||
{ | |||
Serial.begin(9600); | |||
} | |||
void loop() | |||
{ | |||
temp = thermistor.read(); // lê temperatura | |||
Serial.print("Temperatura em 1/10 *C : "); | |||
Serial.println(temp); | |||
delay(5000); | |||
} | |||
</syntaxhighlight> | |||
Observações: | |||
*Baseado no exemplo apresentado em<ref>https://github.com/panStamp/thermistor/blob/master/examples/basicntc/basicntc.ino</ref>. | |||
==Sensor de temperatura (LM35) == | ==Sensor de temperatura (LM35) == | ||
Linha 109: | Linha 146: | ||
:Como a tensão medida pelo sensor varia de 0 mV + 10mV/1<sup>o</sup>C, se multiplicarmos por 100, teremos o valor em graus Celsius: | :Como a tensão medida pelo sensor varia de 0 mV + 10mV/1<sup>o</sup>C, se multiplicarmos por 100, teremos o valor em graus Celsius: | ||
===Laboratório | ===Laboratório 3: Sensor de temperatura LM35=== | ||
*Monte o hardware com LM35 conforme a figura, utilizando a entrada analógica A0 para leitura. | *Monte o hardware com LM35 conforme a figura, utilizando a entrada analógica A0 para leitura. | ||
*Carregue o código exemplo abaixo e verifique o funcionamento do sensor: | *Carregue o código exemplo abaixo e verifique o funcionamento do sensor: | ||
Linha 131: | Linha 168: | ||
==Sensor de Temperatura e Humidade DHT11== | ==Sensor de Temperatura e Humidade DHT11== | ||
O DHT11 é um sensor de temperatura e humidade. Este sensor inclui um medidor de humidade resistivo e um sensor de temperatura tipo NTC conectado a um microcontrolador de 8 bits | O DHT11 é um sensor de temperatura e humidade. Este sensor inclui um medidor de humidade resistivo e um sensor de temperatura tipo NTC conectado a um microcontrolador de 8 bits. | ||
O DHT11 possui uma biblioteca com funções prontas para seu funcionamento | O DHT11 possui uma '''biblioteca''' com funções prontas para seu funcionamento ([[Mídia:DHT11.zip |DHT11.zip]]). Há versões atualizadas desta biblioteca disponíveis em <ref>https://github.com/adafruit/DHT-sensor-library</ref>. | ||
;Esquema de ligação com Arduíno: | ;Esquema de ligação com Arduíno: | ||
________ | |||
| | | | | ||
| DHT11 | | | DHT11 | | ||
| | |________| | ||
| | | | | | | | | ||
(5V) ----+ | +---- (GND) | |||
| | | | ||
Analog Pin 1 | Analog Pin 1 | ||
===Laboratório | ===Laboratório 4: Sensor de temperatura DHT11=== | ||
*Monte o hardware com DHT11 conforme a figura, utilizando a entrada analógica A1 para leitura. | *Monte o hardware com DHT11 conforme a figura, utilizando a entrada analógica A1 para leitura. | ||
*Baixe a biblioteca | *Baixe a biblioteca e salve no computador. | ||
*:A biblioteca DHT11, contida no arquivo DHT11.zip, é formada por dois arquivos: | *:A biblioteca DHT11, contida no arquivo DHT11.zip, é formada por dois arquivos: | ||
*:*dht11.h | *:*dht11.h | ||
Linha 174: | Linha 211: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Projeto 2: Sistema de acionamento de equipamento de climatização== | |||
;LDR: | |||
*Montar hardware com '''sensor de temperatura''' (NTC, LM35 ou DHT11) e mais dois '''leds''' indicadores da temperatura ambiente (verde tempertura menor 25<sup>o</sup> e vermelho temperatura maior 25<sup>o</sup>). | |||
*Utilizar uma saída digital para o acionamento de um '''led''' para simular o ligar/desligar do equipamento de climatização. | |||
<!--==Sensor de força resistivo== | |||
O '''sensor de força resistivo''' é um sensor de força baseado em resistência variável. Quanto maior a força sobre o sensor menor a resistência. Se não houver força aplicada no sensor, a resistência é maior que 1 MΩ. Este sensor consegue detectar força de objetos com peso de 100 g a 10 kg. É 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 <ref>https://www.sparkfun.com/products/9376</ref>. | |||
O '''sensor de força resistivo''' deve ser montado em uma estrutura com '''divisor de tensão''' com resistor de 100 kΩ. | |||
[[ Arquivo:Sensorforce.jpeg | 300px]]--> | |||
==Sensor Ultrassônico== | |||
O '''sensor ultrassônico''' se baseia no envio de '''sinais ultrassônicos''' pelo sensor, que aguarda o retorno do sinal ('''echo'''), e com base no '''tempo entre envio e retorno''', calcula a '''distância''' entre o sensor e o objeto detectado <ref NAME=filipeflop>https://www.filipeflop.com/blog/sensor-ultrassonico-hc-sr04-ao-arduino/</ref>. | |||
[[Arquivo:SensorUltrasonico_Trigger_Echo.jpg|300px]]<ref NAME=filipeflop/> | |||
O acionamento do '''sensor ultrassônico''' é realizado enviando ao pino '''''trigger''''' um pulso com 10μs (1), o qual faz o sensor disparar um sinal com 8 pulsos de 40 KHz (2) e aguardar o retorno do '''''echo''''' do sinal em nível alto (3). | |||
[[Arquivo:SensorUltrasonico_Trigger_Echo2.png|300px]]<ref NAME=filipeflop/> | |||
A '''distância''' entre o sensor e o objeto pode ser determinada pela equação: | |||
distância = tempo do echo em nível alto * velocidade do som / 2 | |||
===Sensor Ultrassônico de Distância HC-SR04=== | |||
O sensor ultrasônico HC-SR04<ref>https://www.piscaled.com.br/sensor-de-distancia-ultrasonico-hc-sr04</ref> funciona como um detector de objetos e permite medir distâncias mínimas de 2 centímetros podendo chegar a distancias máximas de até 450 centímetros, com uma precisão de 3 milímetros. Funcionamento: Necessita de um gatilho (trigger) de pelo menos 10us de nivel alto. O módulo envia automaticamente 8 pulsos de 40kHz e automaticamente detecta se houve retorno de algum pulso. Se houver um sinal de retorno a partir dos disparos, o nivel de saída é modificado. | |||
===Sensor Ultrassônico de Distância JSN-SR04T=== | |||
O Sensor Ultrassônico de Distância JSN-SR04T<ref>https://www.piscaled.com.br/sensor-de-distancia-ultrasonico-jsn-sr04t-a-prova-dagua</ref> foi desenvolvido para aperfeiçoar projetos de robótica e microeletrônica, mostrando-se ideal para calcular a distância com precisão de objetos entre ~25cm à ~1,5 metros. | |||
O principal diferencial do Sensor Ultrassônico JSN-SR04T é sua ampla e eficiente resistência à umidade, sendo principalmente utilizado em ambientes úmidos, permitindo manter ampla distância do microcontrolador já que possui fio com 2,5 metros de comprimento, no entanto lembramos que o sensor não pode ser submerso na água. | |||
De forma a facilitar a ligação entre o Sensor Ultrassônico de Distância JSN-SR04T e o Arduino, por exemplo, acompanha um módulo especialmente desenvolvido para atuar em conjunto com microcontroladores, possuindo 4 portas de conexão: 5V (VCC), Trig (RX), Echo (TX) e GND. | |||
O Sensor Ultrassônico de Distância JSN-SR04T possui funcionamento muito semelhante ao Sensor Ultrassônico de Distância HC-SR04, onde permite utilizar o mesmo código de programação. | |||
===Laboratório 5: Sensor Ultrassônico=== | |||
Testar o exemplo de código para Sensor Ultrassônico: | |||
<syntaxhighlight lang="c"> | |||
const int trigPin = 4; //Trigger pino 4 | |||
const int echoPin = 5; //Echo pino 4 | |||
float distancia; | |||
float duracao; | |||
void setup() { | |||
pinMode(trigPin, OUTPUT); | |||
pinMode(echoPin, INPUT); | |||
Serial.begin(9600); | |||
} | |||
void loop() { | |||
digitalWrite(trigPin, LOW); | |||
delayMicroseconds(2); | |||
digitalWrite(trigPin, HIGH); | |||
delayMicroseconds(10); | |||
digitalWrite(trigPin, LOW); | |||
duracao = pulseIn(echoPin, HIGH); | |||
//A função pulseIn espera o pino ir para HIGH, | |||
//inicia um temporizador, e para o temporizador | |||
//quando o pino voltar para LOW, retornando o | |||
//tempo em microsegundos. | |||
distancia = duracao * 0.034 / 2; | |||
Serial.println(distancia); | |||
delay(1000); | |||
} | |||
</syntaxhighlight> | |||
Outra opção é utilizar a '''biblioteca''' '''Ultrasonic.h''', como mostrado em <ref NAME=filipeflop/>. | |||
==Referências== | ==Referências== |
Edição atual tal como às 18h37min de 30 de setembro de 2024
Arduíno: Sensores e Atuadores
O Arduíno pode ler sensores e acionar atuadores através dos pinos de entrada/saída, sejam elas digitais ou analógicas.
Informações sobre Arduíno
Sensor de Luminosidade LDR
O Sensor de luminosidade (LDR) (Light Dependent Resistor) é um resistor dependente de luz ou fotoresistor, o qual varia sua resistência em função da luminosidade.
Os sensores baseados em resistência variável utilizam a estrutura divisor de tensão para obter uma tensão variável que pode ser lida por uma entrada analógica do Arduíno.
Laboratório 1: Sensor de luminosidade LDR
- Montar hardware com o sensor LDR, conforme mostrado na figura acima.
- Testar o código exemplo Arquivo/Exemplos/Analog/AnalogInput, e verificar o valor da frequência do pulsar do led em função do valor da luminosidade.
- Carregar programa exemplo Arquivo/Exemplos/Basic/AnalogReadSerial e verificar o valor da entrada analógica gerada pelo LDR no monitor serial.
Projeto 1: Sistema indicador de luminosidade
- LDR
- Montar hardware com sensor LDR utilizando divisor de tensão para o sensor e uma coluna de 5 leds utilizando um resistor de proteção para cada led.
- Construir programa para ir acendendo os leds a medida que aumenta a luminosidade.
- Use o programa exemplo Arquivo/Exemplos/Basic/AnalogReadSerial para verificar como a luminosidade do ambiente interfere no LDR.
Sensor de Temperatura NTC 10k
O sensor de temperatura NTC 10k é um thermistor, isto é, um resistor cuja resistência varia com a temperatura, podendo medir de −90 °C a 130 °C.
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:
- Cálculo da resistência do NTC
- Na temperatura de 25 °C a resistência do NTC é 10 k Ω, variando linearmente com a temperatura.
- Portando, quando:
RNTC = 10k Ω (25 °C)
- Temos:
leitura_analógica = 512 (Vdivisor = 2,5V)
- Logo, para qualquer leitura analógica temos:
RNTC = 10k . (1023/leitura_analógica - 1)
- Equação de Steinhart–Hart
- A equação de Steinhart–Hart (https://en.wikipedia.org/wiki/Thermistor), 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.
Laboratório 2: Sensor de Temperatura com NTC
Monte o hardware para o sensor de temperatura NTC10k conectado a entrada analógica A0 do Arduíno.
Exemplo de código 1
Uso da biblioteca math.h
e implementação da equação de Steinhart–Hart.
//Sensor de temperatura NTC10k
#include <math.h>
const double a = 0.001129148; //
const double b = 0.000234125; //Parâmetros de Steinhart–Hart
const double c = 0.0000000876741; //
void setup()
{
Serial.begin(9600);
}
void loop()
{
double R; //Resistência do NTC
double T; //Temperatura em Kelvin
int leitura; //Leitura analógica (0 a 1023)
leitura = analogRead(A0);
R = (10000.0 * ((float)1023/leitura - 1)); //Calcula valor de R em função da leitura
T = 1 / (a + (b * log(R)) + (c * pow(log(R),3))); //Equação de Steinhart–Hart
T = T - 273.15; //Converte Kelvin para Celcius
Serial.print("Temperatura: ");
Serial.print(T);
Serial.println(" oC");
delay(1000);
}
Observações:
- A função
log()
, utilizado no código exemplo, faz parte da bibliotecamath.h
[1] e é o logaritmo natural (ln). A função para o logaritmo base 10 serialog10
. - Código adaptado de [2].
Exemplo de código 2
Uso da biblioteca thermistor.h
, a qual implementa a equação de Steinhart–Hart e pode ser baixada de https://github.com/panStamp/thermistor.
#include "thermistor.h"
THERMISTOR thermistor(A0, // entrada analógica
10000, // resistência nominal a 25 ºC
3950, // coeficiente beta
10000); // resistor série
float temp;
void setup()
{
Serial.begin(9600);
}
void loop()
{
temp = thermistor.read(); // lê temperatura
Serial.print("Temperatura em 1/10 *C : ");
Serial.println(temp);
delay(5000);
}
Observações:
- Baseado no exemplo apresentado em[3].
Sensor de temperatura (LM35)
- Funcionamento do sensor LM35
- O LM35 é um circuito integrado exclusivo para medir temperatura com uma tensão de saída variando linearmente com a temperatura em graus Célsius.
- Na configuração básica este sensor mede temperaturas entre 2oC e 150oC, variando a saída em função da temperatura de 0 mV + 10mV por 1oC.
- Com a configuração mostrada em [4] é possível medir temperatura de -55oC e 150oC.
- Esquema de ligação com Arduíno
_______ | | | LM 35 | |_______| | | | (+5v) ----+ | +---- (Ground) | Analog Pin 0mV + 10mV / oC
- Leitura pela entrada analógica do Arduíno
- O valor de tensão (entre 0V e 5V) lido pelo Arduíno na entrada analógica é convertido um número digital com 10 bits de magnitude, ou seja, 210 (1024) valores (entre 0 e 1023).
- Para obter o valor de tensão, para uso no cálculo da temperatura, multiplica-se o valor digital obtido na leitura por 5/1023.
- Como a tensão medida pelo sensor varia de 0 mV + 10mV/1oC, se multiplicarmos por 100, teremos o valor em graus Celsius:
Laboratório 3: Sensor de temperatura LM35
- Monte o hardware com LM35 conforme a figura, utilizando a entrada analógica A0 para leitura.
- Carregue o código exemplo abaixo e verifique o funcionamento do sensor:
//Sensor de temperatura LM35
float valorSensor;
float temperatura;
void setup() {
Serial.begin(9600);
}
void loop() {
valorSensor = analogRead(A0) * 5.0 / 1023.0;
temperatura = valorSensor * 100.0;
Serial.print("Temperatura: ");
Serial.println(temperatura);
delay(2000); //Tempo entre as leituras em ms
}
Sensor de Temperatura e Humidade DHT11
O DHT11 é um sensor de temperatura e humidade. Este sensor inclui um medidor de humidade resistivo e um sensor de temperatura tipo NTC conectado a um microcontrolador de 8 bits.
O DHT11 possui uma biblioteca com funções prontas para seu funcionamento (DHT11.zip). Há versões atualizadas desta biblioteca disponíveis em [5].
- Esquema de ligação com Arduíno
________ | | | DHT11 | |________| | | | | (5V) ----+ | +---- (GND) | Analog Pin 1
Laboratório 4: Sensor de temperatura DHT11
- Monte o hardware com DHT11 conforme a figura, utilizando a entrada analógica A1 para leitura.
- Baixe a biblioteca e salve no computador.
- A biblioteca DHT11, contida no arquivo DHT11.zip, é formada por dois arquivos:
- dht11.h
- dht11.cpp
- A biblioteca DHT11, contida no arquivo DHT11.zip, é formada por dois arquivos:
- Insira a biblioteca DHT11.zip no ambiente da IDE do Arduíno:
Sketch -> Incluir Biblioteca -> Adicionar biblioteca .ZIP
- As bibliotecas são instaladas por padrão no diretório:
~/Arduino/libraries
- Carregue o código exemplo abaixo e verifique o funcionamento do sensor:
//Sensor de temperatura LDHT11
#include <dht11.h>
dht11 sensor; //Inicializa sensor
void setup() {
Serial.begin(9600);
delay(1000);
}
void loop() {
sensor.read(A1);
Serial.print("Temperatura (oC): ");
Serial.println(sensor.temperature);
Serial.print("Unidade (%): ");
Serial.println(sensor.humidity);
delay(2000); //Tempo entre as leituras em ms
}
Projeto 2: Sistema de acionamento de equipamento de climatização
- LDR
- Montar hardware com sensor de temperatura (NTC, LM35 ou DHT11) e mais dois leds indicadores da temperatura ambiente (verde tempertura menor 25o e vermelho temperatura maior 25o).
- Utilizar uma saída digital para o acionamento de um led para simular o ligar/desligar do equipamento de climatização.
Sensor Ultrassônico
O sensor ultrassônico se baseia no envio de sinais ultrassônicos pelo sensor, que aguarda o retorno do sinal (echo), e com base no tempo entre envio e retorno, calcula a distância entre o sensor e o objeto detectado [6].
O acionamento do sensor ultrassônico é realizado enviando ao pino trigger um pulso com 10μs (1), o qual faz o sensor disparar um sinal com 8 pulsos de 40 KHz (2) e aguardar o retorno do echo do sinal em nível alto (3).
A distância entre o sensor e o objeto pode ser determinada pela equação:
distância = tempo do echo em nível alto * velocidade do som / 2
Sensor Ultrassônico de Distância HC-SR04
O sensor ultrasônico HC-SR04[7] funciona como um detector de objetos e permite medir distâncias mínimas de 2 centímetros podendo chegar a distancias máximas de até 450 centímetros, com uma precisão de 3 milímetros. Funcionamento: Necessita de um gatilho (trigger) de pelo menos 10us de nivel alto. O módulo envia automaticamente 8 pulsos de 40kHz e automaticamente detecta se houve retorno de algum pulso. Se houver um sinal de retorno a partir dos disparos, o nivel de saída é modificado.
Sensor Ultrassônico de Distância JSN-SR04T
O Sensor Ultrassônico de Distância JSN-SR04T[8] foi desenvolvido para aperfeiçoar projetos de robótica e microeletrônica, mostrando-se ideal para calcular a distância com precisão de objetos entre ~25cm à ~1,5 metros.
O principal diferencial do Sensor Ultrassônico JSN-SR04T é sua ampla e eficiente resistência à umidade, sendo principalmente utilizado em ambientes úmidos, permitindo manter ampla distância do microcontrolador já que possui fio com 2,5 metros de comprimento, no entanto lembramos que o sensor não pode ser submerso na água.
De forma a facilitar a ligação entre o Sensor Ultrassônico de Distância JSN-SR04T e o Arduino, por exemplo, acompanha um módulo especialmente desenvolvido para atuar em conjunto com microcontroladores, possuindo 4 portas de conexão: 5V (VCC), Trig (RX), Echo (TX) e GND.
O Sensor Ultrassônico de Distância JSN-SR04T possui funcionamento muito semelhante ao Sensor Ultrassônico de Distância HC-SR04, onde permite utilizar o mesmo código de programação.
Laboratório 5: Sensor Ultrassônico
Testar o exemplo de código para Sensor Ultrassônico:
const int trigPin = 4; //Trigger pino 4
const int echoPin = 5; //Echo pino 4
float distancia;
float duracao;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracao = pulseIn(echoPin, HIGH);
//A função pulseIn espera o pino ir para HIGH,
//inicia um temporizador, e para o temporizador
//quando o pino voltar para LOW, retornando o
//tempo em microsegundos.
distancia = duracao * 0.034 / 2;
Serial.println(distancia);
delay(1000);
}
Outra opção é utilizar a biblioteca Ultrasonic.h, como mostrado em [6].
Referências
- ↑ https://www.arduino.cc/en/math/h
- ↑ http://playground.arduino.cc/ComponentLib/Thermistor2
- ↑ https://github.com/panStamp/thermistor/blob/master/examples/basicntc/basicntc.ino
- ↑ http://www.ti.com/lit/ds/symlink/lm35.pdf
- ↑ https://github.com/adafruit/DHT-sensor-library
- ↑ 6,0 6,1 6,2 6,3 https://www.filipeflop.com/blog/sensor-ultrassonico-hc-sr04-ao-arduino/
- ↑ https://www.piscaled.com.br/sensor-de-distancia-ultrasonico-hc-sr04
- ↑ https://www.piscaled.com.br/sensor-de-distancia-ultrasonico-jsn-sr04t-a-prova-dagua
Evandro.cantu (discussão) 09h35min de 17 de setembro de 2021 (-03)