Probleem met gebruik van "for"
26 berichten
• Pagina 2 van 3 • 1, 2, 3
Re: Probleem met gebruik van "for"
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
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
Re: Probleem met gebruik van "for"
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.
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
shooter@home.nl
Re: Probleem met gebruik van "for"
en nee ik wil het niet voorkauwen, zoek het maar mooi zelf uit.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Probleem met gebruik van "for"
Bedankt voor deze informatie, ik kan voorlopig verder.
Groetjes
Danny
Groetjes
Danny
- Gij Kieken
- Berichten: 636
- Geregistreerd: 15 Nov 2015, 11:54
Re: Probleem met gebruik van "for"
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");
}
Re: Probleem met gebruik van "for"
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
- Bijlagen
-
- looplicht8x8.jpg (70.38 KiB) 6104 keer bekeken
Re: Probleem met gebruik van "for"
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.
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.
Re: Probleem met gebruik van "for"
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
- Gij Kieken
- Berichten: 636
- Geregistreerd: 15 Nov 2015, 11:54
Re: Probleem met gebruik van "for"
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.
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.
Re: Probleem met gebruik van "for"
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
26 berichten
• Pagina 2 van 3 • 1, 2, 3
Wie is er online?
Gebruikers in dit forum: erazaesaubhx en 22 gasten