Collegamento Relè all'attivazione di arduino

Buongiorno ho un problema con una scheda relè di arduino per il rabbocco di acqua per un acquario marino.Ho inserito al posto dell'interruttore un galleggiante che mi permette di eccitare il rele e quindi di azionarmi una pompa per il rabbocco dell'acqua evaporata.
Il problema è che se resetto arduino o lo collego al pc il rele si eccita per un secondo e poi si spegne io invece vorrei che rimanesse spento.grazie

#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <DS3231.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 36
int  val = 0;  
const int relay1 = 49;
const int inputPin = 2;

OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
DS3231  rtc(SDA, SCL);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() { 
 pinMode(relay1,OUTPUT);
 pinMode(inputPin,INPUT);
 digitalWrite(relay1,LOW);
 rtc.begin();
 //rtc.setTime(16,16,00);
 //rtc.setDate(03,07,2017);
 lcd.backlight(); 
 lcd.begin(20,4);
 lcd.clear();
 sensors.begin();
 
 
  }

void loop() { 
 
 lcd.setCursor(0,0);
 lcd.print(rtc.getDateStr());
 lcd.setCursor(12,0);
 lcd.print(rtc.getTimeStr());
 
sensors.requestTemperatures();

lcd.setCursor(0,1);
lcd.print("Reef: ");
lcd.print(sensors.getTempCByIndex(0));
lcd.setCursor(12,1);
lcd.print((char)223); 
lcd.print("C");

lcd.setCursor(0,2);
lcd.print("Sump: ");
lcd.print(sensors.getTempCByIndex(1));
lcd.setCursor(12,2);
lcd.print((char)223); 
lcd.print("C");
int val=digitalRead(inputPin);
if (val==HIGH)
{ 
digitalWrite(relay1,HIGH);
}
else
{ 
digitalWrite(relay1,LOW);
}
}

Che ne dici di collegare una resistenza, diciamo da 10K, tra il pin del relè e il GND !

Scusa ho sbagliato circuito quello giusto è in allegato

Gae:
Scusa ho sbagliato circuito quello giusto è in allegato

Quale allegato?

Ecco il circuito che ho usato

Sbagliato di nuovo a mettere lo schema?

Ma che scheda usi?

mi ripeto ...

Che ne dici di collegare una resistenza, diciamo da 10K, tra il pin del relè e il GND !

Ho fatto un pò di confusione il circuito è quello dell'ultimo post.Scusate

No

Lo schema è quello vecchio

Secondo voi quale devo usare?

Questo?

La risposta te l'ha già data Brunello vari post fa ...

brunello22:
Che ne dici di collegare una resistenza, diciamo da 10K, tra il pin del relè e il GND !

Il "pin del relè", nel tuo caso, è il pin 49 ...

const int relay1 = 49;

Guglielmo

P.S.: Poi mi spieghi anche perché sprechi DUE bytes (int) per contenere un numero che non arriverà mai neanche a 255

Ricapitolando vecchio circuito con la resistenza da 10 k tra pin ed gnd quindi 2 resistenze da 10k

Ricapitolando cosa?

Non c'è il circuito, alla domanda che scheda usi non hai risposto....

Non c'è nulla da ricapitolare

Arduino mega

Ho provato ma non è cambiato niente

Niente da fare stessa cosa

Ma c ome relè usi una schedina ?
Se si, metti il link

Si attiva con HIGH o LOW ?

int val = digitalRead(inputPin);
  if (val == HIGH)
  {
    digitalWrite(relay1, HIGH);
  }
  else
  {
    digitalWrite(relay1, LOW);
  }

A me quel pezzo di programma fa venire la pelle d'oca

Ieri Guglielmo si chiedeva perché usare una int dove bastava una byte

Io mi chiedo perché usare una variabile, una if e una else quando basta usare una digitalread come argomento di una digitalwrite

Dove inoltre arduino fa solo il passa-segnale...

Basta un filo tra galleggiante e relè, senza arduino in mezzo....