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: 1288

Anexos

Responder esta

Respostas a este tópico

o seu tambem Daniel so funcionou a entrada 7 e 8 com a saida 7. qual a tensao de chaveamento. gnd ou 5v na entrada dos pinos?

Mude o nome após o download.

mudei o nome do seu programa mesmo assim nao funcionou. somente o que funcionou fou o sensor A e B com a saida 7

Boa Tarde Rui , estive olhando o seu codigo e simulei e funciona normalmente sim,  so tem um pequeno erro no codigo que e , no Loop :

LigaBomba(portabombaB, portasensorC, portasensorD); // Chama funcao liga desliga bomba B

LigaBomba(portabombaC, portasensorD, portasensorE); // Chama funcao liga desliga bomba C   ---aqui o sensor D e o E , tem que ser E e F

LigaBomba(portabombaD, portasensorF, portasensorG); // Chama funcao liga desliga bomba D  ----aqui o sensor F e o G , tem que ser G e H

Rodar ele roda só quando coloco no arduino que ligo os swtichs em suas respectivas portas ele não funciona. Essa parte do F PARA O H eu já arrumei. Mesmo assim não roda no hardware

Você deve utilizar 5V nas entradas. Mas pra que a gente possa entender melhor, precisamos que você responda o seguinte:

- Na condição de nível mínimo, qual o estado do sensor inferior (fechado ou aberto) e do sensor superior (fechado ou aberto)? E o que deve acontecer com a bomba (Ligar ou desligar)?

- Na condição de nível máximo, qual o estado do sensor inferior (fechado ou aberto) e do sensor superior (fechado ou aberto)? E o que deve acontecer com a bomba (Ligar ou desligar)?

- Na foto que você anexou parece ser um shield arduino com 4 relés, esse shield aciona os relés quando a saída do arduino está em nível HIGH ou LOW?

-Você tem o datasheet desse shield ou algum link sobre ele?

Definidas essas questões vai ser mais fácil desenvolver a lógica.

Estou utilizando um shield rele 4 canais no qual preciso de saída gnd.

Na condição de nivel mínimo, o sensor inferior fica aberto e o sensor superior fica fechado passando gnd para o arduino. Com isso a bomba liga.
Na condição de nivel máximo o sensor inferior fica aberto e o superior aberto d3sligando a bomba.

SENSOR MIN NC
SENSOR MAX NC
BOMBA LIGA

SENSOR MIN NO
SENSOR MAX NC
BOMBA LIGADA AINDA

SENSOR MIN NO
SENSOR MAX NO
BOMBA DESLIGA.


assim meu programa inicial está rodando tanto no IDO. como no hardware

Ok, entendi, agora eu preciso que você confirme em quais saídas do arduino estão os relés 1,2,3 e 4 e em quais entradas estão os sensores min. e máx. 1,2,3 e 4?

Saídas do rele 7,6,5 e 4
Entradas
MIN A0
Max A1
SAÍDA 7

MIN A2
MAX A3
SAÍDA 6

MIN A4
MAX A5
SAÍDA 5

MIN 8
MAX 9
SAÍDA 4

Com essas ligações nao iria funcionar mesmo porque está definido no códigos pinos diferentes tanto para entrada como saída. Mantenha estas ligações, estou escrevendo outro código já te envio.

Irei manter as mesma ligações que lhe passei ok? Isso implementei agora para comportar os 8 sensores para 4 saidas
Sei que não pode anexar aqui código mas como não estou conseguindo anexar vou colar aqui para vc ver o código que está funcionando no arduino .
Min A0
Max A1
SAÍDA 7


const int portasensorA = A0; // Sensor superior Se fechado bomba fica ligada direto
const int portasensorB = A1; // Sensor inferior Se fechado bomba fica ligada a cada 20 segundos, se Aberto bomba parada
const int portabomba = 7; // Controle da bomba


void setup()
{
pinMode(portasensorA, INPUT); // Port do sensor A como entrada
pinMode(portasensorB, INPUT); // Port do sensor B como entrada
pinMode(portabomba, OUTPUT); // Port controle da bomba com saída

digitalWrite(portasensorA, HIGH); // Puul-Up Entrada sensor A
digitalWrite(portasensorB, HIGH); // Puul-Up Entrada sensor B
digitalWrite(portabomba, HIGH); // Desliga a Bomba

}
void loop()
{
if (digitalRead(portasensorA)== HIGH) // TEM AGUA
{
digitalWrite(portabomba, LOW); // LIGA BOMBA
}
else
{
digitalWrite(portabomba, HIGH); // DESLIGA BOMBA



digitalWrite(portabomba, LOW); //

while (digitalRead(portasensorB)== LOW) // N TEM AGUA
{
digitalRead(portasensorA)== LOW; // N TEM AGUA
digitalWrite(portabomba, HIGH); // DESLIGA BOMBA
}
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço