4 Relay Module aansluiten op externe voeding

Hardware die niet past in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 48
Geregistreerd: 15 Jan 2019, 16:28

Re: 4 Relay Module aansluiten op externe voeding

Berichtdoor Bosch » 30 Jan 2019, 22:55

dit door de invers logica van de relais module.


Wilt u dit iets meer toelichten?

In een andere test van mij kwam ik het volgende resultaat tegen...… als ik LOW typte de uitkomst HIGH was en andersom.

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: 4 Relay Module aansluiten op externe voeding

Berichtdoor Gij Kieken » 31 Jan 2019, 00:19

Toon eens de sketch die je gebruikte.
Bij die relais moduletjes moet je de ingang (bv IN1 ) laag maken om de relais aan te sturen.
Dit is omdat de ene kant van de relais vast aan de +5volt hangt, dus moet je de andere kant naar beneden trekken (gnd niveau) digitalWrite (Pin, LOW).
Default staan alle ingangen als pinMode ingang als je dan een High er naar toe schrijft schakelt dit de interne PullUp weerstand(~20K) in.
Pas nadien zeg je dat het uitgang moet zijn pinMode(pin ,OUTPUT).

Gebruikers-avatar
Berichten: 48
Geregistreerd: 15 Jan 2019, 16:28

Re: 4 Relay Module aansluiten op externe voeding

Berichtdoor Bosch » 31 Jan 2019, 00:44

Dit is de versie aangepast naar de eerder genoemde inzichten van YouTube,
nog geen kans gezien om een test opstelling te maken.

Helemaal onder aan een uitsnede van de originele code.


// Automatisch Kippenluik versie 28012019

int Luikstatus = 0;
int motorPin1 = 3;
int motorPin2 = 4;
int ledState5 = 5;
int ledState6 = 6;
int ledState7 = 7;

int licht = (analogRead(A0));

void setup() {

Serial.begin(9600);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
pinMode(A0, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(ledState5, OUTPUT);
pinMode(ledState6, OUTPUT);
pinMode(ledState7, OUTPUT);
}

void openen() {
int licht = (analogRead(A0));

digitalWrite(ledState5,HIGH);
digitalWrite(motorPin1,HIGH);
Serial.println("openen is aan");
Serial.println("lichtsterkte =");
Serial.println(licht);
Serial.println("Luikstatus");
Luikstatus = 1;
Serial.println(Luikstatus);
delay(5000);
digitalWrite(ledState5, LOW);
digitalWrite(motorPin1, LOW);
meten();
}




void sluiten(){
int licht = (analogRead(A0));

digitalWrite(ledState6,HIGH);
digitalWrite(motorPin2, HIGH);
Serial.println("Sluiten is aan");
Serial.println("lichtsterkte =");
Serial.println(licht);
Serial.println("Luikstatus");
Luikstatus = 0;
Serial.println(Luikstatus);
delay(5000);
digitalWrite(ledState6,LOW);
digitalWrite(motorPin2,LOW);
meten();
}
void meten(){

int licht = (analogRead(A0));
digitalWrite(ledState7,HIGH);
digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
Serial.println("lichtsterkte =");
Serial.println(licht);
delay(5000);

if
(licht <100 && Luikstatus == 1){Serial.println("Luik is open");}
if
(licht <100 && Luikstatus == 0){Serial.println("Luik openen"); openen();}

if
(licht >100 && Luikstatus == 0){Serial.println("Luik is dicht");}
if
(licht >100 && Luikstatus == 1){Serial.println("Luik sluiten"); sluiten();}
}
void loop(){

meten();}


Hier een stukje uit het origineel waar ik het contra heb geschreven ofwel HIGH werkt als LOW enzv.
Werkte overigens wel.




digitalWrite(ledState5,HIGH);
digitalWrite(motorPin1,LOW); >>>>>Code moet dus eigenlijk HIGH zijn<<<<<<
Serial.println("openen is aan");
Serial.println("lichtsterkte =");
Serial.println(licht);
Serial.println("Luikstatus");
Luikstatus = 1;
Serial.println(Luikstatus);
delay(5000);
digitalWrite(ledState5, LOW);
digitalWrite(motorPin1,HIGH); >>>>>>>Code moet dus eigenlijk LOW zijn<<<<<<<<<
meten();
}

Gebruikers-avatar
Berichten: 48
Geregistreerd: 15 Jan 2019, 16:28

Re: 4 Relay Module aansluiten op externe voeding

Berichtdoor Bosch » 31 Jan 2019, 13:45

Even een foto van mijn test opstelling

Test opstelling2.jpg
Test opstelling2.jpg (75.91 KiB) 4165 keer bekeken




Werkt als de commando's low en high contra invoer.

Zal het probleem op het software forum zetten.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: 4 Relay Module aansluiten op externe voeding

Berichtdoor shooter » 01 Feb 2019, 13:58

dat LOW en HIGH is geen software fout maar een eigenschap van het relaybordje.De voeding van de relais komt direct van de voeding af en de nullen gaan naar de ingangspinnen Dat heet Sinken van een uitgang. Dat heeft te maken met het feit dat je dan allerlei voedingsspanningen kunt gebruiken. Vroeger was het zelfs algemeen gebruik om te sinken tot TTL ineens kwam met totempole schakelingen.
Nu nog steeds gebruik ik de ULN2xxx serie om dat te doen. Dan hoef ik nooit te kijken waar de voeding vandaan komt, als ik de ground maar aan elkaar knoop. Zo kun je relais, maar ook motoren simpel houden.

Advies is om define aan LOW en uit HIGH te definieren.
paul deelen
shooter@home.nl

Vorige

Terug naar Overige hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten