Code wordt vreemd uitgevoerd.

algemene C code
Berichten: 19
Geregistreerd: 25 Apr 2016, 16:02

Code wordt vreemd uitgevoerd.

Berichtdoor HighTechTuinier1986 » 01 Nov 2016, 18:05

Hallo Forumleden,
Ik heb hier een rare bug die ik niet kan verklaren, misschien dat jullie dit herkennen. Mijn code loopt feilloos als ik de arduino gekoppeld heb aan alleen de PC. Dan is de output precies wat je ervan zou verwachten. Maar zodra ik de stroom voorziening (12 volt respectievelijk) op het bordje zet dan krijg ik een output van wat hier onder in het bericht staat. De dik gedrukte letter heb ik expres zo neergezet. Maar het is vreemd.

cpp code
#define NumberOfPlants 3

bool activateRow[] = {true, true, true};
byte HumiditySensor[] = {A0, A1, A2};
byte WaterLevelSensor[] = {A3, A4, A5};
int relay[] = {30, 32, 34};

void setup() {
// put your setup code here, to run once:
Serial.begin(57600);
for (int a = 0; a < NumberOfPlants; a++){
pinMode(relay[a], OUTPUT);
}
//motorPins
pinMode(motorPinPWM, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
}

void resetValves() {
Serial.println();
for (int reset = 0; reset < NumberOfPlants; reset++){
digitalWrite(relay[reset], HIGH);
}
Serial.println("valves have been reset.");
Serial.println();
}

void loop() {
// put your main code here, to run repeatedly:
resetValves();

delay(5000);

for (int valve = 0; valve < NumberOfPlants; valve++){
digitalWrite(relay[valve], LOW);
delay(5);
Serial.print("opened relay: ");
Serial.println(valve);
}

delay(5000);
}


De output als de voeding is aangesloten.

    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.
    þ
    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.
    ú
    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.


    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.

    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.
    ÿ
    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2

    valves have been reset.
    ÿ
    valves have been reset.

    opened relay: 0
    opened relay: 1
    opened relay: 2


Wie van jullie kan mij in jip en janneke taal uitleggen wat hier gaande is?
Alvast bedankt voor de hulp, het laatste advies wat ik heb gekregen heeft mijn project naar een hoger niveau getild.

Vriendelijke groet,
Niels

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Code wordt vreemd uitgevoerd.

Berichtdoor nicoverduin » 01 Nov 2016, 18:17

De Arduino lijkt te resetten:
a) Wat voor relais gebruik je? Link graag?
b) waar komt de voeding van de relais vandaan?
c) Je zou ff een println kunnen maken waarin je aangeeft dat je in setup zit of de loop.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 19
Geregistreerd: 25 Apr 2016, 16:02

Re: Code wordt vreemd uitgevoerd.

Berichtdoor HighTechTuinier1986 » 01 Nov 2016, 18:43

nicoverduin schreef:De Arduino lijkt te resetten:
a) Wat voor relais gebruik je? Link graag?
deze kon niet gevoed worden via de arduino sensor-shield alleen(dit is op advies van een forumlid).

sensor-shield: http://www.banggood.com/UNO-R3-Sensor-S ... mds=search

relais bordje: http://m.banggood.com/5V-8-Channel-Rela ... 74110.html

b) waar komt de voeding van de relais vandaan?
Die komt via een step-down converter binnen. Ik gebruik deze om de voltage naar 5volt te krijgen.
http://www.banggood.com/XL4015-5A-DC-DC ... mds=search

c) Je zou ff een println kunnen maken waarin je aangeeft dat je in setup zit of de loop.


Ik heb gedaan wat je me vertelde en het lijkt inderdaad dat de Arduino zichzelf aan het resetten is. Waarom weet ik niet.
we zitten nu in de setup.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
þwe zitten nu in de setup.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
ÿwe zitten nu in de setup.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
we zitten nu in de setup.

valves have been reset.



Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Code wordt vreemd uitgevoerd.

Berichtdoor nicoverduin » 01 Nov 2016, 18:56

En de Arduino krijgt zijn eigen voeding? van een aparte adapter?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 19
Geregistreerd: 25 Apr 2016, 16:02

Re: Code wordt vreemd uitgevoerd.

Berichtdoor HighTechTuinier1986 » 01 Nov 2016, 19:05

nicoverduin schreef:En de Arduino krijgt zijn eigen voeding? van een aparte adapter?


Nee, het geheel wordt door 1 adapter gevoed. Die adapter geeft 12volt aan de arduino en de step-down converter die de 12 volt omzet naar 5 volt. Dit was omdat de relaisbord anders te veel voltage zou krijgen en kan doorbranden.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Code wordt vreemd uitgevoerd.

Berichtdoor Koepel » 01 Nov 2016, 19:32

@HighTechTuinier1986, kun je wat meer gegevens geven ?
Welke adapter, hoe is het verbonden, welke dc-dc converter, welk relais board, welke arduino. Maak maar een schetsje met hoe het verbonden is, en graag een foto er bij :)

Er zijn maar een paar mogelijkheden, dus des te meer gegevens jij geeft, des te duidelijker beeld we er van krijgen.
De mogelijkheden zijn onder andere: de voltage regulator wordt te warm (hou je vinger er op); de adapter is zo slecht dat die 230V naar de Arduino lekt; de adapter is te zwak; de adapter zegt 12V maar levert 18V; de dc-dc converter is te zwak of geeft teveel storing; de ground verbindingen kloppen niet; er zit een breadboard tussen die slecht contact maakt; je hebt goedkope onderdelen waarvan de condensators geen pieken kunnen opvangen; enzovoorts.

Zou je willen doen wat nicoverduin vroeg ? Bijvoorbeeld een bericht bij setup(), dan kun je zien of hij staat te resetten:
Code: Alles selecteren
void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600);
  Serial.println("De sketch has started ! Here we go");

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

Re: Code wordt vreemd uitgevoerd.

Berichtdoor shooter » 01 Nov 2016, 20:09

doe eens 1 relays bedienen dus maak van de 3 even een 1 , als het dan beter gaat dan heb je een voedingsprobleem, de relais mag je niet voeden met de 5 V van de mega, maar apart.
dan kun je nog beter de 12 V op de Vin zetten en de stepdown alleen op de relais, beter natuurlijk om 2 voedingen te gebruiken,
een simpele voltmeting is de beste check.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Code wordt vreemd uitgevoerd.

Berichtdoor nicoverduin » 01 Nov 2016, 20:10

Het zou mij niets verbazen dat die schakelende voeding de oorzaak is. Al eens een aparte voeding geprobeert voor de arduino?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 19
Geregistreerd: 25 Apr 2016, 16:02

Re: Code wordt vreemd uitgevoerd.

Berichtdoor HighTechTuinier1986 » 01 Nov 2016, 20:17

Koepel schreef:@HighTechTuinier1986, kun je wat meer gegevens geven ?
Welke adapter, hoe is het verbonden, welke dc-dc converter, welk relais board, welke arduino. Maak maar een schetsje met hoe het verbonden is, en graag een foto er bij :)

Er zijn maar een paar mogelijkheden, dus des te meer gegevens jij geeft, des te duidelijker beeld we er van krijgen.
De mogelijkheden zijn onder andere: de voltage regulator wordt te warm (hou je vinger er op); de adapter is zo slecht dat die 230V naar de Arduino lekt; de adapter is te zwak; de adapter zegt 12V maar levert 18V; de dc-dc converter is te zwak of geeft teveel storing; de ground verbindingen kloppen niet; er zit een breadboard tussen die slecht contact maakt; je hebt goedkope onderdelen waarvan de condensators geen pieken kunnen opvangen; enzovoorts.

Zou je willen doen wat nicoverduin vroeg ? Bijvoorbeeld een bericht bij setup(), dan kun je zien of hij staat te resetten:
Code: Alles selecteren
void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600);
  Serial.println("De sketch has started ! Here we go");


Ik kan helaas niet bij de voltage regulator, deze zit onder de sensor shield. De adapter heb ik opgemeten die geeft me ook echt 12 volt. De foto's staan in de bijlage met de schema, foto van de arduino en adapter. Hier onder staat de laatste gegevens die ik van de arduino terug krijg. Ik heb een bericht in de setup gezet zoals gevraagd.

Code: Alles selecteren
The Sketch has started! Here we go.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
þThe Sketch has started! Here we go.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
þThe Sketch has started! Here we go.

valves have been reset.

opened relay: 0
opened relay: 1
opened relay: 2

valves have been reset.
íThe Sketch has started! Here we go.

valves have been reset.



de dc-dc converter: http://www.banggood.com/XL4015-5A-DC-DC ... 45599.html

de sensor shield: http://www.banggood.com/UNO-R3-Sensor-S ... mds=search

de relais: http://www.banggood.com/5V-8-Channel-Re ... mds=search
Bijlagen
2016-11-01 18.56.36.jpg
adapter
2016-11-01 18.56.36.jpg (76.27 KiB) 8776 keer bekeken
2016-11-01 18.57.07.jpg
Arduino
2016-11-01 18.57.07.jpg (142.72 KiB) 8776 keer bekeken
schema.png
schema
schema.png (10.15 KiB) 8776 keer bekeken
Laatst gewijzigd door HighTechTuinier1986 op 01 Nov 2016, 20:22, in totaal 1 keer gewijzigd.

Berichten: 19
Geregistreerd: 25 Apr 2016, 16:02

Re: Code wordt vreemd uitgevoerd.

Berichtdoor HighTechTuinier1986 » 01 Nov 2016, 20:21

nicoverduin schreef:Het zou mij niets verbazen dat die schakelende voeding de oorzaak is. Al eens een aparte voeding geprobeert voor de arduino?


Dat was eerder wel zo, ideaal was om 1 voeding te gebruiken. Vandaar de dc-dc converter. Maar toen had ik dit probleem ook.

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten