Probleem met gebruik van "for"

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

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 23 Nov 2020, 12:27

Hellokes, dat ziet er heel wat anders uit en doet hier de zon schijnen.
Ik zal dat in de loop van de namiddag/avond nauwkeurig bekijken, en zal mij dan later melden.
Maar voorlopig mijn allerbeste dank, mijn dag kan niet meer kapot.
Groetjes
Danny

Advertisement

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

Re: Probleem met gebruik van "for"

Berichtdoor shooter » 23 Nov 2020, 18:27

ja je hebt gelijk j is fout nou ja terwijl de i wel doorgaat. dat komt door jouw accolades.
om de scope even simpel te houden declareer i en j eerst even boven de setup dan zijn ze globaal ofwel overal te gebruikern
Nog slimmer is om rij en kolom te definieren dus int rij,kolom bovenaan.
als je dan een groter programma hebt dan weet je tenminste wat het is.
netzoals maxrij=8 en maxkolom is 8 dus int maxrij=8;
als je leds wilt aansluiten moet je als je ze direct op de arduino wilt zetten kun je maar max 1 ledje tegelijk aan zetten.
als je een ULN2003 ertussenzet dan kun je er wat meer tegelijk aanzetten.
je kunt dan een 8x8 matrix aansturen door de analoge ingangen te gebruiken als digitale uitgangen (vanaf 14 tot 20)
even lekker zelf zoeken naar een schema, dan kom je ook wel een programma tegen.
Ik ben ook een youtube filmpje tegengekomen van een gast die lijkt of hij alle leds teglijk aanstuurt maar dat is niet zo het is maar 1 ledje tegelijk, wel erg snel dus het gaat wel.
als je de matrix in elkaar hebt zitten hou je dan aan het feit dat je maar 1 ledje teglijk aan hebt staan, want anders brand de UNO kapot.
als je de uln gebruikt kun je dus wel 8 ledjes tegelijk aanzetten en dus meer helderheid uit je display halen.

een for loop bestaat dus uit een for(....) en dan { hier je actie}
en binnen die accolades mag je wel weer een for loop maken.
paul deelen
shooter@home.nl

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

Re: Probleem met gebruik van "for"

Berichtdoor shooter » 23 Nov 2020, 18:28

en nee ik wil het niet voorkauwen, zoek het maar mooi zelf uit.
paul deelen
shooter@home.nl

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

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 23 Nov 2020, 19:18

Bedankt voor deze informatie, ik kan voorlopig verder.
Groetjes
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 23 Nov 2020, 21:06

Nu echt wat led's aansturen.
Code: Alles selecteren
/*
  Purpose: Experimenteren met Led's
  Date: 23/11/2020
  Author: Jouw naam
  Version: ver.02
  Board: Arduino Uno of Nano
  Info: We laten een paar Leds oplichten
        8 led's via serie weerstand 1Kohm aansluiten
        anodes op I/O 2 tem 9
        kathodes allemaal op gnd
*/

byte rij = 0; //Variabel gebruikt voor de rijen
byte kolom = 0; //Variabel gebruikt voor de kolommen
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
  for (byte thisPin = 2; thisPin < 10; thisPin++) {
    pinMode(thisPin, OUTPUT);//Maak van I/O pin 2 tem 9 Outputs
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  for (rij = 2; rij < 6; rij++) {
    for (kolom = 6; kolom < 10; kolom++) {
      Serial.print("rij ");
      Serial.print(rij);
      Serial.print(" kolom ");
      Serial.println(kolom);
      digitalWrite(rij, HIGH);//Led rij oplichten
      digitalWrite(kolom, HIGH); //Led kolom oplichten
      delay(myDelay);//De For-loop wat vertragen
      digitalWrite(kolom, LOW); //Led kolom terug doven
    }//End of kolom for-loop

    Serial.println("");//Een lege regel tussen voegen
    Serial.println("Beetje wachten op de volgende loop");
    delay(myDelay2);//De tweede For-loop wat vertragen
    digitalWrite(rij, LOW); //Led rij terug doven
  }//End of rij for-loop

  Serial.println("Hier begint het opnieuw");
}

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

Re: Probleem met gebruik van "for"

Berichtdoor Koepel » 23 Nov 2020, 21:10

O nee, ben ik lekker aan het spelen met een looplicht van 8x8, zie ik dat shooter het niet wil voorkauwen. Dus ik heb er maar snel een kruis doorheen gezet ;) en nu gaat Gij Kieken alsnog code voorkauwen :mrgreen:
Bijlagen
looplicht8x8.jpg
looplicht8x8.jpg (70.38 KiB) 5602 keer bekeken

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

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 23 Nov 2020, 21:13

Hellokes,en bedankt voor deze aanvulling, dit ziet er wel professioneel uit.
Ik kan nu wel verder dromen en proberen dit aan de werkelijk te toetsen.
Ik zal mij zeker hier nog later melden met de resultaten.
Groetjes
Danny.

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

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 23 Nov 2020, 22:28

Gij Kieken schreef:Nu echt wat led's aansturen ...

Info: We laten een paar Leds oplichten
8 led's via serie weerstand 1Kohm aansluiten
anodes op I/O 2 tem 9
kathodes allemaal op gnd



void loop() {
// put your main code here, to run repeatedly:
for (rij = 2; rij < 6; rij++) {
for (kolom = 6; kolom < 10; kolom++) {
Serial.print("rij ");

Ik heb getracht deze sketch te begrijpen en weet nu niet of ik het mis heb.
Ik lees bij de info dat het de bedoeling is om 8 led's te gebruiken, maar ik zie daar ook die twee for lijnen, daar gebruikt men de waardes van 2 tot 5 voor de rijen, dat zijn toch 4 stappen, en voor de kolommen de nummers van 6 tot 9, dat zijn ook 4 stappen.
Ik denk dat men hier toch over een matrix van 4x4 spreekt, of ben ik verkeerd?
NB, het is niet mijn bedoeling iemand terecht te wijzen, maar gewoon om te zien of ik kan begrijpen wat er staat ;)
Groetjes
Danny

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

Re: Probleem met gebruik van "for"

Berichtdoor Gij Kieken » 24 Nov 2020, 09:45

Hier is nog niet echt sprake van een led matrix dewelke jij voor ogen hebt.
Ik heb bewust die twee for-loops gebruikt om je hopelijk wat duidelijk te scheppen in het gebruik van accolades met een geneste For-loop.
Nu is het ook zo als wanneer je een echte 8x8 martix wil gebruiken op dergelijke manier je I/O pinnen te kort komt.
Je kunt dit omzeilen door de Analog pins als Digital pins te gebruiken.
Nu dit hangt ook weer af van welk bordje je gebruikt.
Een Arduino Mega heeft 54 I/O pinnen.
Je kunt ook een I/O expander gebruiken ,of een schuifregister,of,,,
Een ander probleem wordt het vermogen, een I/O pin op dergelijke bordjes kan max 40mA beter is te beperken tot 20mA.
Het totale vermogen van bv een Uno ligt in de grote orde van 400mA.(dit mede door het max vermogen USB)
Als je maar een paar Led's (lees 4 of 5) terzelfder tijd oplicht is dit geen probleem.
Dus zal je het nodige vermogen uit een bijkomende adapter moeten halen.
Samen gevat ,Welk bordje heb je?, Welke matrix heb je (common anode,common kathode)?
Je zal een manier moeten bedenken om een rij te selecteren en dan de juist kolommen aanspreken.
Nu met de voorbeeldjes heb je al een goede zet in die richting.

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

Re: Probleem met gebruik van "for"

Berichtdoor Danny. » 24 Nov 2020, 11:08

Gij Kieken schreef:Hier is nog niet echt sprake van een led matrix dewelke jij voor ogen hebt.
Ik heb bewust die twee for-loops gebruikt om je hopelijk wat duidelijk te scheppen in het gebruik van accolades met een geneste For-loop.
Nu is het ook zo als wanneer je een echte 8x8 matrix wil gebruiken op dergelijke manier je I/O pinnen te kort komt ...

Los van de verwijzing naar diode matrix (8x8) was het mij opgevallen dat in de info sprake is van 8 led’s, en dat verder in de sketch sprake is van 4 rijen en 4 kolommen, als ik gebruik maak van wat ik nog over heb van platte kaas in mijn hoofd, zijn dat toch 16 led’s.
Of ben ik daar verkeerd?
Verder nog iets over de I/O pinnen, ik heb mij bij Amazon de Arduino starterkit aangeschaft, en daar zit een clown van de Arduino UNO in.
Ik heb op internet reeds gezien dat ze voor die I/O pinnen aan te sturen gebruik maken van 16 pinnen. Daarvoor gebruiken ze de pinnen 2 tot en met 13, en ook de pinnen A0 tot en met A3.
Ik zie in jouw sketch dat je voor de for loop gebruik maakt van de I/O pinnen voor de rijen gebruik maakt van de getallen 2 tot en met 5, en voor de kolommen de getallen 6 tot en met 9.
Met de uitkomst van deze foor loop heeft men dus de juiste nummers van de I/O pinnen van de Arduino.
Waarvan ik gebruik maakte in mijn proef opstelling was voor de kolommen van de pinnen 2 tot 9, en voor de rijen van de pinnen 10 tot 13 en ook de pinnen A0 tot A3.
Die for loop had dus 64 stappen, ik moest daar dus ook 64 if instructies aan hangen die, als bijvoorbeeld de rij = 2 was, en de kolom = 5 was, er op de led array pin A2 HIGH werd en de pin 6 LOW.
Sorry indien deze uitleg ietwat moeilijk te begrijpen is, maar ik heb hier voor mij het schema van die 1588BS led array wat het zeker duidelijker maakt dan de uitleg.
Maar feit is dat ik dus 64 if vergelijkingen had wat die sketch nogal zwaar maakte.
Ik hoop beste helper (ik heb het wat moeilijk met je naam, is dat een nick naam?) dat ik met deze uitleg iet of wat duidelijk was.
Groetjes
Danny

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ecetecaayu, RussellAlets en 17 gasten