Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

Como usar o sensor de corrente ACS712 30A:

 

 

Nesse tutorial estaremos usando o sensor de corrente para medir valores analógicos de corrente e exibi-los na porta serial do arduino.

 

 

 

 

Precisaremos do sensor, de uma protoboard, do arduino e três fios para ligá-los. O sensor possui três pinos, o GND, o de saída e o VCC.

 

Sensor de corrente ACS712 30A

 

 

 

 

 

O VCC é ligado ao pino de 5V do arduino, o GND no próprio GND e o de saída (central) ligado no pino analógico 5.

 

Ligações

 

 

 

 

 

Alem disso, o cabo que liga o aparelho deve passar pela outra ponta do sensor, sendo que um dos fios (independente de ser positivo ou negativo) deve ir direto para a tomada e o outro deve ser conectado no sensor.

 

Segue abaixo o código para a leitura.

 

{code}

void setup () {
// inicializa a comunicação serial.
Serial.begin(9600);
}

void loop () {
// a leitura obtida direto do sensor varia entre 0 e 1023.
int valor_do_sensor = analogRead(A5);

// exibindo valor obtido.

Serial.print("Leitura do sensor: ");

Serial.println(valor_do_sensor);

//Aqui é feita a conversão do valor lido para amperes e o mesmo varia de -30 a +30.

int valor_amper = map(valor_do_sensor, 0, 1023, -30, 30);

//exibindo o valor depois da comversão.

Serial.print("Leitura em Amperes: ");

Serial.println(valor_amper);

// aguarda 0,7 segundos (700 milissegundos) antes de fazer a próxima leitura.

delay(700);
}

{/code}

 

Avaliação do Usuário

Estrela ativaEstrela ativaEstrela ativaEstrela ativaEstrela ativa

 

Coisas que você que acabou de adquirir seu primeiro Arduino, ou não e quer simular (veja como aqui) para ver como faz, deve tentar:

 

 

1 - Fazer o LED embutido no pino 13 acender

 

 

O mais simples e mais óbvio! O pino digital 13 do Arduino vem com um LED embutido e você pode fazê-lo acender usando programação.

 

 

{code}

void setup() {

pinMode(13,OUTPUT); // Seta o pino 13 como saída

}

 

void loop() {

digitalWrite(13,HIGH); // Acende o LED - se você trocar HIGH por LOW ele apagará

}

{/code}

 

 

2 - Fazer o LED embutido no pino digital 13 piscar

 

 

O segundo mais simples de todos! Basta alternar o pino digital 13 entre ligado (HIGH) e desligado (LOW).

 

 

{code}

void setup() {

pinMode(13,OUTPUT); // Seta o pino 13 como saída

}

 

void loop() {

digitalWrite(13,HIGH); // Acende o LED

delay(1000); // Aguarda 1 segundo (1.000 milissegundos)

digitalWrite(13,LOW); // Apaga o LED

delay(1000); // Aguarda 1 segundo (1.000 milissegundos)

}

{/code}

 

 

3 - Fazer uma função para que o LED do pino digital 13 pisque

 

 

Funções são essenciais para reaproveitamento do código, ao invés de ficar digitando várias vezes a mesma coisa você apenas invoca a função alterando o estado do pino de HIGH para LOW e vice-versa.

 

 

{code}

int valor = HIGH; // variável com o valor atual do pino

void setup() {

pinMode(13,OUTPUT); // Seta o pino 13 como saída

}

 

void loop() {

pisca(); // chama a função

delay(1000); // Aguarda 1 segundo (1.000 milissegundos)

}

 

void pisca() {

if(valor == HIGH) valor = LOW; else valor = HIGH;

digitalWrite(13,valor);

}

{/code}

 

 

4 - Enviar dados pela porta serial

 

 

Com o Arduino é possível enviar dados dele para o computador. Basta fazer upload do sketch e abrir o Monitor Serial.

 

 

{code}

int contador = 0; // variável que será usada como contador e enviada para o PC via porta serial

 

void setup() {

Serial.begin(9600); // inicia a comunicação serial

}

 

void loop() {

Serial.write(contador); // enviar pela porta serial o valor da variável contador

delay(1000); // espera 1 segundo (1.000 milissegundos)

contador++; // incrementa em 1

}

{/code}

 

 

5 - Receber dados pela porta serial

 

 

Também é possível enviar dados do computador para o Arduino. Faça upload do sketch, abra o Monitor Serial, digite a letra a (minúscula) e clique em Enviar. O LED do pino digital 13 acenderá, se você enviar a letra a novamente ele irá apagar.

 

 

{code}

int estado = HIGH;

int recebido = 0;

 

void setup() {

Serial.begin(9600); // inicia a comunicação serial

pinMode(13,OUTPUT); // ajusta o pino digital 13 como saída

digitalWrite(13,estado); // acende o LED embutido no pino digital 13

}

 

void loop() {

if(Serial.available() > 0) { // se houverem dados a serem recebidos

if(Serial.read() == 'a') { // se for igual ao caractere a

if(estado == HIGH) { // se o LED estiver aceso apague e vice-versa

estado = LOW;

Serial.write("Apagou\n"); // escreve mensagem para o Monitor Serial

} else {

estado = HIGH;

Serial.write("Acendeu\n"); // escreve mensagem para o Monitor Serial

}

}

}

digitalWrite(13,estado);

}

{/code}

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

Sistemas de classificação por cores, sistemas de detecção de cores e etc. a imaginação é que manda.

 

 

 

 

 

 

A ligação com o Arduino é simples e o código já está pronto em formato de biblioteca que pode ser importada sem maiores complicações e adaptada para qualquer tipo de aplicação.

 

 

Vamos já para o que interessa:

 

 

Ligue o pino Vcc do sensor em um pino 5V do Arduino. Ligue também o pino GND do sensor a um pino GND do Arduino.

 

 

 

 

 

 

Ligue o pino OE do sensor ao pino digital 8 do Arduino.

 

 

 

 

 

 

Ligue o pino S2 do sensor ao pino digital 12 do Arduino e o pino S3 do sensor ao pino digital 13 do Arduino.

 

 

 

 

 

 

Ligue o pino OUT do sensor ao pino digital 2 do Arduino.

 

 

 

 

 

 

Pronto. Com todas as ligações feitas vamos para a programação.

 

 

Precisaremos de uma biblioteca própria para usar esse sensor, ela pode ser baixada aqui que é o local original e também aqui, uma cópia que fiz no SeuCurso.

 

Após fazer o download da biblioteca copie-a na pasta LIBRARIES no local onde sua IDE Arduino está instalada.

 

Abra a IDE do Arduino, vá ao menu FILE, em seguida em EXAMPLES, ai deve haver uma sub-opção MD_TCS230, selecione o exemplo SIMPLE_NB_TCS230. O código será:

 

 

 

{code}

// TCS230 sensor reading example

//

// This is just to show basic functionality without calibration.

// Utilises the non-blocking version of the reading function.

// Output uses the Serial console.

//

#include

#include >

 

// Pin definitions

#define  S2_OUT  12

#define  S3_OUT  13

#define  OE_OUT   8    // LOW = ENABLED

 

MD_TCS230  CS(S2_OUT, S3_OUT, OE_OUT);

 

void setup()

{

Serial.begin(57600);

Serial.println("[TCS230 Simple NON_BLOCKING Example]");

Serial.println("\nMove the sensor to different color to see the RGB value");

Serial.println("Note: These values are being read in without sensor calibration");

Serial.println("and are likely to be far from reality");

 

CS.begin();

}

 

void readSensor()

{

static  bool  waiting;

 

if (!waiting)

{

CS.read();

waiting = true;

}

else

{

if (CS.available())

{

colorData  rgb;

 

CS.getRGB(&rgb);

Serial.print("RGB [");

Serial.print(rgb.value[TCS230_RGB_R]);

Serial.print(",");

Serial.print(rgb.value[TCS230_RGB_G]);

Serial.print(",");

Serial.print(rgb.value[TCS230_RGB_B]);

Serial.println("]");

 

waiting = false;

}

}

}

 

void loop()

{

readSensor();

}

{/code}

 

 

 

Ligue o Arduino ao computador, você verá que os LEDs do sensor serão acionados assim como o sensor será ligado.

 

 

 

 

 

 

Faça upload desse scketch em seu Arduino e para ver tudo funcionar, basta abrir o Serial Monitor, mas ajuste a taxa de transmissão de dados para 57600 BAUDS.

 

Aproxime seu sensor à objetos coloridos e veja a resposta com codificação decimal RGB.

 

 

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

 

 

Voce vai precisar de:

 

1 arduino

 

 

1 motor de vidro de carro

 

 

1 fonte de computador

 

 

1 transitor TIP102

 

 

1 resistor de 1k

 

 

 

Para ligar a fonte siga o tutorial Como ligar uma fonte ATX fora do gabinete.

 

Coloque o transistor no protoboard

 

 

Ligue o resistor no pino da base do transitor

 

 

Ligue o resistor no pino 3 do arduino

 

 

Ligue o coletor no negativo do motor

 

 

Ligue o emissor no terra do arduino e também no da fonte

 

 

Ligue o positivo do motor no post. da fonte

 

 

Ligue o arduino no pc, e carregue o seguinte codigo:

 

{code}

void setup () {

pinMode (3, OUTPUT);

}

 

void loop (){

digitalWrite (3,HIGH);

delay (1000);

digitalWrite (3,LOW);

delay(1000);

}

{/code}

 

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa

Se você se interessou pelo módulo de rede para Arduino do tutorial Utilizando módulo Ethernet e quiser desenvolver um servidor WEB, ou mesmo um cliente WEB, notará a importância de gerar, enviar e processar os cabeçalhos HTTP (HTTP-Headers).

 

Note que nesse tutorial ele precisa ser gerado para que o navegador saiba o que fazer com o que vem a seguir, ou seja, os dados do potenciômetro, exatamente nesse trecho:

 

 

{code}

bfill.emit_p(PSTR(

"HTTP/1.0 200 OK\r\n"

"Content-Type: text/html\r\n"

"Pragma: no-cache\r\n"

"\r\n"

" "

"$D"),       val);

{/code}

 

 

O cabeçalhos HTTP são especificados pelo RFC (Request for comments) nº 2616 que pode ser lido aqui. Se você faz curso técnico ou superior em TI cobre seu professor de rede para falar com mais detalhes desses cabeçalhos.

 

Bom, vamos ao que interessa, que é conseguir conferir os cabeçalhos enviados e recebidos. Para conseguir isso via console do Linux você precisará ter o cURL instalado.

 

Em distribuições Debian:

 

 

{code}

apt-get install curl

{/code}

 

 

Em distribuições Red Hat (Fedora):

 

 

{code}

yum install curl

{/code}

 

 

Com o cURL instalado, para ver os cabeçalhos use:

 

 

{code}

curl –I www.seucurso.com.br

{/code}

 

 

Com a opção –I (i maiúsculo) o cURL retornará apenas os cabeçalhos HTTP da URL passada.

 

Um cabeçalho 200, ou seja, tudo OK:

 

 

 

 

 

 

 

 

Um cabeçalho 404, ou seja, não encontrado:

 

 

 

 

 

 

 

 

Se você usa apenas sistema operacional Windows você pode conseguir ver os cabeçalhos HTTP usando o navegador Chrome, basta seguir os seguintes passos:

 

Com o Chrome aberto na página que deseja analisar pressione F12, você verá a janela dividir-se e na parte inferior haverá várias abas:

 

 

 

 

 

 

Selecione a aba Network:

 

 

 

 

 

 

Selecione a primeira linha do log e clique na aba Headers:

 

 

 

 

 

 

Agora é só analisar os cabeçalhos.

 

 

Bom desenvolvimento!