ola pessoal sou iniciante no arduino quero de fazer um circuito usando um sensor de fluxo da agua um display 16x2 um arduino e um buzzer para exibir litros por minuto no display e tocar o buzzer quando passar um litro pelo sensor gostaria q vcs me ajudassem no código agradeço

Exibições: 1083

Responder esta

Respostas a este tópico

valeu cara ajudou mas meu maior problema e tocar um buzzer a cada um litro de agua que passa pelo sensor

seu maior problema é tocar o buzzer ou é detectar cada litro de água?

eu tenho esses dois problemas, mas eu quero quando passar um litro de agua o buzzer emita um som quando parar de passar agua pelo sensor o buzzer pare

eu só estava te enchendo o saco porque do jeito que vc colocou, ficou parecendo que o problema é acionar o buzzer...

acionar buzzer é simples: tenho um aqui que basta ligar 5V na perninha (+) e o GND na perninha (-). Simples assim, nem mesmo um resistor esse meu buzzer necessita...não precisa ter primeiro grau pra isso... 

O seu grande problema é detectar o tal litro a litro. Isso te exigirá muita pesquisa e habilidade e acredito ser tão difícil quanto fazer o arduino detectar pesos com precisão. A maioria dos sensores acessíveis não tem acurácia suficiente para aplicações que exigem medidas mais exatas. Ora errarão 400ml, ora errarão 100ml, ora errarão muito, ora errarão pouco, tanto pra cima quanto pra baixo. E por mais que vc se esforce em tentar calibrar, vc ficará frustrado.

Sensores que permitem medir volume de líquido com mais exatidão são caros porque usam técnicas muito mais sofisticadas do que uma simples borboletinha que roda conforme o líquido passa.

Voltando ao buzzer: se vc for capaz de conseguir detectar a passagem de água a cada litro, que é a parte realmente que te deixará careca, acredito que vc já pode ser considerado nível JEDI e acionar o buzzer será melzinho da chupeta. 

Em outras palavras: foque em tentar descobrir como faz pra detectar a passagem de água litro a litro. O que vc fará depois (acionar buzzer, acender led, tocar musiquinha, exibir a info no display, enviar SMS) isso tudo é secundário.

Valeu cara tu e demais

se vc comprar um sensor de nivel de carro vai funcionar 

tem uns que tem o modelo tubular(linha fiat uno antigo) e tem uns que eh um tipo de alavanca 

nao eh dificil de fazer sua leitura no arduino 

Pelo que entendi aqui, deseja-se detectar fluxo, e não nível. São coisas bem diferentes.

Suponha uma caixa d'água que tenha 500 litros de capacidade. Medir nível é saber quantos litros existe de água na caixa. Medir fluxo é saber quanto de água está entrando ou saindo. Uma caixa pode estar constantemente cheia com os 500 litros e pode estar com fluxo zero. Também pode estar constantemente cheia com os 500 litros e pode estar com fluxo de 20 litros por minuto.

leia o topico dnv talvez refresque sua mente

ola pessoal sou iniciante no arduino quero de fazer um circuito usando um sensor de fluxo da agua um display 16x2 um arduino e um buzzer para exibir litros por minuto no display e tocar o buzzer "quando passar um litro pelo sensor gostaria q vcs me ajudassem no código agradeço"

galera consegui pegando o código de outros projetos mas so consigo exibir na porta serial quero ajuda para exibir em um lcd 16x2 olha ai o código:

#define BUZZERPIN 13
#define FLOWSENSORPIN 3

volatile uint16_t pulses = 0;
volatile uint8_t lastflowpinstate;
volatile uint32_t lastflowratetimer = 0;
volatile float flowrate;

float old_liters = -1;

SIGNAL(TIMER0_COMPA_vect) {
  uint8_t x = digitalRead(FLOWSENSORPIN);
  if (x == lastflowpinstate) {
    lastflowratetimer++;
    return; // nothing changed!
  }
  if (x == HIGH) { // low to high transition!
    pulses++;
  }
  lastflowpinstate = x;
  flowrate = 1000.0;
  flowrate /= lastflowratetimer; // in hertz
  lastflowratetimer = 0;
}

void useInterrupt(boolean v) {
  if (v) {
    // Timer0 is already used for millis() - we'll just interrupt somewhere
    // in the middle and call the "Compare A" function above
    OCR0A = 0xAF;
    TIMSK0 |= _BV(OCIE0A);
  } else {
    // do not call the interrupt function COMPA anymore
    TIMSK0 &= ~_BV(OCIE0A);
  }
}

void setup() {
  
  Serial.begin(9600);
  pinMode(BUZZERPIN, OUTPUT);
  pinMode(FLOWSENSORPIN, INPUT);
  digitalWrite(FLOWSENSORPIN, HIGH);
  lastflowpinstate = digitalRead(FLOWSENSORPIN);
  useInterrupt(true);
}

void loop() {
  Serial.print("Freq: "); Serial.println(flowrate);
  Serial.print("Pulsos: "); Serial.println(pulses, DEC);
  float liters = pulses;
  liters /= 7.5;
  liters /= 60.0;
  if (liters == old_liters) {
    pulses = 0;
    flowrate = 0;
    liters = 0;
  }
  Serial.print(liters); Serial.println(" Litros");
  if (liters > 1) {
    digitalWrite(BUZZERPIN, HIGH);
  } else if (liters > 0) {
    digitalWrite(BUZZERPIN, LOW);
  } else {
    digitalWrite(BUZZERPIN, LOW);
  }
  old_liters = liters;
 delay(2000);
}

Pois então jose miguel, foi exatamente o que eu te disse: deseja-se ler fluxo.

O tópico dá a entender que se quer ler o líquido passando, litro a litro, para se obter o fluxo em litros por minuto.

Como vc sugere calcular fluxo com um sensor de nível de combustível de carro?

Sou eu quem não está entendendo a proposta ou é vc?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço