Ir para conteúdo
  • Cadastre-se

MatheusTCC

Membros
  • Posts Por Dia

    0
  • Posts

    2
  • Registrado em

  • Última visita

  • Créditos EBR

    1 [ Doar ]

Conquistas de MatheusTCC

Novato

Novato (1/14)

  • Primeira postagem Rare
  • Iniciador de conversa Rare

Escudos Recentes

1

Joinhas

  1. @nagkiller vou verificar isso na escola então, muito obrigado. Você poderia me passar seu discord para conseguir me ajudar melhor?
  2. Estou fazendo meu TCC e cheguei em um problema. No tinkercad, o circuito funciona normalmente, mas quando faço na pratica, o sensor de umidade fica atualizando no monitor serial o valor 14, e não muda nem mesmo com terra umida e terra seca. Deixarei o código e o link do projeto para quem conseguir me ajudar. Obs: Estou utilizando o pino A0 e não o D0 """""""Projeto no tinkercad""""""""""" #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); const int sensorUmidadeSoloPin = A0; // Pino analógico conectado ao sensor de umidade do solo const int pinoLedVermelho = 5; // Pino digital conectado ao LED vermelho const int pinoLedAmarelo = 6; // Pino digital conectado ao LED amarelo const int pinoLedVerde = 7; // Pino digital conectado ao LED verde const int pinoRele = 10; // Pino digital conectado ao módulo relé const int botaoLigarPin = 2; // Pino digital conectado ao botão de ligar const int botaoDesligarPin = 3; // Pino digital conectado ao botão de desligar const int limiteUmidadeSeco = 250; // Solo seco (menor que 25%) const int limiteUmidadeMedio = 500; // Solo estado médio (50%) const int limiteUmidadeUmido = 750; // Solo úmido (75%) bool sistemaLigado = false; // Variável para rastrear o estado do sistema void setup() { lcd.init(); lcd.begin(16, 2); // Inicializa o LCD lcd.backlight(); // Habilita a iluminação do LCD (caso esteja disponível) lcd.print("Umidade Atual:"); pinMode(pinoLedVermelho, OUTPUT); pinMode(pinoLedAmarelo, OUTPUT); pinMode(pinoLedVerde, OUTPUT); pinMode(pinoRele, OUTPUT); digitalWrite(pinoRele, LOW); // Certifique-se de que a bomba/irrigador esteja desligado inicialmente pinMode(botaoLigarPin, INPUT_PULLUP); // Configura o botão de ligar como INPUT_PULLUP pinMode(botaoDesligarPin, INPUT_PULLUP); // Configura o botão de desligar como INPUT_PULLUP } void loop() { // Verificar o estado dos botões bool botaoLigarPressionado = digitalRead(botaoLigarPin) == LOW; bool botaoDesligarPressionado = digitalRead(botaoDesligarPin) == LOW; // Verificar o estado do sistema (ligado ou desligado) if (!sistemaLigado && botaoLigarPressionado) { sistemaLigado = true; } else if (sistemaLigado && botaoDesligarPressionado) { sistemaLigado = false; desligarIrrigacao(); // Desliga a irrigação manualmente ao desligar o sistema } if (sistemaLigado) { int umidadeSolo = lerUmidadeSolo(); if (umidadeSolo < limiteUmidadeSeco) { digitalWrite(pinoLedVermelho, HIGH); digitalWrite(pinoLedAmarelo, LOW); digitalWrite(pinoLedVerde, LOW); acionarIrrigacao(); } else if (umidadeSolo < limiteUmidadeUmido) { digitalWrite(pinoLedVermelho, LOW); digitalWrite(pinoLedAmarelo, HIGH); digitalWrite(pinoLedVerde, LOW); acionarIrrigacao(); } else if (umidadeSolo >= limiteUmidadeUmido) { digitalWrite(pinoLedVermelho, LOW); digitalWrite(pinoLedAmarelo, LOW); digitalWrite(pinoLedVerde, HIGH); desligarIrrigacao(); } // Mostrar a porcentagem de umidade ideal no LCD int porcentagemUmidadeIdeal = map(umidadeSolo, 0, 1023, 0, 100); lcd.setCursor(0, 1); lcd.print(" "); // Limpar a linha antes de escrever a nova informação lcd.setCursor(0, 1); lcd.print(porcentagemUmidadeIdeal); lcd.print("%"); } else { // Se o sistema estiver desligado, desliga todos os LEDs e a irrigação digitalWrite(pinoLedVermelho, LOW); digitalWrite(pinoLedAmarelo, LOW); digitalWrite(pinoLedVerde, LOW); desligarIrrigacao(); } delay(100); // Pequeno atraso para evitar o bounce dos botões } int lerUmidadeSolo() { int valorAnalogico = analogRead(sensorUmidadeSoloPin); Serial.print("Valor de Umidade do Solo: "); Serial.println(valorAnalogico); return valorAnalogico; } void acionarIrrigacao() { digitalWrite(pinoRele, HIGH); // Ligar a bomba/irrigador } void desligarIrrigacao() { digitalWrite(pinoRele, LOW); // Desligar a bomba/irrigador }

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...