GALERA BOA NOITE

GOSTARIA DE SABER SE ALGUEM PODE ME AJUDAR NESSE PROJETO POIS NAO SEI PROGRAMAR MUITA COISA. QUERIA CONTROLAR O NIVEL MAXIMO E MINIMO EM 4 TANQUES LIGANDO 4 BOMBAS INDEPENDENTES PARA CADA TANQUE. SENDO QUE QUERO PROGRAMAR EM UM UNICO ARDUINO. NO NIVEL MINIMO LIGA A BOMBA E NO MAXIMO DESLIGA A BOMBA, SENDO QUE PARA 4 TANQUES E UM UNICO ARDUINO. PODEMOS COMECAR COM 2 TANQUES DAI EU SO REPLICO O PROGRAMA CASO POSSA. ATUALMENTE EU SO TENHO O ARDUINO UNO NA MAO QUE CREIO QUE PARA 2 TANQUES CONSIGA PROGRAMAR E FUNCIONAR ALGUEM PODE ME AJUDAR POR FAVOR

Exibições: 1289

Anexos

Responder esta

Respostas a este tópico

TMS, teste esse novo código. Na verdade praticamente mudei apenas os pinos e os nomes definidos às portas para facilitar o entendimento do código, alterei a lógica principal também.

Pelo que você escreveu acima, a condição para a bomba ligar é que qualquer um dos sensores feche seus contatos, ou um ou os dois, a bomba vai ligar da mesma forma.

A condição para ela desligar é que os dois estejam abertos.

Uma sugestão, apesar de ter mantido essa ligação, você está utilizando muitos pinos analógicos (A0, A1, A2...) como entradas digitais, isso é um desperdício de recursos quando você poderia utilizar as outras entradas digitais disponíveis na placa para esse fim e poderia aproveitar melhor as entradas analógicas para ler temperaturas, pressão ou outra medida analógica.

Mas de qualquer forma esse code vai funcionar também. Depois você pode tentar mudar os pinos para entrada digitais e mudá-los no code também, assim aumentará seu apredizado. Se este code funcionar, compare o código anterior com esse e veja o que mudou, o que estava de errado no outro. Se tiver dúvidas continue postando.

Anexos
Ok Daniel irei testar o programa. Sei que A0 A1 A2.... são analógicos, só que nesse projeto não irei ler sensores analógicos. Já já lhe digo se conseguimos ir adiante. Abracos

Daniel a logica esta quase certa. sendo que a bomba esta ligando qnd os sensor min e max ficam NO e esta desligando quando qualquer um dos 2 ficam em NC. 

se eu inverter o switchs para a logica NO a bomba fica ligado direto ate ai esta correto, sendo que para desligar, o sensor maximo que desligaria mas o minimo qnd fica em NC desliga ou o max em NC tmb, sendo que o minimo teria que ficar em nc e o maximo em nc para ela desligar

Mas você está mandando GND para as entradas? Esse code fiz para utilizar com o GND ao invés de 5V visto que você falou que precisa utilizar o GND. Esqueci de mencionar isso.

Isso ele está funcionando com gnd só que está ligando qnd a bomba quando eu solto qualquer switch tanto o Max ou mínimo. E era para esta ligando a bomba qnd o máximo abrir e o mínimo abrir

Ok, você está utlizando os contatos NO ou NC das microchaves?

Ficou confuso, era pra ligar quando o máximo abrir e o mínimo abrir? Não foi isso que você descreveu acima.

SENSOR MIN NC (Normal Close ou fechado)
SENSOR MAX NC (Normal Close ou fechado)
BOMBA LIGA (Se os dois tiverem fechado = bomba liga)

SENSOR MIN NO (Normal Open ou aberto)
SENSOR MAX NC (Normal Close ou fechado)
BOMBA LIGADA AINDA (Se um só tá fechado a bomba tbm liga)

SENSOR MIN NO (Normal Open ou aberto)
SENSOR MAX NO (Normal Close ou fechado)
BOMBA DESLIGA. (Se os dois tiverem aberto = bomba desliga)

Olha acho que consegui, mudei a sua lógica onde tinha II no else if eu coloquei && e está funcionando irei ver os 4 sensores se pega ok.

Ok, então a lógica é diferente mesmo da que você tinha me passado?

Eu me equivoquei a funcao II significa o que? E a && significa o que?

São comparadors lógicos

|| equivale a lógica "ou"(OR)

&& equivale a lógica "e"(AND)

Você conhece lógica booleana?


Mas o code está funcionando corretamente agora?
Daniel o programa está funcionando perfeito. Conheço de álgebra bolean a só não sou muito adepto de programação. Mas já vi que tenho que ir à fundo. Agora surgiu um outro problema o ls sensores que vou usar são sensores difuso fotoeletrico ( infravermelho) são industriais sendo que ele tem uma saída positiva de 12 v irei colocar um difusor resistivo para baixar a tensão para 5v. Sendo que o shield rele já é alimentado em um pino com 5v e preciso mandar gnd para o outro pino do rele. Como é que faço agora se a minha saída do sensor e 5v

Que bom que o programa funcionou!! 

Já que você vai mandar o GND para os releś você pode usar o drive ULN2003A, tem vários tutoriais de como utliliza-lo. Ele é um CI com um array de 7 transistores Darlington se não me engano. Nesse link explica como fazer isso. Não achei nehum link de tutorial desse CI com relés em português, mas dá pra usar a tradução do google nesse em inglês. 

https://electrosome.com/interfacing-relay-with-pic-microcontroller/

Nesse outro link o pessoal dá umas dicas legais sobre ele também.

http://labdegaragem.com/forum/topics/uln2003-hemo-sens-vel-ou-n-o

Para o sinal dos sensores, seria bom utlizar acopladores óticos pra garantir que jamais chegue 12V numa entrada do arduino, visto que isso com certeza a queimaria. Um divisor resistivo não é seguro visto que se um dos resistores queimar (no caso oque vi ligado ao GND), você terá 12V na entrada do arduino. 

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço