Ir ao conteúdo
  • Cadastre-se

C me deem um suporte nesse projeto pfv!


Boladoloko

Posts recomendados

Olá pessoal, sou iniciante na programação e estou montando um projeto de um teto solar em uma estufa (tudo controlado pelo Arduino UNO),

eu e um amigo estrangeiro do "reddit" montamos esse código. Eu fiz o código base que trabalha com um sensor de chuva para abrir ou fechar quando o tempo mudasse, e ele melhorou bastante mas nessa melhora que ele fez ele adicionou dois #defines, que acho que seriam para sensores de parada do teto na abertura e no fechamento, se puderem me ajudar identificando o que ele quis fazer agradeço.

 

Mas o problema maior não é esse, preciso que esse teto trabalhe tanbem com um sensor LDR para quando estiver de dia o teto abrir e a noite fechar mas como sou muito iniciante, não tenho noção de como fazer isso. É nessa parte que peço a ajuda de vocês, se podem implementar esse meu código colocando tal função. por favor!

 

/*pinos usados*/
#define pinSensorChuva A1
#define pinMotor 5

//************************************************************************************
#define sunroof_open_switch 55        // these pin numbers need to be corrected
#define sunroof_closed_switch 56    // these pin numbers need to be corrected
//************************************************************************************


/*variaveis globais*/
int pino_passo = 5;
int pino_direcao = 4;

/*direção do giro*/
int direcao = 1;

// Volta completa pra formar 1 giro
// Ajuste de acordo com o seu motor
int passos_motor = 360;

int sunroof_open_switch_value;        
int sunroof_closed_switch_value; 

void setup()
{

  Serial.begin(9600);
  pinMode(pino_passo, OUTPUT);
  pinMode(pino_direcao, OUTPUT);

  pinMode(sunroof_open_switch, INPUT_PULLUP); 
  pinMode(sunroof_closed_switch, INPUT_PULLUP);
}

void loop()
{
  /*monitoramento*/
  Serial.print("  SensorChuva:");
  Serial.print(analogRead(pinSensorChuva));
  Serial.print("  ");
  Serial.print("  Atuador:");

  /* Programa */

    if (analogRead(pinSensorChuva) > 700)
    {               
        // if the sunroof is not full open
        sunroof_open_switch_value = digitalRead(sunroof_open_switch); 
        if (sunroof_open_switch_value == 1)    // switch not closed, prepare to run motor  
        {
            Serial.println("TETO ABERTO");
            direcao = 1;
            digitalWrite(pino_direcao, direcao);
            for (int p = 0 ; p < passos_motor; p++)
            {
                sunroof_open_switch_value = digitalRead(sunroof_open_switch);
                if (sunroof_open_switch_value == 0)   // switch is closed, DO NOT make motor run  
                    break;
                digitalWrite(pino_passo, 1);
                delay(1);
                digitalWrite(pino_passo, 0);
                delay(1);
            }
        }
  }
  else
  {
        // if the sunroof is not full closed
        sunroof_closed_switch_value = digitalRead(sunroof_closed_switch);
        if (sunroof_closed_switch_value == 1)     // switch not closed, prepare to run motor 
        {
            Serial.println("TETO FECHADO");
            direcao = 0;
            digitalWrite(pino_direcao, direcao);
            for (int p = 0 ; p < passos_motor; p++)
            {
                sunroof_closed_switch_value = digitalRead(sunroof_closed_switch);
                if (sunroof_closed_switch_value == 0)   // switch is closed, DO NOT make motor run
                    break;
                digitalWrite(pino_passo, 1);
                delay(1);
                digitalWrite(pino_passo, 0);
                delay(1);
            }
        }
    }
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Olá, tudo bem?

pinSensorChuva A1: Observou que foi posto A1 para o pino analógico? Isso sei que é o mesmo que 1 na sequência de conexões analógicas, vale também em alguns casos colocar penas valor 1. Para o sensor LDR  ponha 0 ou o disponível. Agora no mesmo local em que se encontra a proposição do Sensor de Chuva coloque também o Sendo de Luz. Bem aqui:

if (analogRead(pinSensorChuva)  >  700 || analogRead(ldr_pin_sensor_light)  >=  xxx )
/* ..."resto do código" ... */

*observe que o sensor de luz no exemplo acima também e analógico.

 

Ok tchau!

.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...