Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

3x3x3 led cube

Pagina: 1 2 3 4 Laatste
Acties:

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Led cube maken.

Kan iemand mij vertellen of mijn schets gaat werken.
En ik niet mij arduino naar de filistijnen help.
Heb alleen de weerstanden verkeerd getekend die komen op de kathodes van de leds



Alvast bedankt. :)

jeroen vrij wijzigde deze reactie 17-03-2019 01:32 (14%)


Acties:
  • +5Henk 'm!

  • farlane
  • Registratie: maart 2000
  • Laatst online: 14-09 12:59
Als dat transistoren zijn zul je de weerstanden in de basis waarschijnlijk moeten houden om de basisstroom te beperken. En je hebt ook weerstanden nodig om de stroom door de LEDs te beperken, aan de anode wellicht.

Daarnaast, omdat je de LEDs voedt vanuit de uC moet je in de gaten houden of je niet de maximum stroom die de uC mag leveren overschrijdt.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Hoe bereken ik dan de juiste weerstanden bij een kubus.
Op elke kathode zitten 9 Leds.
Ik zie schema, 's op internet daar berekenen ze de weerstand voor 1 led op 10mA.
Bijvoorbeeld voor rode led gebruiken ze 220 ohm.
Als ik dat bereken is dat voor 1 led op 5v.
Klopt die berekening dan wel.
En hoe bepaal ik de weerstanden voor de transistors

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Bijvoorbeeld als ik de weerstand per led bereken voor de anodes
3 leds per anode 3.3v 10mA.
Voeding arduino 5v 40mA
Kom ik op 170 ohm per led.
Een vervangingsweerstand R1+R2+R3.
510ohm.
Maar zie geen 1 cube die zo een hoge weerstand heeft.

En voor de transistor zou ik niet weten hoe de weerstand te berekenen

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Leuk project Jeroen, maar zal inderdaad klus worden om dat allemaal te berekenen. En is misschien helemaal niet nodig om transistors erbij te zetten, tenzij je daar nog iets anders mee wil doen als enkel een 3^3 led-kubus.
Kwam hier namelijk, via afbeeldingen, een zelfde soort project tegen maar daar komen geen transistors in voor.

Zit ook video bij

https://circuitdigest.com...3X3-led-cube-with-arduino

  • farlane
  • Registratie: maart 2000
  • Laatst online: 14-09 12:59
kitao schreef op zondag 17 maart 2019 @ 19:43:
Leuk project Jeroen, maar zal inderdaad klus worden om dat allemaal te berekenen. En is misschien helemaal niet nodig om transistors erbij te zetten, tenzij je daar nog iets anders mee wil doen als enkel een 3^3 led-kubus.
Kwam hier namelijk, via afbeeldingen, een zelfde soort project tegen maar daar komen geen transistors in voor.
Ligt er aan hoeveel stroom je mag sinken met de controller die de TS gebruikt. Ik zou denk ik aan de sturende kant een chip te gebruiken die meer kan sourcen. Een LED driver ding of zoiets.
jeroen vrij schreef op zondag 17 maart 2019 @ 13:50:
Hoe bereken ik dan de juiste weerstanden bij een kubus.
Op elke kathode zitten 9 Leds.
En op de anode?
En hoe bepaal ik de weerstanden voor de transistors
Je moet eerst bepalen hoeveel stroom dat ding aan de basis wil om helemaal in saturation (helemaal "open") the gaan. Dat ga je kijken hoeveel de basis-spanning is (normaal +/- 0.7V of zoiets, 1PN overgang zeg maar)
Wat er over blijft ( 5V/3.3V - 0.7V gaat dus over je basisweerstand staan. Daarmee kun je ook de waarde van de weerstand berekenen om een bepaalde basisstroom te krijgen.

farlane wijzigde deze reactie 17-03-2019 20:00 (46%)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1Henk 'm!

  • Vuikie
  • Registratie: december 2003
  • Laatst online: 18:24
Ik heb een tijdje geleden ook een 3x3x3 led kubus gemaakt met een Attiny2313. Ik stuur de LED's per laag aan, dat zijn dus 9 LED's per keer. Dit is veels te veel voor een uC om aan te sturen, ook voor de uno. Wat ik toen gedaan heb is alles via transistoren aan te sturen. Dit kost je 12 transistoren (2n2222's of BC547) maar dan weet je zeker dat je de uC niet opblaast.

Ik heb even snel een tekeningetje gemaakt:


***EDIT***

'LED 3' moet 'LED 2' zijn |:(

Vuikie wijzigde deze reactie 17-03-2019 19:57 (10%)
Reden: Tekening gewijzigd


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
farlane schreef op zondag 17 maart 2019 @ 19:49:

Ligt er aan hoeveel stroom je mag sinken met de controller die de TS gebruikt....
Arduino wordt gebruikt las ik, net als in mijn geplaatste link, maar of er zware leds worden toegepast heb ik niet uit de OP kunnen opmaken. Maar kan inderdaad zo zijn dat TS een ander type Arduino gebruikt als in de link.

@Vuikie Jouw thumbnail komt hier niet in beeld, 404 not found
is al aangepast zag ik, tnx :)

kitao wijzigde deze reactie 17-03-2019 20:05 (13%)


  • Vuikie
  • Registratie: december 2003
  • Laatst online: 18:24
@kitao Refresh ;)

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ben net gedoucht :+
Is mooi schema hoor maar ik zou wat meer tijd nodig hebben om dit naar 3D te vertalen maar je zei al dat je dit snel op papier hebt gezet, dan is het helemaal vakwerk.
Zijn shift-registers of een multiplexer trouwens geen tweede optie of kom je dan op hetzelfde probleem uit van teveel stroom ?

  • Vuikie
  • Registratie: december 2003
  • Laatst online: 18:24
Multiplexen zou ik niet aanraden, want je bent al per laag aan het multiplexen met mijn schema. Shift-register kan, maar dan zit je nog steeds met het vermogen wat je per laag nodig hebt. Als je de LED's met 20mA per LED voed, dan vraagt dat gewoon 180mA maximaal per laag. Hier moet je gewoon rekening meer houden. Je kan een ULN2003a gebruiken, die kan 500mA aan, maar dan heb je nog steeds 1 transistor nodig voor je 9de LED ;)

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ik gebruik 3.3v leds. Max 20mA
Dan is alles via transistors wel beter ja.
Maar goed kom niet uit de berekening.
Er word gezegd 5v op de base.
Voltage van de base =0.7
5v-0.7=4.3v
De saturatie voltage ligt tussen de 0.25 en 0.6
Afhankelijk van de Lc en de volgens de datasheet.
Max was 100mA dus 0.6
5v-0.7-0.6= moet ik dus 3.7 v wegfikken met een weerstand.
Of zie ik dat verkeerd.

jeroen vrij wijzigde deze reactie 17-03-2019 21:22 (15%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Vuikie schreef op zondag 17 maart 2019 @ 19:49:
Ik heb een tijdje geleden ook een 3x3x3 led kubus gemaakt met een Attiny2313. Ik stuur de LED's per laag aan, dat zijn dus 9 LED's per keer. Dit is veels te veel voor een uC om aan te sturen, ook voor de uno. Wat ik toen gedaan heb is alles via transistoren aan te sturen. Dit kost je 12 transistoren (2n2222's of BC547) maar dan weet je zeker dat je de uC niet opblaast.

Ik heb even snel een tekeningetje gemaakt:
[Afbeelding: Cube schema]

***EDIT***

'LED 3' moet 'LED 2' zijn |:(
Maar jij gebruikt een 1kohm resistor op de base.
Is dat bij mij dan ook genoeg.
En jou resistor voor de leds 3leds parralel is 220ohm
Is dat niet te weinig ik gebruik 220ohm bij 1 rode led. 1,9v 15mA of heb ik het nou fout.

Ik gebruik 3.3v leds 15mA dan zou ik voor de leds aan 120 ohm genoeg hebben.

Maar ga denk ik mijn breadboard voeding gebruik die levert 3.3v 700mA.
Dan heb ik daar op de leds geen weerstand nodig

jeroen vrij wijzigde deze reactie 17-03-2019 21:54 (5%)


Acties:
  • +1Henk 'm!

  • jomas
  • Registratie: mei 2011
  • Laatst online: 23:06
@jeroen vrij , @kitao Jullie kunnen in je project ook een module met een MAX7219 gebruiken zoals b.v. deze:
https://nl.aliexpress.com...28-433b-bc93-096e35d3b69a. Je kunt per module 64 leds individueel aansturen met 3 gpio pinnen. Geen geklooi met weerstanden, transistors of shiftregisters. (zit allemaal in de MAX7219) Zelfs de lichtsterkte kan je via software aansturen.

jomas wijzigde deze reactie 02-04-2019 10:19 (6%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
jomas schreef op zondag 17 maart 2019 @ 21:57:
@jeroen vrij , @kitao Jullie kunnen in je project ook een module met een MAX7219 gebruiken zoals b.v. deze:
https://nl.aliexpress.com...28-433b-bc93-096e35d3b69a. Je kunt per module 64 leds individueel aansturen met 3 gpio pinnen. Geen geklooi met weerstanden, transistors of shiftregisters. (zit allemaal in de MAX7219) Zelfs de lichtsterkte kan je via software aansturen. Met elke extra gpio pin van je arduino (voor de CS) en een nieuwe module kun je weer 64 extra leds aansluiten.
Ja maar we hebben het hier over een ledcube



Dat gaat niet met de MAX7219.
En zou ook niet weten hoe ik die van code moet voorzien.
Ik kom nog niet verder dan pinmode, digitalwrite for loop, int en define.

  • Vuikie
  • Registratie: december 2003
  • Laatst online: 18:24
Wet van ohm: U = I * R of te wel I = U/R = 3,3/1000 = 0,0033A of te wel 3,3mA wat er dan door de pin van de uC vloeit, dus daar hoef je geen zorgen over te maken. Die 1K kan jij ook gebruiken voor de base van de transistors.

Wat die 220Ohm betreft, ik multiplex de lagen, dus de tekening met de 3 weerstanden:

moet je nog 7 keer plaatsen(En aan 7 andere IO koppelen) Je hebt dan ook maar 1 laag per keer aan, waardoor je aan de 220Ohm, of de 120Ohm die jij plaatst, effectief maar 1 led aanstuurt. Dus die 220Ohm in mijn tekening, is de stroom begrenzer voor 1 LED.

Het aansturen gebeurd als volgt: je zet het patroon voor laag 1 op de uitgangen en zet dan de transistor voor laag 1 aan, daarna zet deze weer uit en zet je het patroon voor laag 2 op de uitgangen. Hierna zet je de transistor voor laag 2 aan en weer uit. Nu is laag 3 aan de beurt en daarna ga je weer naar laag 1, 2, enz... Zo multiplex je laag voor laag.

De oplossing van @jomas kan natuurlijk ook.

Vuikie wijzigde deze reactie 17-03-2019 22:13 (3%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jomas schreef op zondag 17 maart 2019 @ 21:57:
@jeroen vrij , @kitao Jullie kunnen in je project ook een module met een MAX7219 gebruiken zoals b.v. deze:
https://nl.aliexpress.com...28-433b-bc93-096e35d3b69a. Je kunt per module 64 leds individueel aansturen met 3 gpio pinnen. Geen geklooi met weerstanden, transistors of shiftregisters. (zit allemaal in de MAX7219) Zelfs de lichtsterkte kan je via software aansturen. Met elke extra gpio pin van je arduino (voor de CS) en een nieuwe module kun je weer 64 extra leds aansluiten.
Ik ga dit project niet nabouwen jomas
jeroen heeft me al één inspiratie teveel gegeven met zn klok ;)

maar wrs heb je gelijk, heb voor een andere klok eerder kennisgemaakt met een max en je hebt gelijk als je als uitgangspunt gemak dient de mens neemt. Aan de andere kant, berekeningen uitvoeren op transisters, chips, micro's, leds e.d. is op zich ook al een hobby en een kunst. Niet echt de mijne maar kant en klaar vind ik dan ook weer niet alles.

edit
of misschien gebruikte ik die max voor een led-matrix, is al tijdje geleden.
het nummer ervan weet ik ook al niet meer.
en wat jeroen aangeeft, is ook wel een punt.
zonder programma gaan de ledjes niet branden.

kitao wijzigde deze reactie 17-03-2019 23:16 (6%)


  • jomas
  • Registratie: mei 2011
  • Laatst online: 23:06
jeroen vrij schreef op zondag 17 maart 2019 @ 22:06:
[...]


Ja maar we hebben het hier over een ledcube

Dat gaat niet met de MAX7219.
Natuurlijk werkt dat wel. Je moet alleen in plaats van de meegeleverde ledmatrix jouw eigen kubus aansluiten.
In de datasheet van de MAX7219 staat zeer duidelijk hoe je hem moet aansturen.

jomas wijzigde deze reactie 17-03-2019 23:52 (11%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op dinsdag 19 maart 2019 @ 13:27:
Ja kan kloppen dat led 1 aan blijft.
Hij zet Led1 aan.
Dan een delay
Zet led 2 aan
Weer een delay
Dan zet hij ze beide uit en begint de loop opnieuw zonder delay.
Dus led 1 gaat uit en gelijk weer aan.
Als je de code afsluit met ook een delay doet hij het wel

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
int ledPin1 = 1;
int ledPin2 = 2;
int ledState = LOW;

void setup() {

    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
}

void Row1() {
    ledState = digitalRead(ledPin1);
    if (ledState == HIGH) {
    digitalWrite(ledPin1, LOW); 
    } else {
    digitalWrite(ledPin1, HIGH); 
}
    
}
void Row2() {
    ledState = digitalRead(ledPin2);
    if (ledState == HIGH) {
    digitalWrite(ledPin2, LOW); 
    } else {
    digitalWrite(ledPin2, HIGH); 
}

}

void loop(){
    Row1();
    delay(500);
    Row2();
    delay(500);
    Row1();
    Row2();
    delay(500)
}



Nu gaan ze beide na elkaar aan en tegelijk weer uit.
yep, ik zie het :)
er is wel een ; weggevallen in jouw code achter delay op regel 37, maar dat moet je dan zelf al gezien hebben anders compileert die niet.
Vond dit ook wel een grappig effect geven na een kleine verandering in het void loop() gedeelte , vroeg me namelijk af waarom je twee keer dezelfde functies aanroept. Maar geeft blijkbaar toch ander patroontje.

code:
1
2
3
4
5
6
7
8
9
void loop(){
    Row1();
    delay(500);
    Row2();
    delay(500);
//    Row1();
//    Row2();
//    delay(500);
}



nou , fraai, Tweak copieert jouw code niet mee met het copiëren van jouw post.
of ik zit hier wat te prutsen, kan ook natuurlijk.
afin, wie de hele code wil zien klik op jeroen vrij schreef op dinsdag 19 maart 2019 @ 13:27:

kitao wijzigde deze reactie 19-03-2019 18:43 (6%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ja zag het met compile heb de code al verder uitgebreid.
2x dezelfde functie is het niet door de code erboven.
Row1() ; is led1 aan.
En nog een keer Row1() ; gaat hij weer uit.

Ben inmiddels al aardig op weg.
Doe dit pas 3 weken.
Dacht eerst dat ga ik nooit snappen maar lukt me al aardig.
Dankzij hulp op het forum.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
 int ledPin1 = 13; 
int ledPin2 = 12;
int ledPin3 = 11; 
int ledPin4 = 10;
int ledPin5 =  9; 
int ledPin6 =  8;
int ledPin7 =  7; 
int ledPin8 =  6;
int ledPin9 =  5; 
int ledPin10 = 4;
int ledPin11 = 3; 
int ledPin12 = 2;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    } 

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  } 
    else { digitalWrite(ledPin3, HIGH); 
     } 
} 
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  } 
    else { digitalWrite(ledPin4, HIGH); 
     } 
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  } 
    else { digitalWrite(ledPin5, HIGH); 
     } 
} 
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  } 
    else { digitalWrite(ledPin6, HIGH); 
     } 
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
} 
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  } 
    else { digitalWrite(ledPin9, HIGH); 
     } 
} 
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  } 
    else { digitalWrite(ledPin10, HIGH); 
     } 
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  } 
    else { digitalWrite(ledPin11, HIGH); 
     } 
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  } 
    else { digitalWrite(ledPin12, HIGH); 
     } 
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();
}
void loop(){
    for (int i = 0; i < 8; i++){
    Lall();
    Zall();
    delay(500);
}
    for (int i = 0; i < 4; i++){
    Lall();
    X1();
    delay(500);
    X1();
    X2();
    delay(500);
    X2();
    X3();
    delay(500);
    X3();
    delay(500);
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){  
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){   
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}  
    }


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Dus deze functie schakelt de 1e Z-as zowel aan als uit.

void Z1() {
ledState = digitalRead(ledPin1);
if (ledState == HIGH) { digitalWrite(ledPin1, LOW); }
else { digitalWrite(ledPin1, HIGH);
}
}

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ik weet nog niet of ik vanuit 2D software er 3D van kan maken, maar heb nog een hele berg ledjes klaar liggen van de vorige opstelling. Eens kijken hoe ver het daar mee komt en met jouw kant-en-klaar codes blijft het voor mij ook leuk.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op dinsdag 19 maart 2019 @ 18:57:
Ik weet nog niet of ik vanuit 2D software er 3D van kan maken, maar heb nog een hele berg ledjes klaar liggen van de vorige opstelling. Eens kijken hoe ver het daar mee komt en met jouw kant-en-klaar codes blijft het voor mij ook leuk.
Dit zijn pas 3 effecten en weet niet zeker of ze juist op de cube uitkomen.
Maar zo een kubus is zo gesoldeerd.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ik heb er nog geen soldeerbout op gezet maar zag wel dat hier led7 en 8 niet gaan branden bij jouw tweede sketch (?).



ik heb een regeltje toegevoegd, namelijk op regel 14
int t = 500;
en dan de delays in void loop() veranderd naar
delay(t);

kitao wijzigde deze reactie 19-03-2019 20:21 (17%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Maar ik gebruik de analoge pins niet in mijn sketch.
Pin 13tot 5 zijn de anodes positief
En 4 3 2 zijn voor de kathodes.
Jij checkt nu met 12 Leds maar zijn er 9 per laag en dan 3 lagen.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op dinsdag 19 maart 2019 @ 20:32:
Maar ik gebruik de analoge pins niet in mijn sketch.
Pin 13 tot 5 zijn de anodes positief
En 4 3 2 zijn voor de kathodes.
Jij checkt nu met 12 Leds maar zijn er 9 per laag en dan 3 lagen.
nou ok, dat is dus een heel andere opstelling.
Toch ben ik uitgegaan van jouw tweede sketch met

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int ledPin1 = 13; 
int ledPin2 = 12;
int ledPin3 = 11; 
int ledPin4 = 10;
int ledPin5 =  9; 
int ledPin6 =  8;
int ledPin7 =  7; 
int ledPin8 =  6;
int ledPin9 =  5; 
int ledPin10 = A1;
int ledPin11 = A2; 
int ledPin12 = A3;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    }



De hoofdletter A pinnen staat voor analoog, hoewel je ze ook als 'normale' pinnen kunt gebruiken las ik laatst ergens. Is dus geen reden dat dit niet zou werken maar als je zegt dat je geen analoge pinnen gebruikt en er staat int ledPin10 = A1; dan klopt dat volgens mij niet helemaal. Voor het overige heb je wel gelijk, het is dus een heel andere opstelling maar dacht dat je eerst in het klein ging testen ipv tegelijk 27 leds.
.

kitao wijzigde deze reactie 19-03-2019 20:52 (39%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op dinsdag 19 maart 2019 @ 20:35:
[...]


nou ok, dat is dus een heel andere opstelling.
Toch ben ik uitgegaan van jouw tweede sketch met

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int ledPin1 = 13; 
int ledPin2 = 12;
int ledPin3 = 11; 
int ledPin4 = 10;
int ledPin5 =  9; 
int ledPin6 =  8;
int ledPin7 =  7; 
int ledPin8 =  6;
int ledPin9 =  5; 
int ledPin10 = A1;
int ledPin11 = A2; 
int ledPin12 = A3;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    }


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
 int ledPin1 = 13; 
int ledPin2 = 12;
int ledPin3 = 11; 
int ledPin4 = 10;
int ledPin5 =  9; 
int ledPin6 =  8;
int ledPin7 =  7; 
int ledPin8 =  6;
int ledPin9 =  5; 
int ledPin10 = 4;
int ledPin11 = 3; 
int ledPin12 = 2;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    } 

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  } 
    else { digitalWrite(ledPin3, HIGH); 
     } 
} 
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  } 
    else { digitalWrite(ledPin4, HIGH); 
     } 
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  } 
    else { digitalWrite(ledPin5, HIGH); 
     } 
} 
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  } 
    else { digitalWrite(ledPin6, HIGH); 
     } 
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
} 
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  } 
    else { digitalWrite(ledPin9, HIGH); 
     } 
} 
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  } 
    else { digitalWrite(ledPin10, HIGH); 
     } 
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  } 
    else { digitalWrite(ledPin11, HIGH); 
     } 
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  } 
    else { digitalWrite(ledPin12, HIGH); 
     } 
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();
}
void loop(){
    for (int i = 0; i < 8; i++){
    Lall();
    Zall();
    delay(500);
}
    for (int i = 0; i < 4; i++){
    Lall();
    X1();
    delay(500);
    X1();
    X2();
    delay(500);
    X2();
    X3();
    delay(500);
    X3();
    delay(500);
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){  
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){   
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}  
    for (int i = 0; i < 16; i++){
    Lall();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();
    delay(500);
    Z2();
    Z4();
    Z6();
    Z8();
    Lall();
}
    for (int i = 0; i < 16; i++){
    L3();
    Y1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    L3();
    L2();
    delay(500);
    Y3();
    Y2();
    delay(500);
    Y2();
    Y1();
    delay(500);
    L2();
    L1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    Y3();
    L1();
}
    for (int i = 0; i < 4; i++){
    L1();
    Z1();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L1();
    L2();
    delay(100);
    Z9();
    Z8();
    delay(100);
    Z8();
    Z7();
    delay(100);
    Z7();
    Z4();
    delay(100);
    Z4();
    Z5();
    delay(100);
    Z5();
    Z6();
    delay(100);
    Z6();
    Z3();
    delay(100);
    Z3();
    Z2();
    delay(100);
    Z2();
    Z1();
    delay(100);
    L2();
    L3();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L3();
    Z9();
}
    L1();
    Z1();
    delay(250);
    Z2();
    delay(250);
    Z3();
    delay(250);
    Z1();
    Z6();
    delay(250);
    Z2();
    Z5();
    delay(250);
    Z3();
    Z4();
    delay(250);
    Z6();
    Z7();
    delay(250);
    Z5();
    Z8();
    delay(250);
    Z4();
    Z9();
    delay(250);
    Z7();
    Z8();
    L2();
    delay(250);
    L1();
    Z7();
    delay(250);
    Z9();
    Z4();
    delay(250);
    Z8();
    Z1();
    delay(250);
    Z7();
    Z2();
    delay(250);
    Z4();
    Z3();
    delay(250);
    L1();
    L3();
    delay(250);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    X1();
    X2();
    delay(100);
    X2();
    X3();
    delay(100);
    X3();
    X2();
    delay(100);
    X2();
    X1();
    delay(100);
    Z3();
    Z4();
    delay(100);
    Z2();
    Z7();
    delay(100);
    Y1();
    Y2();
    delay(100);
    Y2();
    Y3();
    delay(100);
    Y3();
    Y2();
    delay(100);
    Y2();
    Y1();
    delay(100);
    L3();
    delay(100);
    L2();
    delay(100);
    L1();
    Y1();
}


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
[Afbeelding]

En als je de delay veranderd komen sommige effecten niet goed uit.
Door de kort delay creëer je een optische illusie.

jeroen vrij wijzigde deze reactie 19-03-2019 20:47 (41%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op dinsdag 19 maart 2019 @ 20:43:
[Afbeelding]

En als je de delay veranderd komen sommige effecten niet goed uit.
Door de kort delay creëer je een optische illusie.
ziet er goed uit hoor, mooi dingetje
en van programmeren heb je de smaak al te pakken zag ik.
voordeel van
int t = 500;
delay(t);
is dat je in éen keer alle delays in de code kunt veranderen.
ik heb de delay niet gewijzigd omdat ik t een 500 had meegegeven,
maar dat zijn trucjes die best handig zijn maar is tegelijkertijd ook muggegezift omdat je met ctrl+f+delay ook makkelijk door de code heen kan stappen en vaak is het niet eens gewenst om alle delays gelijk te zetten.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Zat nog wel een foutje in zag ik.
Maar die heb ik er nu uit.
Ik heb geen pc dus ik programmeer met me mobiel.
Dus kan geen snel functies gebruiken.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op dinsdag 19 maart 2019 @ 21:44:
Zat nog wel een foutje in zag ik.
Maar die heb ik er nu uit.
Ik heb geen pc dus ik programmeer met me mobiel.
Dus kan geen snel functies gebruiken.
wow!
ik zou gek worden op zo'n klein dingetje.
dat geeft jou wel extra punten dan om het in die omstandigheden op te bouwen.
maar moet zelf helaas wel afhaken omdat de schakeling mij iets te complex wordt om voor de lol in simu na te bouwen.
vind trouwens jammer dat je geen pc hebt want ik had graag het schema gezien.
Had eerder eens een abonnementje op Cabri 3D, daar kan je wel leuke 3D simulaties mee maken. Denk niet dat dat met Simulide gaat lukken.

kitao wijzigde deze reactie 19-03-2019 22:17 (10%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
https://goo.gl/images/WqJdyt

Dat is een schema van hoe de leds gesoldeerd zijn.
Het zijn 3 lagen van 9leds.
3x3x3.
De laag1 alle kathodes aan elkaar
Laag2 de kathodes aan elkaar.
Laag 3 alle khatodes aan elkaar.
Dat zijn pin 2 3 4 van onder naar boven.
De anodes lopen van onder naar boven.

13 12 11
10. 9. 8
7. 6. 5

Zo lopen de anodes als je boven op de kubus kijkt.
13 12 11 is de achterkant.
7 6 5. De voorkant.

Dus pin 13 zit op 3 anodes 1 van elke laag.
Enz

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Maar in jou geval kan je ook 3 vlakken maken van 9 Leds.
Elk vlak met de khatodes negatief aan elkaar.
Pin 2 3 4
En van elk vlak dezelfde led met positief aan elkaar.
Alleen als je wil simuleren zal je de negatief via 3 relais moeten laten lopen.
Omdat de negatieve pinnen ook 5v uitsturen

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ik zie het ja, tnx daar kan ik meer mee doen als de tekening uit de OP, niet dat die tekening slecht was maar ligt aan mij, ik kreeg het beeld niet goed in visie.
misschien dat ik toch weer inhaak dan.

en heb je nu ineens een rasp ipv uno ?
als ik stapje voor stapje neem zou je dan alvast kunnen aangeven op welke uno pinnen de 3 weerstanden zijn verbonden ?
vanavond ga ik er toch niet meer mee tekenen

kitao wijzigde deze reactie 19-03-2019 22:40 (57%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Nee dat is alleen de schets van de leds die ik gebruik.
De weerstanden zitten op de negatief.
Heb hier nog de code zonder fouten.
Kijk maar of je er wat mee doet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
int ledPin1 = 13; 
int ledPin2 = 12;
int ledPin3 = 11; 
int ledPin4 = 10;
int ledPin5 =  9; 
int ledPin6 =  8;
int ledPin7 =  7; 
int ledPin8 =  6;
int ledPin9 =  5; 
int ledPin10 = 4;
int ledPin11 = 3; 
int ledPin12 = 2;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    } 

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  } 
    else { digitalWrite(ledPin3, HIGH); 
     } 
} 
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  } 
    else { digitalWrite(ledPin4, HIGH); 
     } 
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  } 
    else { digitalWrite(ledPin5, HIGH); 
     } 
} 
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  } 
    else { digitalWrite(ledPin6, HIGH); 
     } 
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
} 
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  } 
    else { digitalWrite(ledPin9, HIGH); 
     } 
} 
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  } 
    else { digitalWrite(ledPin10, HIGH); 
     } 
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  } 
    else { digitalWrite(ledPin11, HIGH); 
     } 
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  } 
    else { digitalWrite(ledPin12, HIGH); 
     } 
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();
}
void loop(){
    for (int i = 0; i < 8; i++){
    Lall();
    Zall();
    delay(500);
    Lall();
    Zall();
    delay(500);
}
    for (int i = 0; i < 4; i++){
    Lall();
    X1();
    delay(500);
    X1();
    X2();
    delay(500);
    X2();
    X3();
    delay(500);
    X3();
    delay(500);
    Lall();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){  
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){   
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}  
    for (int i = 0; i < 16; i++){
    Lall();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();
    delay(500);
    Z2();
    Z4();
    Z6();
    Z8();
    Lall();
}
    for (int i = 0; i < 16; i++){
    L3();
    Y1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    L3();
    L2();
    delay(500);
    Y3();
    Y2();
    delay(500);
    Y2();
    Y1();
    delay(500);
    L2();
    L1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    Y3();
    L1();
}
    for (int i = 0; i < 4; i++){
    L1();
    Z1();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L1();
    L2();
    delay(100);
    Z9();
    Z8();
    delay(100);
    Z8();
    Z7();
    delay(100);
    Z7();
    Z4();
    delay(100);
    Z4();
    Z5();
    delay(100);
    Z5();
    Z6();
    delay(100);
    Z6();
    Z3();
    delay(100);
    Z3();
    Z2();
    delay(100);
    Z2();
    Z1();
    delay(100);
    L2();
    L3();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L3();
    Z9();
}
    L1();
    Z1();
    delay(250);
    Z2();
    delay(250);
    Z3();
    delay(250);
    Z1();
    Z6();
    delay(250);
    Z2();
    Z5();
    delay(250);
    Z3();
    Z4();
    delay(250);
    Z6();
    Z7();
    delay(250);
    Z5();
    Z8();
    delay(250);
    Z4();
    Z9();
    delay(250);
    Z7();
    Z8();
    L2();
    delay(250);
    L1();
    Z7();
    delay(250);
    Z9();
    Z4();
    delay(250);
    Z8();
    Z1();
    delay(250);
    Z7();
    Z2();
    delay(250);
    Z4();
    Z3();
    delay(250);
    L1();
    L3();
    delay(250);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    X1();
    X2();
    delay(100);
    X2();
    X3();
    delay(100);
    X3();
    X2();
    delay(100);
    X2();
    X1();
    delay(100);
    Z3();
    Z4();
    delay(100);
    Z2();
    Z7();
    delay(100);
    Y1();
    Y2();
    delay(100);
    Y2();
    Y3();
    delay(100);
    Y3();
    Y2();
    delay(100);
    Y2();
    Y1();
    delay(100);
    L3();
    delay(100);
    L2();
    delay(100);
    L1();
    Y1();
}


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ben blij voor je dat het gelukt is jeroen, ik maak er althans uit op dat het af is.
Knap werk.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Nee nog niet haha.
Zijn pas 4 effecten bereid hem Nog verder uit.
Of het gelukt is weet pas als mijn arduino is gearriveerd.
Bedankt voor je hulp en je positieve feedback.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Geen dank hoor, jij helpt mij.
Vooral met dat schema, die kon ik nabouwen. Voordeel daarvan is dat je na de eerste 9 leds al vantevoren kunt aftellen waar de volgende 18 gaan komen. De draadjes naar de weerstanden had ik wel iets meer naar rechts kunnen schuiven en ik vergeet ook iedere keer om de 100 Ohm te verbergen want dat is in het echt geen goede waarde.



Heb dit programma erin gezet :

https://circuitdigest.com...3X3-led-cube-with-arduino

maar is nogal aan de saaie kant van 1-2-3 en 4-5-6

Goed dat jij daar zelf een invulling aan geeft en zal tzt proberen die te gebruiken.

Nog iets, jouw Uno, is dat er één met IC-voet zoals in die link ? Dan kan je allicht proberen om er een nieuwe Atm328 in te zetten. Als die het dan nog niet doet is geen weggegooid geld want dan kan je van die chip een stand-alone uno maken.
.

kitao wijzigde deze reactie 20-03-2019 11:00 (31%)
Reden: Nog iets


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Mijn uno heeft 24v te eten gehad.
Was vergeten de voeding terug op5 te zetten.
Maar gebruik de uno alleen om de chips te laden.
Laad mijn projecten meestal stand alone op de atmega chip draaien.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op woensdag 20 maart 2019 @ 02:38:
Geen dank hoor, jij helpt mij.
Vooral met dat schema, die kon ik nabouwen. Voordeel daarvan is dat je na de eerste 9 leds al vantevoren kunt aftellen waar de volgende 18 gaan komen. De draadjes naar de weerstanden had ik wel iets meer naar rechts kunnen schuiven en ik vergeet ook iedere keer om de 100 Ohm te verbergen want dat is in het echt geen goede waarde.

[Afbeelding]

Heb dit programma erin gezet :

https://circuitdigest.com...3X3-led-cube-with-arduino

maar is nogal aan de saaie kant van 1-2-3 en 4-5-6

Goed dat jij daar zelf een invulling aan geeft en zal tzt proberen die te gebruiken.

Nog iets, jouw Uno, is dat er één met IC-voet zoals in die link ? Dan kan je allicht proberen om er een nieuwe Atm328 in te zetten. Als die het dan nog niet doet is geen weggegooid geld want dan kan je van die chip een stand-alone uno maken.
.
Heb de pinnen aangepast voor jou schets.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
const int ledPin1 = 2;
const int ledPin2 = 3;
const int ledPin3 = 4; 
const int ledPin4 = 5;
const int ledPin5 =  6; 
const int ledPin6 =  7;
const int ledPin7 =  8; 
const int ledPin8 =  9;
const int ledPin9 =  10; 
const int ledPin10 = A0;
const int ledPin11 = A1; 
const int ledPin12 = A2;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    digitalWrite(A0, HIGH);
    digitalWrite(A1, HIGH);
    digitalWrite(A2, HIGH);
    }

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  } 
    else { digitalWrite(ledPin3, HIGH); 
     } 
} 
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  } 
    else { digitalWrite(ledPin4, HIGH); 
     } 
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  } 
    else { digitalWrite(ledPin5, HIGH); 
     } 
} 
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  } 
    else { digitalWrite(ledPin6, HIGH); 
     } 
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin7, LOW);  } 
    else { digitalWrite(ledPin7, HIGH); 
     } 
} 
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  } 
    else { digitalWrite(ledPin9, HIGH); 
     } 
} 
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  } 
    else { digitalWrite(ledPin10, HIGH); 
     } 
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  } 
    else { digitalWrite(ledPin11, HIGH); 
     } 
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  } 
    else { digitalWrite(ledPin12, HIGH); 
     } 
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();

}
void loop(){
    for (int i = 0; i < 8; i++){
        L1();
        Zall;
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
   for (int i = 0; i < 4; i++){
        L1();
        Zall();
        delay(500);
        L1();
        L2();
        delay(500);
        L2();
        L3();
        delay(500);
        L3(); 
}
    
        L1();
        Y1();
        delay(500);
        Y1();
        Y2();
        delay(500);
        Y2();
        Y3();
        delay(500);
        L1();
        L2();
        delay(500);
        Y3();
        Y2();
        delay(500);
        Y2();
        Y1();
        delay(500);
        L2();
        L3();
        delay(500);
        Y1();
        Y2();
        delay(500);
        Y2();
        Y3();
        delay(500);
        Y3();
        L3();

    for (int i = 0; i < 10; i++){
        L1();
        X3();
        delay(10);
        L1();
        L2();
        X3();
        X2();
        delay(10);
        L2();
        L3();
        X2();
        X1();
        delay(10);
        L3();
        X1();
}
   for (int i = 0; i < 10; i++){
        X2();
        L1();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        X2();
        L3();
}
    for (int i = 0; i < 10; i++){
    
        L1();
        X1();
        delay(10);
        L1();
        X1();
        L2();
        X2();
        delay(10);
        L2();
        X2();
        L3();
        X3();
        delay(10);
        L3();
        X3();
}
        L2();
        Y1();
        Y2();
        Y3();
        delay(300);
        L2();
        Y1();
        Y2();
        Y3();

        
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    }


Is nog niet veel.
Maar is een begin

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Methode #3 is dat :|

https://www.rugged-circui...ays-to-destroy-an-arduino

neem zo eentje :


https://www.rugged-circuits.com/

Maar zonder gein, wist niet dat je al wist van die standalone opstelling. Ik dacht ik zeg het even voordat het hele bordje bij het schroot verdwijnt. Maar je hebt dus al geprobeerd om een andere atm328 in dat IC-voetje te drukken ?
Is beetje off-topic maar goed, het is allemaal niet gratis dat spul en scheelt weer als iets hergebruikt kan worden.
On-topic, zal een paar pin nummers aanpassen naar mijn opstelling en dan jouw code erin plakken.

edit : dat had jij al gedaan zag ik, da's helemaal mooi
.

kitao wijzigde deze reactie 20-03-2019 18:17 (3%)
Reden: edit


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Nee de mijn is schroot haha.
Maar ik koop ze bij ali meestal.
Ik gebruik arduino al even maar alleen kant en klare codes.
Ben zelf laag en middenspanning monteur.
Maar bij u=i x r dan houd het wel op bij mij.
Van transistors e. D. Heb ik echt geen kaas gegeten

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
jeroen vrij schreef op woensdag 20 maart 2019 @ 18:01:
Nee de mijn is schroot haha.
Maar ik koop ze bij ali meestal.
Ik gebruik arduino al even maar alleen kant en klare codes.
Ben zelf laag en middenspanning monteur.
Maar bij u=i x r dan houd het wel op bij mij.
Van transistors e. D. Heb ik echt geen kaas gegeten
Zo heb de pinnen aangepast aan jou opstelling en de fout voor led 7 en 8 eruit gehaald

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
int ledPin1 = 2; 
int ledPin2 = 3;
int ledPin3 = 4; 
int ledPin4 = 5;
int ledPin5 =  6; 
int ledPin6 =  7;
int ledPin7 =  8; 
int ledPin8 =  9;
int ledPin9 =  10; 
int ledPin10 = A0;
int ledPin11 = A1; 
int ledPin12 = A2;
int ledState = LOW; 

void setup() {     
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT); 
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT); 
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT); 
    pinMode(ledPin12, OUTPUT);
    digitalWrite(A0, LOW);
    digitalWrite(A1, LOW);
    digitalWrite(A2, LOW);
    } 

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  } 
    else { digitalWrite(ledPin3, HIGH); 
     } 
} 
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  } 
    else { digitalWrite(ledPin4, HIGH); 
     } 
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  } 
    else { digitalWrite(ledPin5, HIGH); 
     } 
} 
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  } 
    else { digitalWrite(ledPin6, HIGH); 
     } 
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin7, LOW);  } 
    else { digitalWrite(ledPin7, HIGH); 
     } 
} 
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  } 
    else { digitalWrite(ledPin8, HIGH); 
     } 
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  } 
    else { digitalWrite(ledPin9, HIGH); 
     } 
} 
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  } 
    else { digitalWrite(ledPin10, HIGH); 
     } 
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  } 
    else { digitalWrite(ledPin11, HIGH); 
     } 
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  } 
    else { digitalWrite(ledPin12, HIGH); 
     } 
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();
}
void loop(){
    
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){  
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){   
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}  
    for (int i = 0; i < 16; i++){
    L1();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();
    delay(500);
    Z2();
    Z4();
    Z6();
    Z8();
    L1();
}
    for (int i = 0; i < 16; i++){
    L2();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();
    delay(500);
    Z2();
    Z4();
    Z6();
    Z8();
    L2();
}
    for (int i = 0; i < 16; i++){
    L3();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();
    delay(500);
    Z2();
    Z4();
    Z6();
    Z8();
    L3();
}
    for (int i = 0; i < 16; i++){
    L3();
    Y1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    L3();
    L2();
    delay(500);
    Y3();
    Y2();
    delay(500);
    Y2();
    Y1();
    delay(500);
    L2();
    L1();
    delay(500);
    Y1();
    Y2();
    delay(500);
    Y2();
    Y3();
    delay(500);
    Y3();
    L1();
}
    for (int i = 0; i < 4; i++){
    L1();
    Z1();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L1();
    L2();
    delay(100);
    Z9();
    Z8();
    delay(100);
    Z8();
    Z7();
    delay(100);
    Z7();
    Z4();
    delay(100);
    Z4();
    Z5();
    delay(100);
    Z5();
    Z6();
    delay(100);
    Z6();
    Z3();
    delay(100);
    Z3();
    Z2();
    delay(100);
    Z2();
    Z1();
    delay(100);
    L2();
    L3();
    delay(100);
    Z1();
    Z2();
    delay(100);
    Z2();
    Z3();
    delay(100);
    Z3();
    Z6();
    delay(100);
    Z6();
    Z5();
    delay(100);
    Z5();
    Z4();
    delay(100);
    Z4();
    Z7();
    delay(100);
    Z8();
    Z9();
    delay(100);
    L3();
    Z9();
}
    L1();
    Z1();
    delay(250);
    Z2();
    delay(250);
    Z3();
    delay(250);
    Z1();
    Z6();
    delay(250);
    Z2();
    Z5();
    delay(250);
    Z3();
    Z4();
    delay(250);
    Z6();
    Z7();
    delay(250);
    Z5();
    Z8();
    delay(250);
    Z4();
    Z9();
    delay(250);
    Z7();
    Z8();
    L2();
    delay(250);
    L1();
    Z7();
    delay(250);
    Z9();
    Z4();
    delay(250);
    Z8();
    Z1();
    delay(250);
    Z7();
    Z2();
    delay(250);
    Z4();
    Z3();
    delay(250);
    L1();
    L3();
    delay(250);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    Lall();
    delay(100);
    X1();
    X2();
    delay(100);
    X2();
    X3();
    delay(100);
    X3();
    X2();
    delay(100);
    X2();
    X1();
    delay(100);
    Z3();
    Z4();
    delay(100);
    Z2();
    Z7();
    delay(100);
    Y1();
    Y2();
    delay(100);
    Y2();
    Y3();
    delay(100);
    Y3();
    Y2();
    delay(100);
    Y2();
    Y1();
    delay(100);
    L3();
    delay(100);
    L2();
    delay(100);
    L1();
    Y1();

    for (int i = 0; i < 8; i++){
        L1();
        Zall;
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}

   for (int i = 0; i < 4; i++){
        L1();
        Zall();
        delay(500);
        L1();
        L2();
        delay(500);
        L2();
        L3();
        delay(500);
        L3(); 
}
    
        L1();
        Y1();
        delay(500);
        Y1();
        Y2();
        delay(500);
        Y2();
        Y3();
        delay(500);
        L1();
        L2();
        delay(500);
        Y3();
        Y2();
        delay(500);
        Y2();
        Y1();
        delay(500);
        L2();
        L3();
        delay(500);
        Y1();
        Y2();
        delay(500);
        Y2();
        Y3();
        delay(500);
        Y3();
        L3();

    for (int i = 0; i < 10; i++){
        L1();
        X3();
        delay(10);
        L1();
        L2();
        X3();
        X2();
        delay(10);
        L2();
        L3();
        X2();
        X1();
        delay(10);
        L3();
        X1();
}
   for (int i = 0; i < 10; i++){
        X2();
        L1();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        X2();
        L3();
}
    for (int i = 0; i < 10; i++){
    
        L1();
        X1();
        delay(10);
        L1();
        X1();
        L2();
        X2();
        delay(10);
        L2();
        X2();
        L3();
        X3();
        delay(10);
        L3();
        X3();
}
        L2();
        Y1();
        Y2();
        Y3();
        delay(300);
        L2();
        Y1();
        Y2();
        Y3();

        
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z2();
        Z4();
        Z6();
        Z8();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    for (int i = 0; i < 20; i++){
        L1();
        Z1();
        Z3();
        Z7();
        Z9();
        delay(10);
        L1();
        L2();
        delay(10);
        L2();
        L3();
        delay(10);
        L3();
}
    }

jeroen vrij wijzigde deze reactie 20-03-2019 18:36 (4%)
Reden: Fout in de code


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Heb eerst jouw programma van 17:58 getest.

Nou is er één probleem, ik zie de leds amper branden. De drie weerstandjes van 100 op 50 ohm gezet, alle 10 Milli-seconden-delays naar 100 gezet maar het blijft turen. Heb er een snip van gemaakt terwijl het in actie was, D21, 22 en 23 branden nu. Met sterk inzoomen worden de leds wel beter zichtbaar maar dan zie ik weer niet het hele plaatje.


klik


Was meteen een half uur zoet want van simulide kan je ook een 'save circuit as image' - optie gebruiken maar die verdwijnt dan meteen ergens in een zwart gat, niet meer terug te vinden.

Ik zie wel knipperen hoor, dus lijkt allemaal prima zo maar welke ledje eventueel niet meedoet kan ik je niet vertellen. Maar het beweegt en rap ook. Missie geslaagd zou ik zeggen, heel knap dat je dit zelf even bij elkaar programmeert, zijn geen korte codes. Zal jouw laatste code erin zetten maar weet zo gauw even niet om het helderder op mijn monitor te krijgen.

En mss nog even een vraagje, hoe test jij je eigen programma dan eigenlijk nu de uno in puin ligt ?

Ps,
Ik ben niet in de code en zelfs niet echt in de schakeling gedoken, maar wil er even bijzeggen dat het mss niet verstandig is om in jouw IRL-situatie dan ook maar even delays(10) naar delay(100) te wijzigen. Vermoed namelijk dat dit expres zo kort is om overbelasting te voorkomen. Bij een vorige led-matrix zat ik met hetzelfde euvel, dat doet het niet zo best in deze omgeving. Een monitor is geen led op tafel.
.

kitao wijzigde deze reactie 20-03-2019 20:19 (20%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Niet kan niet testen dat is juist het probleem.
Haha

  • farlane
  • Registratie: maart 2000
  • Laatst online: 14-09 12:59
jeroen vrij schreef op woensdag 20 maart 2019 @ 18:28:
[...]

Zo heb de pinnen aangepast aan jou opstelling en de fout voor led 7 en 8 eruit gehaald

code:
1
....

Dat moet beter kunnen lijkt me ....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
farlane schreef op woensdag 20 maart 2019 @ 20:19:

Dat moet beter kunnen lijkt me ....
Veel repetities helemaal uitgeschreven wat ook in een loop en/of vector zou passen bedoel je ?
Misschien een random-factor erin zetten ?

Moet er wel bijzeggen, deze code is 100x zo kort

https://circuitdigest.com...3X3-led-cube-with-arduino

maar 500x zo saai.

zit echt leuk patroon in bij het programma van jeroen
zover ik kon waarnemen tenminste

code 18:28 ongewijzigd inmiddels ook opgeladen, doet het prima


.

kitao wijzigde deze reactie 20-03-2019 21:09 (54%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Hoop dat mijn arduino snel komt doe de delay nu met een natte vinger.
Gaat beter als ik hem ook kan testen.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Deze moet je niet op je arduino testen zit nog een fout in zag ik op regel 255.
Daar gaan alle layers ineens aan.
Dus stuurt 1 pin 3 leds ineens aan.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
stuur gewoon maar de volgende code door hoor, is toch je eigen topic.

en kijk dit dan




boven D17 en D18 blijkt ineens een knooppuntje te zitten ?
zag er nog een paar
waar komen die dan vandaan ? :?

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op woensdag 20 maart 2019 @ 21:51:
stuur gewoon maar de volgende code door hoor, is toch je eigen topic.

en kijk dit dan

[Afbeelding]


boven D17 en D18 blijkt ineens een knooppuntje te zitten ?
zag er nog een paar
waar komen die dan vandaan ? :?
Ja dat weet ik ook niet haha.
Dat komt de code niet ten goede.
LOL.
Zal morgen weer een code sturen.
Was ondertussen de volgende cube aan het solderen.

https://tweakers.net/ext/f/kyKFAhd0B3K2PQm7Ys1kbKs7/thumb.jpg

6x6x6. Maar dan moet ik eerst uitvinden hoe de code te maken met shuifregisters.
Heb al wat gezocht op het net maar kom er niet helemaal uit.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Knopen doorgehakt, lijkt wel verschil te maken maar is nog geen hoogtezonnetje



Komt wrs omdat je in één keer vanaf pin7 met een enorme omweg omlaag weer helemaal naar boven moet naar led6 om dat lijntje te trekken. Dus is priegelwerk omdat je dan moet uitzoomen. Kan wel anders maar duurt langer.

6x6x6 , dat gaat niet goed komen
blinkt wel dat frame

schuifregisters zie [arduino] klokje.
staat hier op forum heel programma, in het nederlands.

kitao wijzigde deze reactie 20-03-2019 22:50 (24%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ja dat gaat mij de pet te boven.
Ik moet gewoon kunnen schrijven.
Bij sr 2 pin 7 aan.
En bij sr5 pin 6en 8.
Iets
digitalwrite(SR[5]b00000101)

Zoiets zeg maar.
Maar dat opschuiven snap ik niet van de ene register naar de andere.
Bij 1 keer schuiven ben ik de tel kwijt.
:)

Heb iets getekend.

https://tweakers.net/ext/f/fzoxIlB7RXGu3egRauwBTz9x/thumb.jpg

Als je het bijvoorbeeld zo zou doen krijg je een beter beeld van de effecten denk ik.
Let niet op me tekenen ben niet echt een Picasso.
Haha

jeroen vrij wijzigde deze reactie 20-03-2019 23:55 (36%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ik ga zeker proberen om het helderder in beeld te krijgen.
Punt is alleen dat ik al een paar uurtjes besteed per dag aan het leren lezen van c++ dus dan is de arduino en simulide enkel ter ontspanning.
Op dit moment zie ik nog niet veel verschil met jouw tekening en het schema maar zal die tzt eens opblazen of de bedrading anders loopt.
Wat de s-registers betreft, dat topic staat nog steeds open dus vraag gerust wat niet helemaal duidelijk is.
En als je toch op dat topic hebt geklikt dan was ook te zien dat de leds in die opstelling, zowel hier als daar op yellow ingesteld, wel helder op de monitor komen.
Iets klopt dus niet omdat daar ook delay(100) werd gebruikt.
Maar het is al laat.

*** dag later ***

Ik heb deze ervan gemaakt aan de hand van jouw tekening, zitten geen weerstanden meer in en Uno klaagt niet. Geeft inderdaad helderder beeld nu en dat is ook wel te zien op deze afbeelding, hoewel max. uitgezoomd.


Deze afbeelding is klikbaar, in imgur nogmaals op klikken


Dat is van jouw laatste code, totaal ongewijzigd.
Nou teken ik dit binnen een half uurtje tegenwoordig omdat ik er al eerder mee geoefend had, maar volgende keer als iemand om een schema verzoekt, dan svp wel graag de goeie geven :( :D

Project geslaagd, knap gemaakt. :)
.

kitao wijzigde deze reactie 21-03-2019 13:54 (33%)
Reden: *** dag later ***


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Haha ok heb inmiddels de setup van de code zo aangepast dat hij uitzichzelf multiplext denk ik. hier staan nog geen effect in want moet nog even uitzoeken hoe ik een bepaalde loop kan herhalen.
Met een for loop ofzo.

Zou hier voor het mooie een libery van moeten maken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
void setup(){
// Anodes van links naar rechts en voor naar achter//
    pinMode(2,OUTPUT);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
//kathodes van onder naar boven//
//zijn aangesloten rechtstreeks op de arduino//
//zonder transistors
// met transistors moet je ze op LOW zetten
//en bij de leds de HIGH en LOW omdraaien
    pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
    digitalWrite(11, HIGH);
    digitalWrite(12, HIGH);
    digitalWrite(13, HIGH);
    
    }
//individuele leds gaan aan en uit//
//er word steeds geteld van links naar rechts//
//en van achter naar voren                  //
//  laag1      laag2     laag3              //

// 1  2  3    10 11 12   19 20 21           //
// 4  5  6    13 14 15   22 23 24           //
// 7  8  9    16 17 18   25 26 27           //

//  ^^ voorzijde kubus ^^                   //
void Led1(){
    digitalWrite(2, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(2, LOW);
    digitalWrite(11,HIGH);
    }
void Led2(){
    digitalWrite(3, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(3, LOW);
    digitalWrite(11,HIGH);
    }
void Led3(){
    digitalWrite(4, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(4, LOW);
    digitalWrite(11,HIGH);
    }
void Led4(){
    digitalWrite(5, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(5, LOW);
    digitalWrite(11,HIGH);
    }
void Led5(){
    digitalWrite(6, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(6, LOW);
    digitalWrite(11,HIGH);
    }
void Led6(){
    digitalWrite(7, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(7, LOW);
    digitalWrite(11,HIGH);
    }
void Led7(){
    digitalWrite(8, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(8, LOW);
    digitalWrite(11,HIGH);
    }
void Led8(){
    digitalWrite(9, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(9, LOW);
    digitalWrite(11,HIGH);
    }
void Led9(){
    digitalWrite(10, HIGH);
    digitalWrite(11,LOW);
    delay(50);
    digitalWrite(10, LOW);
    digitalWrite(11,HIGH);
    }
void Led10(){
    digitalWrite(2, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(2, LOW);
    digitalWrite(12,HIGH);
    }
void Led11(){
    digitalWrite(3, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(3, LOW);
    digitalWrite(12,HIGH);
    }
void Led12(){
    digitalWrite(4, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(4, LOW);
    digitalWrite(12,HIGH);
    }
void Led13(){
    digitalWrite(5, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(5, LOW);
    digitalWrite(12,HIGH);
    }
void Led14(){
    digitalWrite(6, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(6, LOW);
    digitalWrite(12,HIGH);
    }
void Led15(){
    digitalWrite(7, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(7, LOW);
    digitalWrite(12,HIGH);
    }
void Led16(){
    digitalWrite(8, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(8, LOW);
    digitalWrite(12,HIGH);
    }
void Led17(){
    digitalWrite(9, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(9, LOW);
    digitalWrite(12,HIGH);
    }
void Led18(){
    digitalWrite(10, HIGH);
    digitalWrite(12,LOW);
    delay(50);
    digitalWrite(10, LOW);
    digitalWrite(12,HIGH);
    }
void Led19(){
    digitalWrite(2, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(2, LOW);
    digitalWrite(13,HIGH);
    }
void Led20(){
    digitalWrite(3, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(3, LOW);
    digitalWrite(13,HIGH);
    }
void Led21(){
    digitalWrite(4, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(4, LOW);
    digitalWrite(13,HIGH);
    }
void Led22(){
    digitalWrite(5, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(5, LOW);
    digitalWrite(13,HIGH);
    }
void Led23(){
    digitalWrite(6, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(6, LOW);
    digitalWrite(13,HIGH);
    }
void Led24(){
    digitalWrite(7, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(7, LOW);
    digitalWrite(13,HIGH);
    }
void Led25(){
    digitalWrite(8, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(8, LOW);
    digitalWrite(13,HIGH);
    }
void Led26(){
    digitalWrite(9, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(9, LOW);
    digitalWrite(13,HIGH);
    }
void Led27(){
    digitalWrite(10, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(10, LOW);
    digitalWrite(13,HIGH);
    }
// string van 3 leds van links naar rechts   //
// laag1 = 1,2,3 laag2 = 4,5,6 laag3 = 7,8,9 //
void Sl1(){ 
    Led1();
    delay(50);
    Led2();
    delay(50);
    Led3();
    }
void Sl2(){ 
    Led4();
    delay(50);
    Led5();
    delay(50);
    Led6();
    }
void Sl3(){ 
    Led7();
    delay(50);
    Led8();
    delay(50);
    Led9();
    }
void Sl4(){ 
    Led10();
    delay(50);
    Led11();
    delay(50);
    Led12();
    }
void Sl5(){ 
    Led13();
    delay(50);
    Led14();
    delay(50);
    Led15();
    }
void Sl6(){ 
    Led16();
    delay(50);
    Led17();
    delay(50);
    Led18();
    }
void Sl7(){ 
    Led19();
    delay(50);
    Led20();
    delay(50);
    Led21();
    }
void Sl8(){ 
    Led22();
    delay(50);
    Led23();
    delay(50);
    Led24();
    }
void Sl9(){ 
    Led25();
    delay(50);
    Led26();
    delay(50);
    Led27();
    }
//dit zijn strengs van 3 leds van achter naar voren//
void Sa1(){
    Led1();
    delay(50);
    Led4();
    delay(50);
    Led7();
    }
void Sa2(){
    Led2();
    delay(50);
    Led5();
    delay(50);
    Led8();
    }
void Sa3(){
    Led3();
    delay(50);
    Led6();
    delay(50);
    Led9();
    }
void Sa4(){
    Led10();
    delay(50);
    Led13();
    delay(50);
    Led16();
    }
void Sa5(){
    Led11();
    delay(50);
    Led14();
    delay(50);
    Led17();
    }
void Sa6(){
    Led12();
    delay(50);
    Led15();
    delay(50);
    Led18();
    }
void Sa7(){
    Led19();
    delay(50);
    Led22();
    delay(50);
    Led25();
    }
void Sa8(){
    Led20();
    delay(50);
    Led23();
    delay(50);
    Led26();
    }
void Sa9(){
    Led21();
    delay(50);
    Led24();
    delay(50);
    Led27();
    }
//dit zijn de strengs van onder naar boven//
void So1(){
    Led1();
    delay(50);
    Led10();
    delay(50);
    Led19();
    }
void So2(){
    Led2();
    delay(50);
    Led11();
    delay(50);
    Led20();
    }
void So3(){
    Led3();
    delay(50);
    Led12();
    delay(50);
    Led21();
    }
void So4(){
    Led4();
    delay(50);
    Led13();
    delay(50);
    Led22();
    }
void So5(){
    Led5();
    delay(50);
    Led14();
    delay(50);
    Led23();
    }
void So6(){
    Led6();
    delay(50);
    Led15();
    delay(50);
    Led24();
    }
void So7(){
    Led7();
    delay(50);
    Led16();
    delay(50);
    Led25();
    }
void So8(){
    Led8();
    delay(50);
    Led17();
    delay(50);
    Led26();
    }
void So9(){
    Led9();
    delay(50);
    Led18();
    delay(50);
    Led27();
    }
//hieronder staan hele vlakken van links naar rechts//
void Vl1(){
    Sa1();
    delay(50);
    Sa4();
    delay(50);
    Sa7();
    delay(50);
    }
void Vl2(){
    Sa2();
    delay(50);
    Sa5();
    delay(50);
    Sa8();
    delay(50);
    }
void Vl3(){
    Sa3();
    delay(50);
    Sa6();
    delay(50);
    Sa9();
    delay(50);
    }
//vlakken van achter naar voren//
void Va1(){
    So1();
    delay(50);
    So2();
    delay(50);
    Sa3();
    delay(50);
    }
void Va2(){
    So4();
    delay(50);
    So5();
    delay(50);
    Sa6();
    delay(50);
    }
void Va3(){
    So7();
    delay(50);
    So8();
    delay(50);
    Sa9();
    delay(50);
    }
//hieronder de vlakken van onder naar boven//
void Vo1(){
    Sl1();
    delay(50);
    Sl2();
    delay(50);
    Sl3();
    delay(50);
    }
void Vo2(){
    Sl4();
    delay(50);
    Sl5();
    delay(50);
    Sl6();
    delay(50);
    }
void Vo3(){
    Sl7();
    delay(50);
    Sl8();
    delay(50);
    Sl9();
    delay(50);
    }
void loop(){
//zo schakel je leds apart in
// leds gaan zelf uit na 50ms
//max 1 led per laag omdat elke laag 1 resistor bevat
//in mijn geval 160 ohm voor 3.3v leds

    Led1();
    delay(25);
    Led14();
    delay(25);
    Led22();
//kan nu weer op laag 1 een led aanzetten
//door de 2x (25) delay is led 1 weer uit
    Led8();
    delay(25);
    Led16();
    delay(25);
    Led19();
//delay van 500 om ruimte tussen de effecten te creeren//
    delay(500);
}


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Misschien kinkje in kabel ... :/




doet het nog steeds

Ruggeduino model ofzo :N

Maar is niet helemaal waar, er verschijnt geen tekst in rode alarmletters, maar de leds gaan dan allen tegelijk snel en fel wit oplichten in aan/uit patroon.
.

kitao wijzigde deze reactie 21-03-2019 19:28 (39%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ik snap het ff niet.
Gaat alles oplichten met de code hierboven.
Enuh je hebt 24v op de ground staan.

jeroen vrij wijzigde deze reactie 21-03-2019 23:14 (22%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op donderdag 21 maart 2019 @ 23:12:
Ik snap het ff niet.
Gaat alles oplichten met de code hierboven.
Enuh je hebt 24v op de ground staan.
Ja die 24V was een test, vraag me namelijk steeds af of wat er gesimuleerd wordt niet in het echt de Uno opblaast. Wou dus even kijken wanneer de virtuele alarmbellen afgaan en dat is niet snel, moet je echt wel wat voor doen.
Code3 net erin gezet, compileert maar doet niet veel, zie enkel het ingebouwde ledje13 knipperen.
Dat is met hetzelfde schema als bij code2, dus van jouw foto.
Code2 voor de zekerheid nog eens getest en die gaat nog steeds wel goed.
Code3 alle delays in ene keer naar 250 veranderd, maar dat maakte geen verschil.

Mischien kan je dit eens uitzoeken

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
..........................
void Led21(){
    digitalWrite(4, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(4, LOW);
    digitalWrite(13,HIGH);
    }
void Led22(){
    digitalWrite(5, HIGH);
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(5, LOW);
    digitalWrite(13,HIGH);
    }

.............................

void loop(){
//zo schakel je leds apart in
// leds gaan zelf uit na 50ms
//max 1 led per laag omdat elke laag 1 resistor bevat
//in mijn geval 160 ohm voor 3.3v leds

    Led1();
    delay(25);
    Led14();
    delay(25);
    Led22();
//kan nu weer op laag 1 een led aanzetten
//door de 2x (25) delay is led 1 weer uit
    Led8();
    delay(25);
    Led16();
    delay(25);
    Led19();
//delay van 500 om ruimte tussen de effecten te creeren//
    delay(500);
}


Veel void functies worden in void loop() niet aangeroepen volgens mij.
weet nog niet hoe ik in arduino moet debuggen namelijk.

En pinnen A0-2 zijn ineens verdwenen en pin 11-13 erbij gekomen ?

En ik lees in jouw codetekst dat er weerstanden zijn bijgeplaatst terwijl bij code2/schema2 geen enkele weerstand zat. Mischien dat slimme mensen uit jouw code de opstelling erbij kunnen zien maar dat telt niet voor mij.
.

kitao wijzigde deze reactie 22-03-2019 08:37 (50%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Heb die laatste net getest maar die gaat niet werken.
Doordat elk led direct de lagen aanstuurt gaat vaak de laag uit terwijl hij aan moet blijven.
Zal dus wat anders moeten verzinnen.
Ga proberen de weerstanden direct in de cube te solderen.
En ga ze 8ma geven zo hoop ik ipv 1 led 3 leds ineens aan te kunnen zetten.

jeroen vrij wijzigde deze reactie 22-03-2019 10:15 (27%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 10:13:
Heb die laatste net getest maar die gaat niet werken.
Doordat elk led direct de lagen aanstuurt gaat vaak de laag uit terwijl hij aan moet blijven.
Zal dus wat anders moeten verzinnen.
Ga proberen de weerstanden direct in de cube te solderen.
En ga ze 8ma geven zo hoop ik ipv 1 led 3 leds ineens aan te kunnen zetten.
Maar code2 met schema2 zonder weerstanden ging toch prima ?

Heb net een beginnetje gemaakt om die wat korter te krijgen.
Bijvoorbeeld dit stukje :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}

/////.........tot en met Z8................

void loop(){
for (int i = 0; i < 16; i++){
    L1();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
   }
}


De Z1 regeltjes gewijzigd tot

code:
1
2
3
4
5
6
7
8
9
10
11
12
void Z(int p) {  
    ledState = digitalRead(p);  
    if (ledState == HIGH) { digitalWrite(p, LOW);  } 
    else { digitalWrite(p, HIGH); 
     } 
} 
//......................................
void X1(){
    Z(2);
    Z2();
    Z3();
}


Z(2)
2 is het pin nummer en Z(2) roept functie Z(int p) aan. Daardoor wordt p = 2.
Is getest en pin2 reageert nog steeds.
Heb wel gebruik moeten maken van find-replace.

Vertaald naar C++ versie

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
using namespace std;  
//***************        // blokje set-up gedoe voor c++

void Z(int p){        // functie Z met integer p 
   
    cout << "digitalWrite  " << p << "   LOW" << endl;  // print p met wat tekst
}

int main() {       // de c++ versie van void loop()
    for (int i = 0; i < 5; i++) {
        Z(2);       // roep functie Z aan en geef het de waarde 2 mee voor p
    }
}


Hier te testen http://cpp.sh/
.

kitao wijzigde deze reactie 22-03-2019 11:02 (12%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ben het hele schema aan het aanpassen.
Ga de ground schakelen
Maar er zitten 36 leds aan 1 laag.
Elke led krijgt 10ma dus moet ik 360ma sinken.
Dus kan ik niet een npn transistor gebruiken.
Ga even uitzoeken welke mosfet ik het beste kan gebruiken om dat te doen.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op vrijdag 22 maart 2019 @ 10:38:
[...]


Maar code2 met schema2 zonder weerstanden ging toch prima ?

Heb net een beginnetje gemaakt om die wat korter te krijgen.
Bijvoorbeeld dit stukje :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  } 
    else { digitalWrite(ledPin1, HIGH); 
     } 
} 
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  } 
    else { digitalWrite(ledPin2, HIGH); 
     } 
}

/////.........tot en met Z8................

void loop(){
for (int i = 0; i < 16; i++){
    L1();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
   }
}


De Z1 regeltjes gewijzigd tot

code:
1
2
3
4
5
6
7
8
9
10
11
12
void Z(int p) {  
    ledState = digitalRead(p);  
    if (ledState == HIGH) { digitalWrite(p, LOW);  } 
    else { digitalWrite(p, HIGH); 
     } 
} 
//......................................
void X1(){
    Z(2);
    Z2();
    Z3();
}


Z(2)
2 is het pin nummer en Z(2) roept functie Z(int p) aan. Daardoor wordt p = 2.
Is getest en pin2 reageert nog steeds.
Heb wel gebruik moeten maken van find-replace.

Vertaald naar C++ versie

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
using namespace std;  
//***************        // blokje set-up gedoe voor c++

void Z(int p){        // functie Z met integer p 
   
    cout << "digitalWrite  " << p << "   LOW" << endl;  // print p met wat tekst
}

int main() {       // de c++ versie van void loop()
    for (int i = 0; i < 5; i++) {
        Z(2);       // roep functie Z aan en geef het de waarde 2 mee voor p
    }
}


Hier te testen http://cpp.sh/
.
Ja ging ook prima maar wil zo ie zo even een schema maken met een mosfet.
Omdat er op 1 laag 9 Leds aangesloten zitten is 90ma lijkt me niet verstandig die te sinken met een arduino.
Ofwel.
Wil ook een 6x6x6 gaan maken in rgb.
Dan gaat de arduino dat niet redden.

Weet jij iets van mosfet.
Had de irf530n gevonden maar weet niet of die geschikt zijn.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 12:15:

Ja ging ook prima maar wil zo ie zo even een schema maken met een mosfet.
Omdat er op 1 laag 9 Leds aangesloten zitten is 90ma lijkt me niet verstandig die te sinken met een arduino.
Ofwel.
Wil ook een 6x6x6 gaan maken in rgb.
Dan gaat de arduino dat niet redden.

Weet jij iets van mosfet.
Had de irf530n gevonden maar weet niet of die geschikt zijn.
Ik zou het moeten weten maar ben het vergeten, al zo'n tijd niks mee gedaan. Maar prima hoor dat jij je wel verdiept in transistos e.d. en moet zeggen, als je zelf wil bouwen zonder iedere keer voorbeeldschema's na te apen dan heb je dat wel nodig.
Mijn richting gaat meer naar software en programmeren en dan af en toe zo'n shift-register of ander ic'tje en dan heb je vrijwel geen transistors, spoeltjes , diodes en etc. nodig.

Heb je programma iets kunnen verkorten, van 738 tot 681 regels en doet het nog steeds maar heb helaas al je delays allemaal op 180 gezet. Had vantevoren dit moeten doen voor je verschillende maar repeterende delays
int t200 = 200;
int t10 = 10;

en dan in het programma zetten
delay(t200);
delay(t10);

etc. maar dat is nou dus water onder de brug.

andere veranderingen, is wel handig om te weten dacht ik, heb het net zelf ook pas gevonden , A0 = 14, A1=15 en etc. Hier de hoofdpuntjes, is slechts snip uit het geheel.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void Z(int z) {  
    ledState = digitalRead(z);  
    if (ledState == HIGH) { digitalWrite(z, LOW);  } 
    else { digitalWrite(z, HIGH); 
     } 
} 

void L(int a) {  
    ledState = digitalRead(a);  
    if (ledState == HIGH) { digitalWrite(a, LOW);  } 
    else { digitalWrite(a, HIGH); 
     } 
}
*************************************************************
void loop(){
for (int i = 0; i < 16; i++){
    L(14);
    Z(2);
    Z(4);
    Z(8);
    Z(10);
    delay(t200);
    Z(2);
    Z(4);
    Z(8);
    Z(10);
    Z(3);
    Z(5);
    Z(7);
    Z(9);
    delay(t200);
    Z(3);
    Z(5);
    Z(7);
    Z(9);
    L(14);
*********************************************


Nog bedankt, leuk project waarvan ik vind dat je die al netjes had afgerond maar wat mij een leuke uitdaging geeft om dit nog verder te verkorten al zal het niet eenvoudig worden met reeksen zoals
L(14); Z(2); Z(4); Z(8); Z(10);
Bedoeling is namelijk wel om niet zomaar het hele originele patroon vlak te strijken zoals ik al gedaan heb met alle delays op uniform te zetten.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Gaaf dus nu hoe ik ze niet allemaal in de setup te zetten.
Maar 1 keer. En kan ik ze gewoon het pin nummer geven.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
jeroen vrij schreef op vrijdag 22 maart 2019 @ 14:30:
Gaaf dus nu hoe ik ze niet allemaal in de setup te zetten.
Maar 1 keer. En kan ik ze gewoon het pin nummer geven.
Maar arduino accepreerd dus ook c++ als ik het goed begrijp.

Maar kan ik ook iets als dit doen.
Z(1,5,9);
Of iets wat er op lijkt.

jeroen vrij wijzigde deze reactie 22-03-2019 14:35 (11%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 14:30:
Gaaf dus nu hoe ik ze niet allemaal in de setup te zetten.
Maar 1 keer. En kan ik ze gewoon het pin nummer geven.
Dat had je al gedaan in je code3 ...

code:
1
2
3
4
5
6
void setup(){
// Anodes van links naar rechts en voor naar achter//
    pinMode(2,OUTPUT);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);


... maar dat kan dus (volgens een onduidelijke internet discussie) ook met A0-A5 wat een alias zou zijn voor de nummers 14-19.
Het zijn trouwens niet de echte pin-nummers zag ik




maar het pakte wel, zover ik kon zien.
jeroen vrij schreef op vrijdag 22 maart 2019 @ 14:31:
[...]

Maar arduino accepreerd dus ook c++ als ik het goed begrijp.

Maar kan ik ook iets als dit doen.
Z(1,5,9);
Of iets wat er op lijkt.
Welke programmeertaal Arduino is heb ik ook al minstens 1x gevraagd, het lijkt erop zeggen ze.

Z(1,5,9);

Nee, gaat niet, er is maar argument tegelijk wat je naar een functie
void Z(int z) {
kunt sturen omdat er maar één int z is.
Maar dat ga ik verder uitzoeken of het korter kan.
En dan bedoel ik niet achter elkaar schrijven zoals

int ledPin1 = 2; int ledPin2 = 3; int ledPin3 = 4;
int ledPin4 = 5; int ledPin5 = 6; int ledPin6 = 7;

omdat dit wel lappen scroll codes scheelt maar structureel voor het programma zelf geen klappernoot uitmaakt.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 int ledState=LOW;

void setup(){

    for(int i=2; i<=13; i++){
  pinMode(i, OUTPUT);
}
    for(int i=A0; i<=A5; i++){
  pinMode(i, HIGH);
}
   }
void Z(int z) { 
        ledState = digitalRead(z); if (ledState == HIGH) { digitalWrite(z, LOW); } else { digitalWrite(z, HIGH); 
        } 
    } 

void L(int a) { 
        ledState = digitalRead(a); if (ledState == HIGH) { digitalWrite(a, LOW); } else { digitalWrite(a, HIGH); } 
}

void loop(){
    Z(1);
    Z(3);
    delay(100);
    Z(1);
    }



OK maar de int ledstate=LOW,
Die moet er staan anders doet hij het niet.
Betekent dat dat hij bij de start op LOW staat.
Of dat hij bij digitalRead altijd low leest.

Dat met die timer maakt geen verschil.
Of ik nu timer(100) tik
Of delay(100)

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Heb van de Z en z even R en r gemaakt
Ivm met row=rij

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 int ledState=LOW;

void setup(){

    for(int i=2; i<=13; i++){
  pinMode(i, OUTPUT);
}
    for(int i=A0; i<=A5; i++){
  pinMode(i, HIGH);
}
   }
void R(int r) { 
        ledState = digitalRead(r); if (ledState == HIGH) { digitalWrite(r, LOW); } else { digitalWrite(r, HIGH); 
        } 
    
}
void L(int a) { 
        ledState = digitalRead(a); if (ledState == HIGH) { digitalWrite(a, LOW); } else { digitalWrite(a, HIGH); } 
    }

    
void loop(){
    R(1);
    R(3);
    delay(100);
    R(1);
    }


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 15:02:
OK maar de int ledstate=LOW,
Die moet er staan anders doet hij het niet.
Betekent dat dat hij bij de start op LOW staat.
Of dat hij bij digitalRead altijd low leest.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 int ledState=LOW;

void setup(){

    for(int i=2; i<=13; i++){
  pinMode(i, OUTPUT);
}
    for(int i=A0; i<=A5; i++){
  pinMode(i, HIGH);
}
   }
void Z(int z) { 
        ledState = digitalRead(z); if (ledState == HIGH) { digitalWrite(z, LOW); } else { digitalWrite(z, HIGH); 
        } 
    } 

void L(int a) { 
        ledState = digitalRead(a); if (ledState == HIGH) { digitalWrite(a, LOW); } else { digitalWrite(a, HIGH); } 
}

void loop(){
    Z(1);
    Z(3);
    delay(100);
    Z(1);
    }

tja, dat is dus precies wat ik met 'het lijkt op c++' bedoelde.
dat zijn specifieke arduino eigenschappen en als ik daar diep in ga duiken kom ik niet meer aan c++ toe.
Dat met die timer maakt geen verschil.
Of ik nu timer(100) tik
Of delay(100)
heb nergens timer zien staan maar neem het maar van mij aan, jij hebt iets van wel 50x delay(x of y of z) in je code staan waarvan 30x (x = 200) en 12x (y =10) en 8x(z=500).
Op mijn beschreven manier van
int t200 = 200;
en delay(t200);
kan je in één keer alle 200 timers veranderen maar dat niet alleen, je kan dan ook nog eens in je eigen code teruglezen waar die specifieke dealy oorspronkelijk op stond. Maar ja, ik zei al , dat is een handigheidje maar jij doet liever moeilijk. ;)

kitao wijzigde deze reactie 22-03-2019 15:23 (10%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op vrijdag 22 maart 2019 @ 14:46:
[...]


Dat had je al gedaan in je code3 ...

code:
1
2
3
4
5
6
void setup(){
// Anodes van links naar rechts en voor naar achter//
    pinMode(2,OUTPUT);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);


... maar dat kan dus (volgens een onduidelijke internet discussie) ook met A0-A5 wat een alias zou zijn voor de nummers 14-19.
Het zijn trouwens niet de echte pin-nummers zag ik

[Afbeelding]


maar het pakte wel, zover ik kon zien.


[...]


Welke programmeertaal Arduino is heb ik ook al minstens 1x gevraagd, het lijkt erop zeggen ze.

Z(1,5,9);

Nee, gaat niet, er is maar argument tegelijk wat je naar een functie
void Z(int z) {
kunt sturen omdat er maar één int z is.
Maar dat ga ik verder uitzoeken of het korter kan.
En dan bedoel ik niet achter elkaar schrijven zoals

int ledPin1 = 2; int ledPin2 = 3; int ledPin3 = 4;
int ledPin4 = 5; int ledPin5 = 6; int ledPin6 = 7;

omdat dit wel lappen scroll codes scheelt maar structureel voor het programma zelf geen klappernoot uitmaakt.
Ja klopt maar ik bedoel had eerst in de setup Z1 tot en met Z9.
Dat is er nu maar 1

Dat bedoelde ik met timer die t200.
Maar begreep niet dat ik ze zo makkelijk allemaal kon veranderen in 1 keer.
Nu wel haha.
Tnx

jeroen vrij wijzigde deze reactie 22-03-2019 15:27 (4%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 15:23:
[...]

Ja klopt maar ik bedoel had eerst in de setup Z1 tot en met Z9.
Dat is er nu maar 1

Dat bedoelde ik met timer die t200.
Maar begreep niet dat ik ze zo makkelijk allemaal kon veranderen in 1 keer.
Nu wel haha.
Tnx
yep, 8x Z's in de kliko en 2x L's op de schroot

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Had trouwens een betere schets gemaakt.
Alleen is deze voor een 6x6x6.
Voor een 3x3x3 maak je er gewoon 9 ipv 36
https://drive.google.com/...624hQIs/view?usp=drivesdk

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op vrijdag 22 maart 2019 @ 16:22:
Had trouwens een betere schets gemaakt.
Alleen is deze voor een 6x6x6.
Voor een 3x3x3 maak je er gewoon 9 ipv 36
https://drive.google.com/...624hQIs/view?usp=drivesdk
ziet er idd leesbaarder uit
nou heb ik geen 7-mijls laarzen dus blijf nog even experimenteren met code2
jeroen vrij schreef op vrijdag 22 maart 2019 @ 15:02:

OK maar de int ledstate=LOW,
Die moet er staan anders doet hij het niet.
Betekent dat dat hij bij de start op LOW staat.
Of dat hij bij digitalRead altijd low leest.
Heb alle ledState via ctr+f+ replace door het woord kurk vervangen en de LOW door 0.
dus dit
int ledState = LOW;
is nu dit geworden
int kurk = 0;
en maakt geen enkel verschil

maar ik moet toegeven, sommige verzonnen namen voor variabelen krijg ik ook nog steeds het idee van dat het iets betekent.
maar het is enkel een naam
je kan het ook int Zifgh874PsD noemen.

De int ledState wordt gedeclareerd en meteen geïnitialiseerd op 0 want LOW=0.
Dus je zegt eigenlijk, bij aanvang moet int ledState (naam vh beestje) = 0 zijn.
Omdat bij opstart zitten er altijd bogus getallen in.
Vervolgens kan je verderop in het programma de int ledState verhogen met bijvoorbeeld 1 en dan weet je zeker dat het 0+1 is en geen 8456375+1
.

kitao wijzigde deze reactie 22-03-2019 17:04 (13%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Top tnx

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ik krijg void Z(int z); {
ledState = digitalRead(z); if (ledState == HIGH) { digitalWrite(z, LOW); } else { digitalWrite(z, HIGH); }
}
Niet door de compile

  • sjaakwortel
  • Registratie: april 2009
  • Laatst online: 14-09 22:49
Het lijkt alsof je zowel een read als een write probeert te doen op z, kan dat het probleem zijn ?

nvm, dat kan gewoon op een Arduino, elke error geeft ie precies ?

sjaakwortel wijzigde deze reactie 22-03-2019 21:11 (27%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ja de bedoeling is dat hij kijkt of de pin high is.
En hem dan low zet en andersom.
Maar hij kan dus niet lezen en schrijven op 1 pin

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
En toen zag ik hem al.
De ; na void Z(int r)

Hij zei r is not declared

jeroen vrij wijzigde deze reactie 22-03-2019 21:13 (24%)


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Na wat tips erbij op een ander forum.
En jou hulp word hij steeds kleiner en netter.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
int ledState = LOW;
int t100 = 100;
int t500 = 500;
 
void setup()
{
  for (int i = 2; i <= 10; i++)
  {
    pinMode(i, OUTPUT);
  }
  for (int i = A0; i <= A5; i++)
  {
    pinMode(i, HIGH);
  }
}
 
void R(int r)
{
  ledState = digitalRead(r);
   
  if (ledState == HIGH)
  {
    digitalWrite(r, LOW);
  }
  else
  {
    digitalWrite(r, HIGH);
  }
}
 

void loop()
{
  for (int i=2; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
 
  R(11);
    
  delay(t500);

  R(11);
  R(12);

  delay(t500);
    
  R(12);
  R(13);
    
  delay(t500);
    
///////einde effect////////
  
  for (int i=5; i<=10; i++)
  {
    digitalWrite(i, LOW);
  }
    
  delay(t500);
   
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, LOW);
  }
  
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  } 
    
  delay(t500);
    
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
    
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
    
  delay(t500);
    
  R(13);
  R(12);
    
  delay(t500);
    
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, LOW);
  }
    
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  }
    
  delay(t500);
    
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
    
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, HIGH);
  }
    
  delay(t500);
    
  R(12);
  R(11);
    
  delay(t500);
    
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, LOW);
  }
  
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  } 
    
  delay(t500);
    
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
    
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
    
  delay(t500);
    
  R(11);
///////einde effect////////
}


  • SA007
  • Registratie: oktober 2002
  • Laatst online: 23:27

SA007

Moderator Tweaking
@jeroen vrij Er is op het forum een "Wijzig" knop aanwezig, graag deze gebruiken in plaats van meedere posts achter elkaar plakken.

Ook zijn er voor het plaatsen van grote lappen code ook speciale sites als pastebin, dat houdt het forum wat schoner.

Klok is stuk :(


Acties:
  • +1Henk 'm!

  • RobIII
  • Registratie: december 2001
  • Laatst online: 23:19

RobIII

Moderator Devschuur®

^ Romeinse 3 ja!

SA007 schreef op vrijdag 22 maart 2019 @ 22:06:
Ook zijn er voor het plaatsen van grote lappen code ook speciale sites als pastebin
Alsjeblieft niet zeg :X Straks houdt pastebin er mee op of besluiten ze opruiming te houden en het topic is voor niemand meer bruikbaar.

Having said that; er is een reden waarom functies argumenten ondersteunen en er is een reden voor loops (for, while, ...) en met wat bitwise operaties kun je deze énórme lappen copy/paste code terugbrengen tot wat behapbaars. Een paar beginnerslesjes programmeren kunnen hier zéker geen kwaad.

RobIII wijzigde deze reactie 22-03-2019 22:12 (5%)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • +1Henk 'm!

  • SA007
  • Registratie: oktober 2002
  • Laatst online: 23:27

SA007

Moderator Tweaking
@RobIII Wat zie jij als suggestie om stukken code te plaatsen dan?
Quote blokken klappen tegenwoordig in, code blokken nog steeds niet.

Ben met je eens dat code beter op het forum kan staan voor latere referentie, maar 40 versies in 3 dagen helpt dan ook niet :)

Klok is stuk :(


  • RobIII
  • Registratie: december 2001
  • Laatst online: 23:19

RobIII

Moderator Devschuur®

^ Romeinse 3 ja!

SA007 schreef op vrijdag 22 maart 2019 @ 22:20:
@RobIII Wat zie jij als suggestie om stukken code te plaatsen dan?
In /14 zeggen we altijd het hier te houden (maar het ook te beperken tot relevante code en daar vallen lappen van honderden regels code niet onder). En zoveel updates in zo'n korte tijd, zeker met die hoeveelheid, is natuurlijk ook gekkenwerk.

Als je dan toch extern gaat, post het dan als gist.

RobIII wijzigde deze reactie 22-03-2019 22:24 (11%)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Zal er rekening mee houden.
Mijn excuus
Zal ze in het vervolg via een Google link plaatsen.
En wat betreft beginner lesjes ja dat kan wel kloppen.
Ben sinds 20 dagen bezig dit onder de knie te krijgen.

Acties:
  • +1Henk 'm!

  • RobIII
  • Registratie: december 2001
  • Laatst online: 23:19

RobIII

Moderator Devschuur®

^ Romeinse 3 ja!

jeroen vrij schreef op vrijdag 22 maart 2019 @ 22:33:
Zal ze in het vervolg via een Google link plaatsen.
Voeg a.u.b. niet nog een link-shortener ofzo aan de mix toe. Dat zijn allemaal zaken die over een jaar, of 2 of 5, niet meer werken en dan is er niets over van je topic dan een bult dode links. Probeer gewoon je code hier in dit topic te posten maar beperk 't dan tot een paar updates i.p.v. elke "paar minuten" en probeer je code even terug te brengen naar iets dat < 100 regels ik (moet makkelijk lukken; je moet gewoon even wat basiszaken onder de knie krijgen, maar geen enkele fatsoenlijke tutorial die dat niet in les 2 of 3 behandelt). En anders plaats een gist. Nog altijd vele malen beter dan pastebin.

RobIII wijzigde deze reactie 22-03-2019 22:45 (8%)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • +1Henk 'm!

  • farlane
  • Registratie: maart 2000
  • Laatst online: 14-09 12:59
jeroen vrij schreef op zondag 17 maart 2019 @ 21:19:
Ik gebruik 3.3v leds. Max 20mA
Dan is alles via transistors wel beter ja.

De saturatie voltage ligt tussen de 0.25 en 0.6
Afhankelijk van de Lc en de volgens de datasheet.
Transistoren worden niet met een spanning gestuurd maar met een (basis) stroom Ib.

Om een transistor in saturation (compleet geleidend) te krijgen zou je bijvoorbeeld 1mA basisstroom moeten laten lopen (dat kun je uit de datasheet halen)

De pin van de Arduino is 5V dus in open toestand zou er 5V - 0,7V = 4,3V over de basisweerstand komen.
Rb = U/I = 4,3/1e-3 = 4.3 kOhm zijn

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Hey bedankt voor je uitleg.
Naar van andere ook tips te hebben gehad heb ik mosfets gebruikt ook vanwege de hoeveelheid stroom ik wil trekken.
540mA dat is bijna de limiet van de transistors die ik had. 600mA
Was wel even zoeken omdat de meeste mosfets bij 10v geheel open gaan.
Maar heb de irl540 gevonden die bij 5v 48A doorlaten.
Dus zit daarmee ruim in het groen.
Mijn 3x3x3 cube is inmiddels af en ben bezig deze te coderen.
Ben nu met een 6x6x6 bezig die ik daarna ook in rgb wil gaan maken.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
Ik heb bij het verkorten van code2 een andere benadering genomen als bitwise operaties en heb de tips gelezen, zal eens kijken op het gists hoe dat in elkaar steekt.

Een fragmentje van de tussenstand.
Code2 begon met 738 regels, dat werden er 681 en zijn er nu 588.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//
      class Functie {   // ***************  nieuw bijgekomen    ********************************
    
    public:

  Functie Z(int z) {  
    kurk = digitalRead(z);  
    if (kurk == HIGH) { digitalWrite(z, 0);  } 
    else { digitalWrite(z, HIGH); 
     } 
   return *this;
  } 
  
  };
// *******************   einde nieuw bijgekomen class Functie   ******************

void loop(){       // Begin void loop

    Functie call;

for (int i = 0; i < 16; i++) {  
    L(14);
    call.Z(2).Z(4).Z(8).Z(10);
    delay(t200);
    call.Z(2).    Z(4).    Z(8).    Z(10).    Z(3).    Z(5).    Z(7).    Z(9);
    delay(t200);
    call.Z(3).Z(5).    Z(7).    Z(9);
    L(14);
   }
}


Gebruikt zoekwoord was C++ cascading functions om dit te vinden en valt best tegen hoeveel artikelen daar over zijn, maar kan me daarin vergissen. Ik kwam hier uit voor meer toelichting :

https://www.includehelp.c...scaded-function-call.aspx

Code is getest op de Arduino.

GitHub toegevoegd, kwam er al paar maanden vanwege TPayne's video-serie maar had daar zelf nog niks geplaatst. Lijkt wel redelijk gelukt te zijn, bedankt voor de tip. Revisie2 code2 en bijbehorend schema :

https://github.com/Alectus/3D-Led-Cube
.

kitao wijzigde deze reactie 23-03-2019 08:16 (7%)
Reden: toegevoegd


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Is zoiets ook mogelijk.

void R(int i,int s){
digitalWrite(i, s);
}

Ziet er strak uit zeg.
Ik zal er zo ook wel even mee bezig gaan.
Om hem wat in te korten met arrays.

jeroen vrij wijzigde deze reactie 23-03-2019 09:50 (41%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op zaterdag 23 maart 2019 @ 09:43:
Is zoiets ook mogelijk.

void R(int i,int s){
digitalWrite(i, s);
}

Ziet er strak uit zeg.
Ik zal er zo ook wel even mee bezig gaan.
Om hem wat in te korten met arrays.
Je kan twee of meer parameters tegelijk in een functie opnemen.
Of dat gaat werken met digitalWrite is weer zo'n specifiek arduino dingetje.

En zo strak is het niet.
Want wat is het verschil met deze

code:
1
call.Z(2).    Z(4).    Z(8).    Z(10).    Z(3).    Z(5).    Z(7).    Z(9);


of

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < 16; i++){
    L1();
    Z1();
    Z3();
    Z7();
    Z9();
    delay(500);
    Z1();
    Z3();
    Z7();
    Z9();
    Z2();
    Z4();
    Z6();
    Z8();


Dit is namelijk data begin ik te beseffen.
Een programma kan een telefoonboek doorzoeken en ordenen op naam en nummer etc. maar die nummers en namen moeten wel ingevoerd worden.
Dat doet nog geen ene computer zelf.
.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Dat call. Z(2). Staat heel netjes.
Begrijp me goed.
Maar net als met mij schets.
Vind ik het lastig om te achterhalen is ie nu 0 of 1.
Als ik nu de tel kwijt raak moet ik helemaal terug naar het begin om te checken en ze te tellen.

Wat makkelijker zou zijn voor mij is bijvoorbeeld.
Call. Z(1On). Call Z(1off)

Of ik zou hem dubbel kunnen aan maken.
Call H(1). Is pin 1 High
Call L(1). Is pin 1 Low

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op zaterdag 23 maart 2019 @ 10:10:
Dat call. Z(2). Staat heel netjes.
Begrijp me goed.
Maar net als met mij schets.
Vind ik het lastig om te achterhalen is ie nu 0 of 1.
Als ik nu de tel kwijt raak moet ik helemaal terug naar het begin om te checken en ze te tellen.

Wat makkelijker zou zijn voor mij is bijvoorbeeld.
Call. Z(1On). Call Z(1off)

Of ik zou hem dubbel kunnen aan maken.
Call H(1). Is pin 1 High
Call L(1). Is pin 1 Low
call. betekent gewoon dat je naar die functie springt.
net als bij kurk kan je call iedere andere naam geven.
in die functie staat wat er moet gebeuren, in dit geval

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//
      class Functie {   // ***************  nieuw bijgekomen    ********************************
    
    public:

  Functie Z(int z) {  
    kurk = digitalRead(z);  
    if (kurk == HIGH) { digitalWrite(z, 0);  } 
    else { digitalWrite(z, HIGH); 
     } 
   return *this;
  } 
  
  };


die functie heb jij zelf geschreven, daar is niks aan veranderd
dus dan zou je moeten weten wat er dan gaat gebeuren, daar hoef je niet het hele programma voor te doorzoeken. En of een pin hoog of laag is dat zie je aan je led die eraan vast zit.

dit gaat trouwens niet werken
digitalWrite(i, s);
digitalWrite stuurt een pin aan en je kan geen twee pinnen tegelijk sturen, gaat per pin.

en wat ik al eerder zei

for (int i = 0; i < 16; i++){
call.Z(2). Z(4). Z(9) . Z(10). Z(3). Z(5). Z(7). Z(9);

kan je ook hier doen

for (int i = 0; i < 16; i++){
L1(); Z1(); Z3(); Z7(); Z9();


levert geen winst op
.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ja maar tijdens het schrijven branden de leds niet.

Ik heb geprobeerd met jou code te werken maar als ik in de void loop wat aan breng krijg ik alleen maar errors.

  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op zaterdag 23 maart 2019 @ 10:44:
Ja maar tijdens het schrijven branden de leds niet.

Ik heb geprobeerd met jou code te werken maar als ik in de void loop wat aan breng krijg ik alleen maar errors.
de code die ik op github heb gezet , de door jou geplaatste code2 die het toch al prima deed, maar die ik enkel wat probeer te verkorten, vandaar wat aanpassingen, doet het hier prima.
ik weet niet precies wat je bedoelt met 'aanbrengen' maar ik neem aan dat je nu probeert om met die code ook zelf wat te wijzigen. Misschien heb je na een vorige reactie het idee dat je binnen drie lesjes programmeren onder de knie kunt krijgen maar dat is dus niet zo.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Ik probeer in de loop
Wat meer effecten op de cube aan te brengen.
Maar dat gaat niet.
3 effecten op de cube is ook maar sneu.

Ik houd het gewoon bij het oude.
Dat werkt voor mij de boel functioneert
En daar gaat het om.
Bedankt in ieder geval

jeroen vrij wijzigde deze reactie 23-03-2019 11:33 (26%)


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op zaterdag 23 maart 2019 @ 11:09:
Ik probeer in de loop
Wat meer effecten op de cube aan te brengen.
Maar dat gaat niet.
3 effecten op de cube is ook maar sneu.

Ik houd het gewoon bij het oude.
Dat werkt voor mij de boel functioneert
En daar gaat het om.
Bedankt in ieder geval
Daarom baalde ik er ook van om de delays te hebben gladgestreken. Je had net een hele serie effecten erin gestopt en is nu allemaal op ene korte snelheid.
Heb wel weer 10 regeltjes kunnen verwijderen, echte regeltjes, door toevoeging 'roep' onder aan de class als object name. Hierdoor krijgt die volle scope.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
     class Functie {   // nieuw bijgekomen ********************************
    
    public:

  Functie Z(int z) {  
    kurk = digitalRead(z);  
    if (kurk == HIGH) { digitalWrite(z, 0);  } 
    else { digitalWrite(z, HIGH); 
     } 
   return *this;
  } 
  
  }roep;        // ***** roep toegevoegd

// *******************   einde nieuw bijgekomen class Functie   ******************

void loop(){   // Begin void loop

for (int i = 0; i < 16; i++){  
    L(14);
    roep.Z(2).Z(4).Z(8).Z(10);
    delay(t200);
    roep.Z(2).    Z(4).    Z(8).    Z(10).    Z(3).    Z(5).    Z(7).    Z(9);
    delay(t200);
    roep.Z(3).Z(5).    Z(7).    Z(9);
    L(14);
}



staat nog niet op github, zijn peanuts op het geheel

deze is ook best handig

klik file-preferences



en een notepad++ erbij kan geen kwaad.
.

kitao wijzigde deze reactie 23-03-2019 17:25 (4%)
Reden: afb. verkleind


  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Zit er aan te denken een laptop te halen.
Heb het eigenlijk niet echt nodig gehad tot nu.
Ik heb ondertussen ook github account.

https://github.com/JeroenVrij/3x3x3-cube-under-const

Staat mij code op

Misschien nog iemand een tip om iets als dit te realiseren.

code:
1
2
3
4
5
 if digitalWrite(11,HIGH)
  {
    digitalWrite(12, LOW); & & 
    digitalWrite(13,LOW);
  }



Dit wil ik eigenlijk tijdens de gehele loop.
Als layer 1 aan gaat moeten de andere layers uit.
Etc Etc.

jeroen vrij wijzigde deze reactie 23-03-2019 14:04 (39%)


  • farlane
  • Registratie: maart 2000
  • Laatst online: 14-09 12:59
kitao schreef op zaterdag 23 maart 2019 @ 04:42:
Gebruikt zoekwoord was C++ cascading functions om dit te vinden en valt best tegen hoeveel artikelen daar over zijn, maar kan me daarin vergissen. Ik kwam hier uit voor meer toelichting :
In principe zijn dat alle functies die *this returnen en dat zijn er best veel, met name bij operator overloading. De iostreams doet het ook bijvoorbeeld bij het overloaden van operator<<() om die te kunnen chainen.

Dat gezegd hebbende, het doel is niet perse om het korter op te schrijven maar wel om het gestructureerd en onderhoudbaar te houden. Method chaining was niet het eerste waar ik aan dacht toen ik deze code zag.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • kitao
  • Registratie: juli 2012
  • Laatst online: 22-05 16:27
jeroen vrij schreef op zaterdag 23 maart 2019 @ 13:11:
Zit er aan te denken een laptop te halen.
Heb het eigenlijk niet echt nodig gehad tot nu.
Ik heb ondertussen ook github account.

https://github.com/JeroenVrij/3x3x3-cube-under-const

Staat mij code op

Misschien nog iemand een tip om iets als dit te realiseren.

code:
1
2
3
4
5
 if digitalWrite(11,HIGH)
  {
    digitalWrite(12, LOW); & & 
    digitalWrite(13,LOW);
  }



Dit wil ik eigenlijk tijdens de gehele loop.
Als layer 1 aan gaat moeten de andere layers uit.
Etc Etc.
https://www.arduino.cc/re...ure/control-structure/if/

wordt dan uit de losse pols

code:
1
2
3
4
if (pin11==1){
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}


Tussen die twee instructies voor pin 12 en 13 hoef je geen && te zetten, alles binnen de if lussen wordt uitgevoerd zolang if waar is.
Mooi dat je ook github hebt, zal later die code eens proberen.
farlane schreef op zaterdag 23 maart 2019 @ 14:07:
In principe zijn dat alle functies die *this returnen en dat zijn er best veel, met name bij operator overloading. De iostreams doet het ook bijvoorbeeld bij het overloaden van operator<<() om die te kunnen chainen.
Dat gezegd hebbende, het doel is niet perse om het korter op te schrijven maar wel om het gestructureerd en onderhoudbaar te houden. Method chaining was niet het eerste waar ik aan dacht toen ik deze code zag.
Klopt met dat doel, ik zei zelf al dat bijvoorbeeld naast elkaar schrijven niets uitmaakt. Eerder vroeg ik nog aan je waar te beginnen toen je opmerkte dat het beter kon en zonder clue ben ik zelf wat gaan verzinnen. Overloading ben ik eergister pas tegengekomen, dat was les 25
https://www.tutorialspoint.com/cplusplus/index.htm

Maar om eerlijk te zijn, ik kan het amper lezen dus ik verwacht niet dit binnen afzienbare tijd zelf te fabriceren.
Maar het kunnen lezen zou al fijn zijn.

  • jeroen vrij
  • Registratie: februari 2016
  • Laatst online: 14-09 18:52

jeroen vrij

Just a arduino noob

Topicstarter
Heb hem net op gelost.
Heb in setup weer een L1 tot 3 aangemaakt.
Waar ik bij alle de 3 digitalWrite heb aangegeven.

code:
1
2
3
4
5
6
void L1()
 {
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);
  digitalWrite(11, HIGH);
 }



Als je die code gebruikt.
Moet je even de pins 11 12 13 op LOW zetten bij de start van de loop.
Heb deze code met de mosfets op de layers gemaakt.

jeroen vrij wijzigde deze reactie 23-03-2019 18:16 (17%)

Pagina: 1 2 3 4 Laatste


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Games

'14 '15 '16 '17 2018

Tweakers vormt samen met Tweakers Elect, Hardware Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True