top of page

Do Bit ao Byte!!! Sensor de Tensão P8


Tudo o que você precisa é de um divisor de tensão, mas esse sensor da GBK Robotics tem adicionalmente um optocoupler para fazer o isolamento da rede AC, protegendo assim o lado digital do seu circuito.

O sensor de tensão se baseia simplesmente no divisor de tensão. Esse sensor da GBK Robotics utiliza um resistor de 220K e um resistor de 10K. R1 é o resistor mais alto, de modo que R2 = 10k. Depois, tudo que precisa ser feito é calcular a saída assim:

Vou conectar esse módulo a um Arduino Nano do nosso parceiro Fulltronic (esse Nano da foto). O dock do Nano também pode ser adquirido com eles e garanto, é bem melhor utilizar jumpers femea-femea do que a protoboard, ficam menos fios e mais rápido de prototipar.

Antes de seguirmos, gostaria de dizer que da data dessa publicação à mais 48 dias a GBK Robotics está no Catarse com uma campanha para construir um espaço maker. Me parece um projeto bastante interessante e caso tenha interesse em participar, siga o link.

Wiring

O wiring é muito simples, basta conectar Out da board ao A0 do Arduino (o código serve para qualquer Arduino). O 5V vai ao 5V do Arduino e o GND vai ao GND do Arduino.

Agora basta ler e aplicar a fórmula descrita anteriormente. Você pode querer um pouco de precisão na leitura. Nesse caso, coletar algumas amostras e tirar a média pode ser uma boa opção. O código para tal pode ficar assim:

#define R1 220000.0

#define R2 10000.0

#define SAMPLES 5

float acum = 0;

int analog0 = 0;

int loops = 0;

float v1 = 0;

void calc(){

analog0 = analogRead(0);

v1 = (5.0 * analog0)/1024.0;

Serial.print(“Valor da amostragem “);

Serial.print(loops);

Serial.print(“: “);

Serial.println(v1);

if (v1 < 1){

return;

}

acum += v1/(R2/(R2+R1));

loops++;

if (loops >4){

loops = 0;

float result = acum/SAMPLES;

Serial.print(“V=”);

Serial.println(result);

}

delay(200);

}

void setup() {

pinMode(0,INPUT);

Serial.begin(9600);

Serial.println(“Iniciando”);

}

void loop() {

calc();

}

A serial ficará imprimindo muito rápido devido ao delay curto, mas esse delay de 200ms aproxima a media a 1 segundo, considerando que a amostragem tirada é de 5 samples.

Apenas para exclarecer, o valor 1024.0 se trata da resolução do pino analógico, que é de 10 bits. Se você utilizar uma MCU com mais resolução, basta subir esse valor. Por exemplo, se for 12 bits, troque para 4096.0. Se for utilizar o ESP8266, você precisará utilizar um divisor de tensão extra para derrubar a tensão para 1V, que é o máximo permitido na porta analógica dele. Escreverei um artigo a respeito.

Prefere twitter? @DobitAoByte.


Posts Em Destaque
Posts Recentes
Arquivo
Procurar por tags
Nenhum tag.
Siga
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page