Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@gbkrobotics
Created June 16, 2018 18:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gbkrobotics/9d7fab82b84abc3ac30fbd1544765c09 to your computer and use it in GitHub Desktop.
Save gbkrobotics/9d7fab82b84abc3ac30fbd1544765c09 to your computer and use it in GitHub Desktop.
/*
O Sensor de Tensão AC P8 é é um módulo eletrônico desenvolvido capaz de detectar tensões AC 127V/220V por meio de suas conexões, informando aos sistemas microcontroladores em que estiver instalado, entre eles, o Arduino, se há ou não a existência de tensão.
Para maior segurança o Sensor de Tensão AC 127V/220V conta com um optoacoplador para fazer o isolamento da rede AC e do sinal DC enviado para o microcontrolador, aliás, conta com 3 pinos para conexão com o Arduino (VCC, GND, OUT).
Através de suas características, pode realizar a análise de níveis de tensão através de uma porta analógica, podendo realizar a leitura de valores de forma rápida e eficaz.
Confira na prática os benefícios que o Módulo Sensor de Tensão AC pode oferecer ao seu projeto, dando informações precisas e em tempo real sobre o que acontece com seus produtos e projetos elétricos.
CARACTERÍSTICAS:
- Sensor de Tensão;
- Sensor de voltagem;
- Medidor de tensão;
- Compacto;
- Compatível com Arduino, Raspberry PI, PIC, AMR, etc.;
- Detecta se determinado equipamento possui tensão ou não;
- Ideal para verificação de status;
- Optoacoplador (isolando a rede AC do sinal DC para o microcontrolador);
- Bornes a parafuso para fixação dos fios;
- Pinos para conexão junto ao Arduino;
- Excelente relação custo x benefício.
ESPECIFICAÇÕES:
- Modelo: P8;
- Tensão de funcionamento: 5V DC;
- Tensão para testes: 127V/220V AC;
- Dimensões (CxLxA): 44x16,6x15mm;
- Peso: 6g.
*/
float tensaoA0;
float aRef=5;
float relacaoA0=65;
#define AMOSTRAS 12
void setup() {
Serial.begin(9600);
}
float lePorta(uint8_t portaAnalogica) {
float total=0;
for (int i=0; i<AMOSTRAS; i++) {
total += 1.0 * analogRead(portaAnalogica);
delay(5);
}
return total / (float)AMOSTRAS;
}
void mostraTensoes() {
Serial.print("Tensao em A0: ");
Serial.print(tensaoA0 * relacaoA0);
Serial.println ("V");
}
void loop() {
tensaoA0 = (lePorta(A0) * aRef) / 1024.0;
mostraTensoes();
delay(500);
}
@gleiserrodrigues
Copy link

O que seria esse valor 65 para a variável relacaoA0? Ele é em função de que?

@mauronr
Copy link

mauronr commented Apr 2, 2019

O que seria esse valor 65 para a variável relacaoA0? Ele é em função de que?

Tenho exatamente a mesma dúvida, incluindo o que significa, os outros fatores como "aRef" e a divisão por 1024 dentro do loop()

@softov
Copy link

softov commented Jul 22, 2019

aRef, seria o referencial de alimentação!

Se alimentar ele com 5v, ele irá retornar 5VDC no pico máximo.
Se alimentar ele com 3.3v, ele irá retornar 3.3VDC no pico máximo.

Ele lê no máximo 330VAC/325VAC

Assim, 325 / 65 = 5.

Os arduinos (nano, mega) leem no máximo até 1024.
Assim aplicasse o valor de conversão. (READ * 5) / 1024.
Regra de 3 básica.
Depois multiplica pelo fator 65.

É importante saber o microcontrolador que está usando, e se ele está operando em 3.3 ou 5v.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment