Probleem met gebruik van "for"

Arduino specifieke Software
Berichten: 22
Geregistreerd: 07 Nov 2020, 10:29

Probleem met gebruik van "for"

Berichtdoor Danny. » 22 Nov 2020, 15:44

Hello lieve mensen van het Arduino forum, ik zou graag, zoels ik reeds in een andere vraag liet verstaan, met de Arduino willen “spelen” maar ben onervaren en zou graag hulp krijgen van mensen die er meer van weten.
Indien ik niet de regels van dit forum volg hoor ik het graag.
Bij een bepaald experiment zou ik een led array van 8x8, led per led willen aansturen.
Ik ben ervan overtuigd dat jullie weten dat ik het heb over 8 kolommen en 8 rijen.
Ik wil één voor één de led’s aansturen, daarom dacht ik te doen met een for functie, die eerst niet wou lukken maar met de hulp van … (waarvoor dank) dan toch gelukt is, en om het te testen heb ik eerst alles naar de monitor gestuurd. Het ziet er als volgt uit:
void loop() {
// put your main code here, to run repeatedly:
for (int i = 1; i<=8;i++)
for (int j = 1; j<=8;j++)
{
Serial.print( "Cijfer i = " );
Serial.print(i);
Serial.print(" en cijfer j = ");
Serial.println(j);
delay(offTime);
}

Het resultaat is het volgende:
Cijfer i = 1 en cijfer j = 1
Cijfer i = 1 en cijfer j = 2
Cijfer i = 1 en cijfer j = 3
Cijfer i = 1 en cijfer j = 4
Cijfer i = 1 en cijfer j = 5
Cijfer i = 1 en cijfer j = 6
Cijfer i = 1 en cijfer j = 7
Cijfer i = 1 en cijfer j = 8
Cijfer i = 2 en cijfer j = 1
Cijfer i = 2 en cijfer j = 2
Cijfer i = 2 en cijfer j = 3


Dit is dus het verhoopte resultaat.
Ik zou nu willen die i en j waarden gebruiken om de led’s aan te sturen beginnende bij de led op rij 1 en kolom 1, dan de led op rij 2 enz. dus dacht ik hiervoor de functie if te kunnen gebruiken maar doe ik blijkbaar iets verkeerd.
Als ik na de opdracht delay het volgende toevoeg:
delay(offTime);
}
{
if (i = 1);
}

Is alles normaal, als ik echter zowel i als j wil gebruiken in een and zoals hieronder te zien
delay(offTime);
}
{
if ((i = 1)&& (j = 1));
}

Dan krijg ik volgende melding
'j' was not declared in this scope
Ik begrijp niet waarom enkel j foutief is.
Kan iemand mij helpen en mij zeggen wat ik moet doen waarvoor dank.
Groetjes
Danny

Advertisement

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 22 Nov 2020, 18:06

Het magische woord hier is Scope.
In grote trekken wil dit zeggen dat je de variabelen i & j in jouw geval enkel binnen je For-loop kan gebruiken.
Je kunt dit oplossen door ze globaal (buiten je Setup & Loop) de declareren.
Tweede probleem is if(i=1); er is een duidelijk verschil tussen een enkel =, en een dubbel == teken.
https://www.arduino.cc/reference/en/lan ... s/equalto/

Berichten: 22
Geregistreerd: 07 Nov 2020, 10:29

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 22 Nov 2020, 18:37

Gij Kieken schreef:... In grote trekken wil dit zeggen dat je de variabelen i & j in jouw geval enkel binnen je For-loop kan gebruiken...

Bedankt voor deze informatie waarmede ik straks aan de slag zal gaan, maar intussen begrijp ik niet waarom slechts de j een fgout melding tot gevolg heeft en niet de i die op dezelfde lijn gebruikt is.
Groetjes
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Koepel » 22 Nov 2020, 18:54

Danny. schreef:Kan iemand mij helpen en mij zeggen wat ik moet doen waarvoor dank.
Antwoord: Dat 8x8 led matrix opzij leggen, er nog even naar kijken, dan een diepe zucht slaken, en iets anders gaan doen :lol:

Er zijn leukere dingen om te doen, zoals een ledstrip.

Kun je voortaan je hele sketch laten zien tussen code-tags ?
Met de knop "Code" krijg je code-tags [ code ] en [ / code ], maar dan zonder spaties. Als je jouw sketch daartussen zet, dan ziet het er netter uit.

Heb je 8 weerstanden gebruikt ?
Om een led aan te zetten is het nodig dat de ene pin hoog is en de andere pin laag. De rest kan als INPUT blijven staan.

Berichten: 22
Geregistreerd: 07 Nov 2020, 10:29

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 22 Nov 2020, 19:02

Koepel, bedankt voor jouw verwijzing naar die ledstrip, maar ik zou toch heel graag die matrix gebruiken.
En ja, ik gebruik weerstanden, en de ledjes worden wel degelijk op de goede manier aangestuurd ...
Ik ga mij verder amuseren in mijn zandbakje (wink)
Groetjes
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 22 Nov 2020, 19:11

Dit komt omdat je waarschijnlijk terug een beetje in de fout gaat met de accolades van de For-loops.
Doordat je in de eerste For-loop geen {} gebruikt voert die eigenlijk de eerste daarop volgende regel uit.
Waardoor de scoop(bereik van je variabel iets verder ligt),binnen je void loop.
Op dergelijke manier is ea niet altijd even duidelijk.
Je zou ook je uit te voeren commando's binnen je For-loop kunnen zetten,waardoor ze wel weer binnen scoop raken.
Hoe dan ook op dergelijke manier blijf je prutsen ,door dat vanaf het begin niet echt consequent te werk gaat.
Heb je die handleiding al gedownload?
Een mooie reeks is ook deze van Bas ,https://arduino-lessen.nl/
Pluspunt het is in het nederlands.

Berichten: 22
Geregistreerd: 07 Nov 2020, 10:29

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 22 Nov 2020, 22:01

Gij Kieken schreef:Dit komt omdat je waarschijnlijk terug een beetje in de fout gaat ... Hoe dan ook op dergelijke manier blijf je prutsen ,door dat vanaf het begin niet echt consequent te werk gaat...

Neem me niet kwalijk, wat je hier aanhaalt zal zeker waar zijn, maar toen ik over meer dan 85 jaar op deze wereld ben gekomen kon ik niets, enkel goed schreeuwen.
Intussen heb ik leren stappen, lopen, lezen, schrijven, enz., en heb mijn actieve loopbaan afgesloten in de automatisatie, maar toen was er nog zeer weinig sprake van computers.
Nu ik reeds meer dan 20 jaar op pensioen ben was het mijn bedoeling opnieuw aan te knopen met wat men tegenwoordig zoal gebruikt op het gebied van elektronica.
Sorry indien ik hier domme vragen kom stellen.
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 22 Nov 2020, 22:28

Het is zeker niet de bedoeling om grof over te komen op gelijk welke manier.
Er staat heel wat op het Net,het ene al beter dan het andere.
Die van Bas on tech vind ik goed, temeer het is in het nederlands.
Het beste is stap voor stap te gaan ,het feit dat je wil experimenteren vind ik reuze.
Wij weten niet wie aan de andere kant hebben, het kan zowel een school opdracht zijn .
Op zich is daar ook niets mis mee, maar de bedoeling is dat je ea zelf opzoekt.
Een goeie tip in de juiste richting is dan uiteraard welkom.
Zelf vind ik die kleine programmaatjes heel belangrijk als je snapt wat ze doen,als je daarbij zelf de oplossing gevonden hebt is de voldoening des te groter.
Dus laat de vragen maar komen ,wij (of toch zeker ik) leren er ook van.
Om terug te komen op je sketch( rare naam vind ik)accolades en hun plaats in het programma kunnen de manier waarop ea verloopt beïnvloeden.
Het is dan ook een goede gewoonte om ze consequent toe te passen,een paar keer <ctrl>t drukken maakt het ook wat netter.
De links die ik doorgaf bevatten enkele basis vaardigheden,als je die onder de knie hebt ,kun je,,,,,,
Ten slotte is het beter om steeds jouw volledige programma te posten op de manier dewelke Koepel reeds vermelde.

Berichten: 22
Geregistreerd: 07 Nov 2020, 10:29

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 23 Nov 2020, 09:49

Gij Kieken schreef:Het is zeker niet de bedoeling om grof over te komen op gelijk welke manier.
Er staat heel wat op het Net,het ene al beter dan het andere....

Ik denk niet ergens geschreven te hebben dat dit grof overkwam, maar ik lees dat ik ergens foutief bezig zou geweest zijn, en daar heb ik het moeilijk mee.
Waarom? Wel ik weet wel dat ik ergens in de fout ben gegaan, anders zou die sketch doen wat ik wou, maar ik vind niet waar ik in de fout ben gegaan.
Zoals Shooter dit gedaan heeft in mijn vorige vraag, daar had ik wel iets aan.
En wees gerust, ik heb mij liggen zot zoeken op het internet maar met de gevonden info ben ik geen stap verder gekomen, daarom dacht ik hier mijn probleem te kunnen voorleggen.
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 23 Nov 2020, 11:57

Een klein voorbeeldje.

Code: Alles selecteren
/*
  Purpose: Experimenteren met Led's
  Date: 23/11/2020
  Author: Jouw naam
  Version: ver.01
  Board: Arduino Uno of Nano
  Info: We starten met een 4 bij 4 matrix
      anders komen we I/O pinnen te kort
*/
byte rij = 0; //Variabel gebruikt voor de rijen
byte kolom = 0; //Variabel gebruikt voor dekolommen
int myDelay = 1000; //Vertraging van 1sec
int myDelay2 = 3000; //Vertraging van 3sec

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);//Start de serieele verbinding

}

void loop() {
  // put your main code here, to run repeatedly:
  for (rij = 0; rij < 4; rij++) {
    for (kolom = 0; kolom < 4; kolom++) {
      Serial.print("rij ");
      Serial.print(rij);
      Serial.print(" kolom ");
      Serial.println(kolom);
      delay(myDelay);//De For-loop wat vertragen
    }//End of kolom for-loop
    delay(myDelay2);//De tweede For-loop wat vertragen
    Serial.println("");//Een lege regel tussen voegen
    Serial.println("Beetje wachten op de volgende loop");
  }//End of rij for-loop
  Serial.println("Hier begint het opnieuw");
}


Nu zou je in principe 8 led's kunnen in en uitschakelen mits nog een kleine aanpassing aan de code.
Maar op zich heeft dit nog niets te maken met een Led matrix.

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: KeithGam en 51 gasten