8-relay board + DC voeding
9 berichten
• Pagina 1 van 1
- HighTechTuinier1986
- Berichten: 19
- Geregistreerd: 25 Apr 2016, 16:02
8-relay board + DC voeding
Hallo allemaal,
Ik heb het volgende probleem met mijn relais-bordje en misschien mijn arduino MEGA.
nu valt me dit op, aan de USB, werkt de relaisbord precies volgens mijn code. Dus 1 relais per keer gaat open staan.
maar als de arduino aan de adapter is aangesloten dan in plaats van dat 1 relais aanslaat, gaan ze allemaal open staan.
De adapter output volgens de label is:
12v DC, 1000mA
Wat kan ik het beste doen?
Ik heb het volgende probleem met mijn relais-bordje en misschien mijn arduino MEGA.
nu valt me dit op, aan de USB, werkt de relaisbord precies volgens mijn code. Dus 1 relais per keer gaat open staan.
maar als de arduino aan de adapter is aangesloten dan in plaats van dat 1 relais aanslaat, gaan ze allemaal open staan.
De adapter output volgens de label is:
12v DC, 1000mA
Wat kan ik het beste doen?
Advertisement
Re: 8-relay board + DC voeding
bij de usb is het 5 Voklt en jij sluit ineens 12 V aan das niet slim.
geef schema van relaisbordje en hoe je het aangesloten hebt.
geef schema van relaisbordje en hoe je het aangesloten hebt.
paul deelen
shooter@home.nl
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: 8-relay board + DC voeding
Ik ga er ff vanuit dat ie niet zo onzorgvuldig is dat hij de 12V op de USB gooit maar op de adapter ingang. Niet dat dat nu echt gaat helpen. Je moet namelijk NOOIT relais aan de een Arduino hangen aan de 5V. Het is de goden verzoeken. De Mega, Uno en welk ander type hebben een lineaire regulator. Goedkoop maar zeker uit de tijd. Die lineaire regulators moeten namelijk de (voedingsspanning - 5V) * stroom als warmte wegwerken en daar kunnen ze slecht tegen. Als ze allemaal openstaan is het ofwel dat er ergens een reset plaatsvindt doordat die relais ongecontroleerd zijn voordat de IO poorten zijn geinitialiseerd. Maar laten we eerst maar ff EN het aansluitschema EN de sketch hier zien. Nu is het alleen maar gissen.
- HighTechTuinier1986
- Berichten: 19
- Geregistreerd: 25 Apr 2016, 16:02
Re: 8-relay board + DC voeding
nicoverduin schreef:Ik ga er ff vanuit dat ie niet zo onzorgvuldig is dat hij de 12V op de USB gooit maar op de adapter ingang. Niet dat dat nu echt gaat helpen. Je moet namelijk NOOIT relais aan de een Arduino hangen aan de 5V. Het is de goden verzoeken. De Mega, Uno en welk ander type hebben een lineaire regulator. Goedkoop maar zeker uit de tijd. Die lineaire regulators moeten namelijk de (voedingsspanning - 5V) * stroom als warmte wegwerken en daar kunnen ze slecht tegen. Als ze allemaal openstaan is het ofwel dat er ergens een reset plaatsvindt doordat die relais ongecontroleerd zijn voordat de IO poorten zijn geinitialiseerd. Maar laten we eerst maar ff EN het aansluitschema EN de sketch hier zien. Nu is het alleen maar gissen.
Dat klopt, ik gebruik de adapter ingang op de arduino. Ik ben tot nu toe niet echt duidelijk geweest lees ik uit de reacties van jouw en shooter.
Ik heb dus een sensor-shield op de Mega gezet, en de relaisbord aangesloten op de digitale uitgangen en de GND en VCC aangesloten op de G en V van digitale uitgang 0(nul).
dit zijn de onderdelen:
relais bord: http://www.banggood.com/5V-8-Channel-Re ... 74110.html
sensor shield: http://www.banggood.com/UNO-R3-Sensor-S ... 54753.html
cpp code
const int analogInPin0 = A0;
const int analogInPin1 = A1;
const int analogInPin2 = A2;
//const int analogInPin3 = A3;
//const int analogInPin4 = A4;
//const int analogInPin5 = A5;
#define relay0 2
#define relay1 3
#define relay2 4
//#define relay3 5
//#define relay4 6
//#define relay5 7
const int motorPinPWM = 8;
const int motorPin1 = 9;
const int motorPin2 = 10;
//input sensors
//1023 = droog
//686 = trigger pomp
//350 = kraan water
//any value above this should trigger the pump
const int triggerValue = 690;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(relay0, OUTPUT);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
// pinMode(relay3, OUTPUT);
// pinMode(relay4, OUTPUT);
// pinMode(relay5, OUTPUT);
//motorPins
pinMode(motorPinPWM, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
testMotor();
resetValves();
}
void divider(){
Serial.println("================================");
}
void testMotor(){
Serial.println("testing motor");
//open valves
digitalWrite(relay0,LOW);
digitalWrite(relay1,LOW);
digitalWrite(relay2,LOW);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
analogWrite(motorPinPWM, 100);
delay(5000);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 100);
delay(5000);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 0);
//close valves
digitalWrite(relay0,HIGH);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
Serial.println("test completed");
}
void resetValves(){
digitalWrite(relay0,HIGH);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
//digitalWrite(relay3,HIGH);
//digitalWrite(relay4,HIGH);
//digitalWrite(relay5,HIGH);
Serial.println("valves have been reset.");
divider();
}
void sensor1(){
// print the results to the serial monitor:
Serial.print("1 sensor = ");
Serial.print(analogRead(analogInPin0));
Serial.println();
if (analogRead(analogInPin0) > 680){
Serial.println("entering watering cycle");
digitalWrite(relay0, LOW);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
Serial.println("engaging motor");
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
//runtime of motor
delay(5000);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
Serial.println("disengaging motor");
divider();
}
}
void sensor2(){
// print the results to the serial monitor:
Serial.print("2 sensor = ");
Serial.print(analogRead(analogInPin1));
Serial.println();
if (analogRead(analogInPin1) > 680){
Serial.println("entering watering cycle");
digitalWrite(relay0, HIGH);
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
Serial.println("engaging motor");
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
//runtime of motor
delay(5000);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
Serial.println("disengaging motor");
divider();
}
}
void sensor3(){
// print the results to the serial monitor:
Serial.print("3 sensor = ");
Serial.print(analogRead(analogInPin2));
Serial.println();
if (analogRead(analogInPin2) > 680){
Serial.println("entering watering cycle");
digitalWrite(relay0, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);
Serial.println("engaging motor");
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
//runtime of motor
delay(5000);
digitalWrite(motorPin1 , LOW);
digitalWrite(motorPin2, LOW);
analogWrite(motorPinPWM, 80);
Serial.println("disengaging motor");
divider();
}
}
void loop() {
delay(500);
sensor1();
delay(500);
sensor2();
delay(500);
sensor3();
resetValves();
delay(9000);
}
Re: 8-relay board + DC voeding
dat gaat niet goed, je zult voor het relaisbord een aparte 5 V voeding moeten regelen en de jumper op het relaisbordje ook extern zetten, de relais trekken veel te veel stroom om uit een Mega te halen, zoals ook nico zegt natuurlijk.
geef toch maar een schets van hoe je het aangesloten hebt en hoe je denkt dat het zou moeten, mag in fritzing maar ook in iets anders hoor,
bijv qelectrotech.
geef toch maar een schets van hoe je het aangesloten hebt en hoe je denkt dat het zou moeten, mag in fritzing maar ook in iets anders hoor,
bijv qelectrotech.
paul deelen
shooter@home.nl
shooter@home.nl
- HighTechTuinier1986
- Berichten: 19
- Geregistreerd: 25 Apr 2016, 16:02
Re: 8-relay board + DC voeding
shooter schreef:dat gaat niet goed, je zult voor het relaisbord een aparte 5 V voeding moeten regelen en de jumper op het relaisbordje ook extern zetten, de relais trekken veel te veel stroom om uit een Mega te halen, zoals ook nico zegt natuurlijk.
geef toch maar een schets van hoe je het aangesloten hebt en hoe je denkt dat het zou moeten, mag in fritzing maar ook in iets anders hoor,
bijv qelectrotech.
Ik laat ff de huidige configuratie voor wat het is, want het werkt duidelijk niet zoals het moet. Maar ik denk dat op basis van wat jij en Paul zegt dat het zo moet. de 2e adapter heb ik wel liggen.
- Bijlagen
-
- hoe het moet.png (14.82 KiB) 9510 keer bekeken
- HighTechTuinier1986
- Berichten: 19
- Geregistreerd: 25 Apr 2016, 16:02
Re: 8-relay board + DC voeding
Hij werkt, de tip van shooter heeft geholpen. en hij doet precies wat hij moet doen. ik ga waarschijnlijk nu de code wat opschonen en efficiënter maken.
bedankt voor de hulp!
bedankt voor de hulp!
Re: 8-relay board + DC voeding
ik mis in je schema nog wel een draadje van gnd relais naar gnd mega.
en zet je 12Volt wat lager bijv 9 of 7.5 Volt dan krijgt de mega niet zoveel warmte te verstoken.
en zet je 12Volt wat lager bijv 9 of 7.5 Volt dan krijgt de mega niet zoveel warmte te verstoken.
paul deelen
shooter@home.nl
shooter@home.nl
Re: 8-relay board + DC voeding
nu valt bij ook het kwartje, thanks
idd je arduino op 9v zetten 12 is net te veel 12v is echt de max boven grens.
ik heb de zelfde setup, maar dan een 12v relais bordje.
idd je arduino op 9v zetten 12 is net te veel 12v is echt de max boven grens.
ik heb de zelfde setup, maar dan een 12v relais bordje.
9 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten