Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!