Boa noite, comprei uma maquina de gelo porem veio sem placa, pois o funcionamento é simples.

estou começando agora com o Arduíno não tenho muito conhecimento do código, queria saber se alguém pode dar uma luz...

Funcionamento é simples, segue o Código com descrição. Funciona até ligar o motor de inclinação depois ele não lê o interruptor 2

//Maquina de gelo


//porta de entrada interrupitor 1 do motor de inclinação
const int sq1 = 5;
//porta de entrada interrupitor 2 do motor de inclinação
const int sq2 = 6;
//Porta saida para rele ativa bomba dagua
const int m4 = 7;
//Porta de saida rele ativa motor de inclinação
const int m1 = 8;
//porta saida rele ativa vauvola selenoide
const int v1 = 9;
//Porta rele compresor e ventilador
const int m2 = 10;

int valor1 = 5;

int valor2 = 6;


void setup() {
//Define pinos para o rele como saida
pinMode(m4, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(v1, OUTPUT);
pinMode(m2, OUTPUT);

//define pinos de entrada interruptor
pinMode(sq1, INPUT);
pinMode(sq2, INPUT);

delay (1000);

//Liga compressor e ventilador condensador
digitalWrite(m2, HIGH);
}

void loop() {
// verifica interruptor 1 e lida a bomba por 25 segundos
valor1=digitalRead(sq1);
if (valor1 == HIGH)
{
digitalWrite(m4, HIGH);

}
delay (2500);

{
digitalWrite(m4, LOW);
}
//aguarda 10 min para formar o gelo
delay (12000);


//liga motor de inclinacção
digitalWrite(m1, HIGH);
{
//verifica interruptpor 2 (motor ja virou)
valor2=digitalRead(sq2);
}

if (valor2 == HIGH)

{
//desliga motor de incli... e liga selenoide e aguarda 10s
digitalWrite(m1, LOW);
digitalWrite(v1, HIGH);

}
delay (10000);

{
//desliga selenoide e liga morot de incli...
digitalWrite(v1, LOW);
digitalWrite(m1, HIGH);
}

}

Exibições: 549

Responder esta

Respostas a este tópico

Essa parte do seu código não faz sentido

//liga motor de inclinacção
digitalWrite(m1, HIGH);
{
//verifica interruptpor 2 (motor ja virou) 
valor2=digitalRead(sq2);
}

Explique passo a passo o que o seu código deve fazer (como em um diagrama de blocos), assim poderemos te ajudar e corrigir e melhor esse código.

O código está "bagunçado"

Bom o seguinte vou explicar como ela deve funcionar.

Explicação entre parenteses

Na teoria é simples, mas não tive sucesso, não sei se seria assim mas foi a ideia que tive pelo pouco que sei do código posso fazer um vídeo de como ela funcionaria pra vcs entenderem melhor

//Maquina de gelo


//porta de entrada interruptor 1 do motor de inclinação
const int sq1 = 5;
//porta de entrada interruptor 2 do motor de inclinação
const int sq2 = 6;
//Porta saida para rele ativa bomba dagua
const int m4 = 7;
//Porta de saida rele ativa motor de inclinação
const int m1 = 9;
//porta saida rele ativa vauvola selenoide
const int v1 = 12;
//Porta rele compresor e ventilador
const int m2 = 10;

int valor1 = 5;

int valor2 = 6;


void setup() {
//Define pinos para o rele como saida
pinMode(m4, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(v1, OUTPUT);
pinMode(m2, OUTPUT);

//define pinos de entrada interruptor
pinMode(sq1, INPUT);
pinMode(sq2, INPUT);

delay (1000);

//Liga compressor e ventilador condensador sempre ficara ligado
digitalWrite(m2, HIGH);
}

void loop() {
// verifica interruptor 1 e liga a bomba por 25 segundos (interruptor 1 é referente ao motor de inclinação ou a posição dele)


valor1=digitalRead(sq1);
if (valor1 == HIGH)          (aqui seria para verificar o interruptor se esta fechado.se estiver)    
{
digitalWrite(m4, HIGH);   (Ele liga a bomba d agua)

}
delay (25000);               (E aguarda 25s)

{
digitalWrite(m4, LOW);   (Em seguida desliga)
}
//aguarda 10 min para formar o gelo
delay (6000);       (Aqui a bandeja esta cheia de água compressor sempre ligado formando gelo. isso leva 10 min. Detalhe a bandeja nessa posição esta acionando o interruptor 1.)


//liga motor de inclinacção
digitalWrite(m1, HIGH);  (Passado 10min ele liga o motor de inclinação virando a bandeja rumo ao interruptor 2 esvaziando a água.
{
//verifica interruptpor 2 (motor ja virou)
valor2=digitalRead(sq2); (quando ele acionar o interruptor 2 )
}
if (valor2 == HIGH)

{
//desliga motor de incli... e liga selenoide e aguarda 10s
digitalWrite(m1, LOW); (desliga o motor de inclinação e fica parado)
digitalWrite(v1, HIGH); (Liga a solenoide para soltar os gelos isso leva 15s
}
delay (15000);

{
//desliga selenoide e liga morot de incli...
digitalWrite(v1, LOW);                  (desliga a solenoide)
digitalWrite(m1, HIGH);          (torna ligar o motor de inclinação para chegar no interruptor 1)

if (valor1 == HIGH)          (ao tocar o interruptor 1 desligar e começar o processo novamente)
{
digitalWrite(m1, LOW);

}
}
}

Consegui

//Maquina de gelo


//porta de entrada interrupitor 1 do motor de inclinação
const int sq1 = A0;
//porta de entrada interrupitor 2 do motor de inclinação
const int sq2 = A2;
//Porta saida para rele ativa bomba dagua
const int m4 = 7;
//Porta de saida rele ativa motor de inclinação
const int m1 = 8;
//porta saida rele ativa vauvola selenoide
const int v1 = 12;
//Porta rele compresor e ventilador
const int m2 = 10;


void setup() {
Serial.begin(9600);
//Define pinos para o rele como saida
pinMode(m4, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(v1, OUTPUT);
pinMode(m2, OUTPUT);

//define pinos de entrada interruptor
pinMode(sq1, INPUT);
pinMode(sq2, INPUT);

delay (1000);

//Liga compressor e ventilador condensador
digitalWrite(m2, HIGH);
}

void loop() {



digitalWrite(m1, HIGH);


if (analogRead(0)>0.500)
{
digitalWrite(m1, LOW);
digitalWrite(v1, LOW);
digitalWrite(m4, HIGH);
delay(25000);
digitalWrite(m4, LOW);
delay (600000);
}
{
digitalWrite(m1, HIGH);
delay(500);
}

if (analogRead(2)>0.500)
{
digitalWrite(m1, LOW);
digitalWrite(v1, HIGH);
delay (10000);
}


}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço