checar status de lampada e sinalizar se alguma queimar

pessoal boa noite! 

estou trabalhando em um projeto com um pequeno circuito de um chicote eletrico automotivo, onde o mesmo possue quatro lampadas e eu gostaria de utilizar o arduino junto com um sensor de corrnte acs 712 para realizar a medição da corrente e indentificar com um sinal sonoro se queimar alguma lampada.

fiz ligado diretamente em dois reles mais só acionava o sinal sonoro se tirasse as duas lampadas pois se queimar uma a outra continua fechando o circuito....

preciso de ajuda!!! ja tenho o arduino e um sensor de corrente ACS 712 , lembrando que vou ligar em corente continua.

Exibições: 871

Anexos

Responder esta

Respostas a este tópico

Oi LB, boa noite.

Primeiro vamos falar do conceito.

Você enfatizou no seu texto que vai usar CC, mas no desenho definiu F (Fase) e N (Neutro)

Em CC não temos Fase e Neutro, e sim + ou - V e Gnd. (Conceitual).

Em segundo lugar, acho que você pode detectar lampada queimada usando as porta analógicas do

arduino, e sem necessidade de usar o ACS712.

Veja o esquema que desenhei. Com a lampada boa, e acessa, você tem +0,7V sobre o diodo,

mas se ela estiver apagada ou queimada, terá 0V sobre o diodo

Você mede estes pontos com cada porta analógica, e saberá se tem lampada queimada.

Não sei se esta diferença de 0,7V fará diferença no seu projeto.

Rui

Rui viana obrigado ...

entendir o circuitoé como vc descreveu mesmo porem não posso mexer nele não , pois isso é um chicole eletrico automotivo e estou desenvolvendo um tipo de teste das lampadas , tenho que fazer tudo na entrada co circuito .

E eu ja comprei dois sensores ACS 712 para implementar no projeto quero ajuda na programação por favor.

Alguem mais pode me ajudar...????

Tb acho um certo desperdicio usar o ACS712, mas já que vc comprou...

Se entendi os diodos no negativo não te servem pq vc precisa usar a ligação atual ao negativo, que já está feita sem os diodos (carro). Teria que fazer uma medição pelo positivo. Ok, o ACS é uma covardia, mas vai te servir bem.

Vc tem que ler o pino onde ligou o ACS712 de forma analogica, ir plotando qual a medição para tudo ok, 1 lampada e nenhuma lampada.

Deve ser algo como 0 para nenhum X para uma e 2X para as duas...

Aih com um comando IF vc busca um valor igual a coisa como 1,8X ( o mesmo que 2X com uma margem de erro).

Acho que é isso, se entendi.

ola boa noite! uma ideia e usar fotoacopladores em paralelo com as lampadas, um resistor de 1k  com fotoacopladores em paralelo com as lampadas, ligado nas portas analogicas ou digitais do arduino.

Anexos
Bom dia Eduardo H. Marcondes, eu comprei o acs 712 porem se tiver outras possibilidades eu gostaria dessa ajuda sim, comprei porque achei uma solução mais posso mudar sim .vc sugeria algo diferente pra esse projeto:

Estive pensando e acho que de fato complica... O ACS é uma solução limpa e prática.

A solução sem ele pode ser:

Colocar um resistor baixo (0,1 OHM por ex), e medir a tensão sobre ele com um operacional. O drama é que um dos lados do resistor estaria no +12V e a alimentação do operacional tb em +12V. Ele não responde bem perto de GND e de VCC.

Outra seria um optoacoplador em paralelo com um resistor um pouco maior. Mas para acender seria preciso uma tensão significativa nele (2,8V ?). Seria uma queda muito consideravel.

Enfim, acho que o ACS é sim uma saida fácil e inteligente.

Se a medição fosse no GND mudava tudo, daria pra fazer fácil um um resistor e um transistor por ex.

Nelson Toshio Hirai como coloquei no circuito temos um paralelo com duas lâmpadas jampiadas não são individuais não.

//Programação

#include <LiquidCrystal.h> 
#define Luz_Fundo  7
//cria um objeto tipo LiquidCrystal que chamei de "lcd" nos pinos citados:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin =A0;
int sensorPin2 =A1;
int B =13;
 
int sensorValue_aux = 0;
float sensorValue = 0;
float currentValue = 0;
float voltsporUnidade = 0.004887586;// 5%1023
int sensorValue_aux2 = 0;
float sensorValue2 = 0;
float currentValue2 = 0;
float voltsporUnidade2 = 0.004887586;// 5%1023
 
void setup() {
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
  pinMode(sensorPin2, INPUT);
  pinMode(B, OUTPUT);
  
  lcd.begin(16, 2); // Iniciando o objeto "lcd" de 2 linhas e 16 colunas
  pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
  digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
}
 
void loop() {
 
  for(int i=100; i>0; i--){
    sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é (1023)vcc/2 para corrente =0
    sensorValue += pow(sensorValue_aux,2); // somam os quadrados das leituras.
  }
  for(int i=100; i>0; i--){
    sensorValue_aux2 = (analogRead(sensorPin2) -511); // le o sensor na pino analogico A1 e ajusta o valor lido ja que a saída do sensor é (1023)vcc/2 para corrente =0
    sensorValue2 += pow(sensorValue_aux2,2); // somam os quadrados das leituras.
  }
 
  sensorValue = (sqrt(sensorValue/ 100)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
  currentValue = (sensorValue/0.066); // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
 sensorValue2 = (sqrt(sensorValue2/ 100)) * voltsporUnidade2; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
 currentValue2 = (sensorValue2/0.066); // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
 
  // mostra o resultado no terminal
  Serial.print(currentValue,3);
  Serial.print(" A \n" ); 
 
  sensorValue =0;
  Serial.print(currentValue2,3);
  Serial.print(" A \n" ); 
 
  sensorValue2 =0;
  delay(1000);
  lcd.setCursor(0,0); // seta o cursor para: (coluna = 0, linha = 0)
  lcd.print(" Corrente (A) ");
  lcd.setCursor(0,1); // seta para linha 1, ou seja, a linha de baixo
  lcd.print(" currentValue,3 ");
  lcd.setCursor(7,1); // seta para linha 1, ou seja, a linha de baixo
  lcd.print(" currentValue2,3 ");
  if (currentValue < 3.0600){
digitalWrite(B, 1);
}
else{
digitalWrite(B, 0);
}
  if (currentValue2 < 2.0600){
digitalWrite(B, 1);
}
else{
digitalWrite(B, 0);
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço