Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
6D kubus met 595

https://www.instructables.com/id/6x6x6-Arduino-LED-Cube/

De tekening in die pagina is pet, heb een betere gevonden

Afbeeldingslocatie: https://cdn.instructables.com/FSW/GXQT/J1QP7LJB/FSWGXQTJ1QP7LJB.LARGE.jpg

Probleem was om te vinden welke pennen vd 595 worden gebruikt voor de kolommen (rows).
Dat blijkt pen Q2 t/m Q7 te zijn, zoals hier in beeld

Afbeeldingslocatie: https://i.imgur.com/Immfce1.jpg?1
https://i.imgur.com/Immfce1.jpg

Getest en doet het goed, nu hoeven enkel de andere 5 IC's er nog aan en een potmetertje.
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
@kitao hoe krijg jij een code in de arduino mijn simulide accepteer alleen hex bestanden

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 13 april 2019 @ 17:59:
@kitao hoe krijg jij een code in de arduino mijn simulide accepteer alleen hex bestanden
Schakeling is af, doet het goed, duurde even want kwam niet uit met draden en moest vrijwel opnieuw beginnen, heb nu de IC's verticaal staan. Op jouw vraag :

In Arduino IDE >>> Sketch >>> Export compiled Binary

Dat komt dan op dezelfde plaats als waar de .ino sketch staat.

In Simu rechtsklik op de Uno, klik load firmware, navigeer naar de .ino file en als het goed is staan daar twee hex-files onder, eentje met bootloader en eentje zonder.
Zonder bootloader moet je hebben, de bovenste.

Afbeeldingslocatie: https://i.imgur.com/pqemKLY.jpg?1
https://i.imgur.com/pqemKLY.jpg

Je kan waarschijnlijk ook dit programma inladen, staat op de git met titel 74HC595 - 6D.simu
https://github.com/Alectus/3D-Led-Cube

Dit is de afgeronde schakeling

Afbeeldingslocatie: https://i.imgur.com/97ivpds.jpg?1
https://i.imgur.com/97ivpds.jpg

Dat heb ik niet op Github gezet want dat is niet van mij, dit is de eigenaar , daarin staat ook de code om te downloaden.

https://www.instructables.com/id/6x6x6-Arduino-LED-Cube/

Met hier het schema
https://cdn.instructables...FSWGXQTJ1QP7LJB.LARGE.jpg

En voor de rows zijn Q2 t/m Q7 gebruikt.
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
@kitao jij krijgt de vcc en gnd ook niet aangesloten van de ic zie ik

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 13 april 2019 @ 19:43:
@kitao jij krijgt de vcc en gnd ook niet aangesloten van de ic zie ik
Dat zei ik al, die zijn blauw, is juist fijn dat die niet aangesloten hoeven te worden, dat was in 2.9 wel zo.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ok ook jammer dat ik geen libary kan doen i de simulide

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 13 april 2019 @ 20:09:
Ok ook jammer dat ik geen libary kan doen in de simulide
Programmeren doe je niet in simulide maar in de arduino-ide.
Heb al diverse codes van arduino als hex-file in simu gezet en de arduino-codes werken net zo goed met als zonder library. Indien ik mij niet vergis althans, toevallig was deze zonder libs en heb nu even geen zin een andere met wel libs te proberen.

Wacht, het staat in een vorige post
kitao in "3x3x3 led cube"

In de daarbij gebruikte code staat deze lib

#include "LedControl.h"

Dat ging goed.
.

[ Voor 52% gewijzigd door kitao op 14-04-2019 08:47 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ok bij mij pakt hij ze niet met libary

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 13 april 2019 @ 22:31:
Ok bij mij pakt hij ze niet met libary
blijf proberen, als het hier wel lukt zal het daar ook in theorie ook moeten kunnen lukken.
zou ook niet teveel kijken naar deze rubberen artificial rhonda, ik ben gewoon te lui en te krap bij kas om echte elektronica te beoefenen. Aan de andere kant, zelfs piloten krijgen hun opleiding in een simulator.
toch is en blijft dat slechts een surrogaat voor het echte ding.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ik ben ook niet een rijk man.
Maar bij Ali kost het geen drol de 3x3x3 ledcube heeft mij nog geen 5 euro gekost.
Ik bestel elke week voor 2 a 3 euro.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Maakt niet uit, ik zei al , ik ben te lui om in het echt alles aan mekaar te gaan knopen. Heb hier al 5 jaar een hele doos vol liggen met ongebruikt spul dus zou dat eruit kunnen vissen en opnieuw gaan gebruiken. Maar ja, heb er geen zin meer in en het spul wat er ligt heb ik al getest. Wat ik wil zeggen is dat ik het jammer zou vinden als jij, of anderen, zich naar mijn voorbeeld gaan storten op simulaties en denken of verwachten hiermee ervaring in electroncica te krijgen. Een simulatie is en blijft een hulpmiddel en niet meer dan dat. Bovendien zijn er veel dingen niet te simuleren, zag het bij sensoren, maar zal ook zo zijn bij infrarood afstandsbedieningen, wifi en talloze andere dingen die met een echte micro wel te doen zijn.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Er komt nog een leuk projectje aan.
Wil nog een analoge klok gaan maken met weerstation en kalender erin.
En heb nog een oude pc voeding liggen die ga ik ombouwen tot labvoeding.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 13 april 2019 @ 23:38:
Er komt nog een leuk projectje aan.
Wil nog een analoge klok gaan maken met weerstation en kalender erin.
En heb nog een oude pc voeding liggen die ga ik ombouwen tot labvoeding.
Is jouw lopende kubus project met de 74HC595 inmiddels al afgerond dan ?

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Nee die gaat eerst af

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Dit is de void loop van de code ervan
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void loop() {
  potdelay = analogRead(A5); // this will read the potentiometer's state

  three();
  two();
  one();
  delay(1500);
  full();
  delay(2000);
  frame6x6();
  GrowingCube();
  frame4x4();
  frame6x6();
  randomLED();
  FrameInFrame();
  frame4x4();
  centerCube();
  randomCUBE();
  custom();

}

Omdat ik niet wist welke 6 van de 8 pinnen er gebruikt werden heb ik bij de eerste alle functies gecomment op full() na (regel8) en toen pas bleek de gebruikte pin volgorde van Q2 -Q7. Pas daarna de rest eromheen opgebouwd. Wat ik wil zeggen is dat hiermee mooi geoefend kan worden om zulk soort programma's te schrijven aangezien ook het resultaat van wijzigingen dan goed zichtbaar is. De pinvolgorde zal waarschijnlijk ook direkt in de code af te lezen zijn maar kon dat zo snel niet vinden en heb het op deze manier gedaan.
.

[ Voor 13% gewijzigd door kitao op 14-04-2019 09:03 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Afbeeldingslocatie: https://tweakers.net/ext/f/XGhR9LJ7i5NqUQZFRAqx6chZ/thumb.jpg

De print vordert ook al.
Moet alleen bovenkant van de print nog even uitzoeken.
Daar loopt een gnd naar de caps.
Maar ook de gnd naar de ic's
Heb de gnd en de oe letterlijk met elkaar verbonden maar weet niet of dat perse zo moet.
Of dat de oe ook allee de op de algemene gnd kan zonder direct naar de gnd van ic te gaan

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 14 april 2019 @ 11:28:
[Afbeelding]

De print vordert ook al.
Moet alleen bovenkant van de print nog even uitzoeken.
Daar loopt een gnd naar de caps.
Maar ook de gnd naar de ic's
Heb de gnd en de oe letterlijk met elkaar verbonden maar weet niet of dat perse zo moet.
Of dat de oe ook alleen op de algemene gnd kan zonder direct naar de gnd van ic te gaan
|OE| is de output enable, die moet logisch 0 blijven anders geven Q0-Q7 geen signaal af. Logisch 0 betekent m.i. in dit geval <1.35V , zie datasheet 7.3 Vil.
Maakt daarom wrs niet uit welke gnd je neemt, als het maar onder de 1.35V blijft.

http://www.ti.com/lit/ds/symlink/sn74hc595.pdf

Zelf dacht ik altijd dat het 0.8 V was, maar ja, dat staat er niet. MR moet trouwens hoog blijven, er is nog een heel topic over die pennen.
[74HC595] Schuifregister pennen MR en OE

Wat de print betreft, kan je die draden geen kleur geven ? Is wel goed te zien hoor maar als die optie er is blijft het toch weer iets overzichtelijker. Wat ik niet goed begrijp, als je bezig bent met 6D, waarom je 40 uitgangen hebt voor de rijen ? De transistors zijn voor de 6 lagen neem ik aan ?

Je hebt het daarnaast over een print, dus deze is al getest op breadboard ?
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ja er staan iets te veel weerstanden op. Moet er nog 4 afhalen voor de kolommen.
Kan op de pcb geen lijn kleur kiezen de lijn is soldeer op de pcb.
De 6 transistors zijn voor de layers.
Totaal 42 aansluitingen.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 14 april 2019 @ 12:49:
Ja er staan iets te veel weerstanden op. Moet er nog 4 afhalen voor de kolommen.
Kan op de pcb geen lijn kleur kiezen de lijn is soldeer op de pcb.
De 6 transistors zijn voor de layers.
Totaal 42 aansluitingen.
Klopt, 36 rijen en 6 lagen = 42.
Je bent dus een pcb aan het maken die je elders laat fabriceren met deze tekening als ik het goed begrijp ?
Wat ik me verder afvraag, maar kan doemdenken zijn, wordt het niet lastig in de vorm van asymmetrisch zijn, als je van de 5 kolom-ic's slechts van 4 kolom-ic's een bit in de bit-bucket laat vallen (= laten verdwijnen) ?
Dat wordt toch heel lastig programmeren dan ?

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Nee ik bouw hem zelf maar gebruik het om te lay-out te bepalen.
Als ik op de print een fout maak dan is het een probleem.
Ga waarschijnlijk alle Q7 laten vervallen en dan de eerste 7 pins aan 1 kant gebruiken.
Programmeren dat maakt niet uit.
Want doe in de setup de pins wijzigen naar kolommen met de nieuwe nummers.
Dus krijg je gewoon kolom 1 t/m 36
En Layer 1 t/m 6.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Het programmeren van een kubus heb je veel vaker gedaan als mij dus ik twijfel niet aan jouw stelling.
Zit nu zelf de 6D-code te bekijken van instructables en ben pas bij het begin maar wat opvalt is dat het allemaal netjes doorschuift.
Zo heb je dit stukje bovenaan
code:
1
2
3
int LEVEL[6] = {0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB}; // this is an array for each levels, 0x7F means only the first row will get GND and so on
int LEVEL2[5] = {0x3F, 0x9F, 0xCF, 0xE7, 0xF3}; // this is an array for the neighbour levels
int ROW2[5] = {0xC0, 0x60, 0x30, 0x18, 0x0C}; // for every neighbour rows

Als je nu de hex getallen onder elkaar op papier vertaalt naar binair dan zie je wat ik bedoel, is net klokwerk.
Waarschijnlijk ook daarom heeft hij één IC meer als jou maar ik kan begrijpen dat je liever je eigen ontwerp maakt en dat valt te waarderen.

************************
@jeroen vrij

Heb inmiddels de code ontleed en heb het idee die nu wel redelijk door te hebben.
Nogmaals de simu met toevoeging van SR nummers

Afbeeldingslocatie: https://i.imgur.com/1ArcGM5.jpg?1
https://i.imgur.com/1ArcGM5.jpg

Bovenstaand plaatje verschijnt bij uitvoering van dit programma dat, op toegevoegde tekstregels na, een verder ongewijzigd knipsel is van het origineel :
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
// INSTRUC 6D KUBUS
// https://www.instructables.com/id/6x6x6-Arduino-LED-Cube/
// https://cdn.instructables.com/FSW/GXQT/J1QP7LJB/FSWGXQTJ1QP7LJB.LARGE.jpg

int dataPin = 4;
int latchPin = 5;
int clockPin = 6;

byte SR[7]; // an array for the shift registers, SR[0-5] control the rows and the SR[6] control the levels
// LAATSTE TWEE BITS VALLEN OVERAL WEG.
int LEVEL[6] = {0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB}; // this is an array for each levels, 0x7F means only the first row will get GND and so on
// 7F = 0111 11 11 , BF = 1011 11 11 , DF = 1101 11 11 , EF = 110 11 11 , F7 = 1111 01 11 , FB = 1111 10 11
int LEVEL2[5] = {0x3F, 0x9F, 0xCF, 0xE7, 0xF3}; // this is an array for the neighbour levels
// 3F = 0011 11 11 , 9F = 1001 11 11 , CF = 1100 11 11 , E7 = 1110 01 11 , F3 = 1111 00 11
int ROW2[5] = {0xC0, 0x60, 0x30, 0x18, 0x0C}; // for every neighbour rows
// C0 = 1100 00 00 , 60 = 0110 00 00 , 30 = 0011 00 00 , 18 = 0001 10 00 , 0C = 0000 11 00

int potdelay; // this delay is adjustable by the potentiometer

void setup() {
  pinMode(dataPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
}

void loop() {
  potdelay = analogRead(A5); // this will read the potentiometer's state

  three();
}

void three() {
  for (int k = 0; k < 150; k ++) {  // with this loop you can setup a 'delay'
// STAP 0    
//    SR[6] = 0x7F;                 // = 0111 11  11  LAATSTE TWEE BITS VALLEN WEG
//    SR[0] = SR[1] = 0x30;         // = 0011 00  00
//    shift_out();
//    delayMicroseconds(1);
//    clear_out();
// STAP 1
//    SR[6] = 0xBF;                 // = 1011 11  11
//    SR[0] = SR[1] = 0x48;         // = 0100 10  00
//    shift_out();
//    delayMicroseconds(1);
//    clear_out();
// STAP 2
//    SR[6] = 0xDF;                 // = 1101 11  11
//    SR[0] = SR[1] = 0x08;         // = 0000 10  00
//    shift_out();
//    delayMicroseconds(1);
//    clear_out();
// STAP 3
//    SR[6] = 0xEF;                 // = 1110 11  11
//    SR[0] = SR[1] = 0x10;         // = 0001 00  00
//    shift_out();
//    delayMicroseconds(1);
//    clear_out();
// STAP 4
//    SR[6] = 0xF7;                 // = 1111 0111
//    SR[0] = SR[1] = 0x08;         // = 0000 1000
//    shift_out();
//    delayMicroseconds(1);
//    clear_out();
// STAP 5
    SR[6] = 0xF8;                 // = 1111 10000
    SR[0] = SR[1] = 0x78;         // = 0111 10000
    shift_out();
    delayMicroseconds(1);
    clear_out();
  }
}

void clear_out() {                //this will clear_out all the leds
  for (int i = 0; i < 6; i++) {
    SR[i] = 0x00;              // i use hexadecimal codes instead of binary because i think it is more shorter

  }
  SR[6] = 0xFF;
  shift_out();                  //this will shift_out the 'clear_out' command.

}

void shift_out() {                 // this will update the hexadecimal code to the shift registers
  digitalWrite(latchPin, 0);
  for (int i = 0; i < 7; i++) {
    shiftOut(dataPin, clockPin, MSBFIRST, SR[i]);
  }
  digitalWrite(latchPin, 1);
}

Kladje erbij voor stap 0 t/m 5

Afbeeldingslocatie: https://i.imgur.com/StQX7Lr.jpg?1
https://i.imgur.com/StQX7Lr.jpg

En dat is wel een voordeel van Simulide, je kan heel goed zien wat de effecten zijn van bijvoorbeeld Arduino programma's dus het is ook meteen een handig stukje gereedschap bij het leren lezen van codes.
Is het nog gelukt het schema in simu te openen dat op de git staat ?
Je kan waarschijnlijk ook dit programma inladen, staat op Github met titel 74HC595 - 6D.simu
https://github.com/Alectus/3D-Led-Cube
Nog iets over download firmware na export compiled.
Meestal is het niet nodig en gaat dat meteen goed maar had laatst toch iets wat verschil maakte, namelijk om eerst te saven en dan pas te exporten in arduino.ide. Probeer ook eens reload firmware in simu uit, dat scheelt weer een paar klikken.

Mijn tekst van 'laatste twee bits vallen weg' is niet helemaal juist, die zijn er nog maar ieder IC heeft maar 6 draden op de kubus aangesloten zitten.
.

[ Voor 72% gewijzigd door kitao op 14-04-2019 17:31 . Reden: ********** ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op woensdag 3 april 2019 @ 18:39:
Kwam net deze tegen, totaal geen extra componenten nodig, enkel leds , een uno of nano en bedrading en code staat erbij met alleen maar for lussen en pin-nummers.

[Afbeelding]

https://www.hackster.io/MakerRobotics/led-cube-4x4x4-8242dd

@jeroen vrij

[Afbeelding]
https://imgur.com/a/O4k6IQZ

Getest en doet het goed, hele leuke effecten zitten erin.

Blauwe draad betekent 0 , rode draad = 1.
.
Die 4x4x4 kan net met een uno maar dan moet de tx en rx pin ook gebruiken.
En heb begrepen dat je die er beter niet voor kan gebruiken.
Waarom weet ik niet

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 14 april 2019 @ 18:30:
[...]

Die 4x4x4 kan net met een uno maar dan moet de tx en rx pin ook gebruiken.
En heb begrepen dat je die er beter niet voor kan gebruiken.
Waarom weet ik niet
Dat heeft te maken met bitshift las ik laatst.
Als je direkt op de poorten programmeert en je geeft pin 0 en 1 per ongeluk een verkeerde waarde mee dan zijn die poorten, die als hoofdfunctie hebben om te communiceren, totaal van slag af.
Zal de link opzoeken, moment.
Maar is volgens mij wel zo dat als je niet direkt op die rij poorten programmeert, dan kan het geen kwaad en kun je die als gewone pinnen gebruiken.
Met rij poorten bedoel ik B C D, zo heten die dacht ik. Zal die er ook bijzetten.

Afbeeldingslocatie: https://i.imgur.com/wVA8gem.png?1
https://i.imgur.com/wVA8gem.png

Van links naar rechts zie je PC 0-5 , PD 0-7 , PB 0-5, en zie links boven, bij de atmega chip staan ze ook.

Zie verder
https://www.arduino.cc/en/Reference/PortManipulation

You should note, however, that pins 0 & 1 are used for serial communications for programming and debugging the Arduino, so changing these pins should usually be avoided unless needed for serial input or output functions. Be aware that this can interfere with program download or debugging.

Pin 0 en 1 worden overigens niet gebruikt in het Poolse schema maar vreemd genoeg wel als output gezet ..

void setup(){
for(int i=0;i<16;i++)pinMode(niz[i],OUTPUT);
}

.. wat nogmaals , zover ik weet geen kwaad kan aangezien in die code geen gebruik wordt gemaakt van poort manipulatie.
.
Heb me waarschijnlijk vergist wat betreft de output

int niz[]={2,3,4,5,6,7,8,9,10,11,12,13,A0,A1,A2,A3};
void setup(){
for(int i=0;i<16;i++)pinMode(niz[i],OUTPUT);
}

Wordt tijd voor pauze want zie het niet zo helder meer
Int i verwijst volgens mij naar de array.
.

[ Voor 42% gewijzigd door kitao op 14-04-2019 19:40 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ik gebruik voor de 6x6x6 shifty die werkt heel makkelijk net als digitalWrite
En heb een hele korte setup nodig.
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
#include <Shifty.h>

// Declare the shift register
Shifty shift; 


void setup() {
  
  shift.setBitCount(48);

 ///////////////3///6//5/////////
  shift.setPins(11, 8, 12); 
}
void Col(int pin, int range, int Number)
{
   switch (range) {
    case 0:    
       shift.writeBit(pin +6, LOW);
       delay(Number);
      break;
    case 1:
       shift.writeBit(pin +6, HIGH);
       delay(Number);
      break;
  }
}
void Lay(int pin, int range)
{
  
  switch (range) {
    case 0:    
       shift.writeBit(pin + 42, LOW);
       
      break;
    case 1:
    for (int i = 42; i <= 48; i++)
{
    shift.writeBit(pin, HIGH);
    if(i == pin +42) {
      continue;
    }
    shift.writeBit(i, LOW);
}
      break;
  }
 
}

void loop() {}

Ik gebruik wel alle op 1 volgende pins
In dit geval pin 7 t/m 38 voor col.
En 43 t/m 48 voor layer

[ Voor 6% gewijzigd door jeroen vrij op 14-04-2019 19:54 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 14 april 2019 @ 19:43:
Ik gebruik voor de 6x6x6 shifty die werkt heel makkelijk net als digitalWrite
En heb een hele korte setup nodig.
**code**
Ik gebruik wel alle op 1 volgende pins
In dit geval pin 7 t/m 38 voor col.
En 43 t/m 48 voor layer
Ah, ok, bedankt voor de tip.
Vond ergens wel een voordeel dat de instruct. code geen library bevat want dan kon ik beter zien wat er gebeurt. Dit is trouwens niet helemaal waar want deze ..
shiftOut(dataPin, clockPin, MSBFIRST, SR[i]);
.. blijf ik magisch vinden, weet zomaar ineens dat er 7 IC's zijn.

edit, hij schrijft 7x data naar dezelfde chip geloof ik, dat schuift dan door over de hele reeks.
maar shiftout maakt eigenlijk ook gebruik van een library meen ik.

Ik vermoed trouwens dat jij 7 t/m 42 bedoelt ipv 38 ?
Zo ja, ik zag ook een foutje in mijn klad papier wat ik postte, stap 5 is 78h = 0111 10 00
Op dat papiertje staat 011100.

Heb de shiftout gevonden
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
/*
  wiring_shift.c - shiftOut() function
  Part of Arduino - http://www.arduino.cc/

  Copyright (c) 2005-2006 David A. Mellis

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA
*/

#include "wiring_private.h"

uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) {
    uint8_t value = 0;
    uint8_t i;

    for (i = 0; i < 8; ++i) {
        digitalWrite(clockPin, HIGH);
        if (bitOrder == LSBFIRST)
            value |= digitalRead(dataPin) << i;
        else
            value |= digitalRead(dataPin) << (7 - i);
        digitalWrite(clockPin, LOW);
    }
    return value;
}

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
    uint8_t i;

    for (i = 0; i < 8; i++)  {
        if (bitOrder == LSBFIRST)
            digitalWrite(dataPin, !!(val & (1 << i)));
        else    
            digitalWrite(dataPin, !!(val & (1 << (7 - i))));
            
        digitalWrite(clockPin, HIGH);
        digitalWrite(clockPin, LOW);        
    }
}

Zit heel diep onder de motorkap
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_shift.c

***************

Heb shifty.h geïnstalleerd maar bij mij doet die het niet. Heb ook nog een andere standaardcode ervan geprobeerd maar geen succes.
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
#include <Shifty.h>

// Declare the shift register
Shifty shift; 

void setup() {
  // Set the number of bits you have (multiples of 8)
  shift.setBitCount(8);

  // Set the clock, data, and latch pins you are using
  // This also sets the pinMode for these pins
  shift.setPins(6, 4, 5); 
}

void loop() {
  // writeBit works just like digitalWrite
  shift.writeBit(1, HIGH);
  delay(500);
  shift.writeBit(3, HIGH);
  delay(500);
  shift.writeBit(1, LOW);
  delay(500);
  shift.writeBit(3, LOW);
 
  delay(500);
}

https://platformio.org/lib/show/801/Shifty

Bij de instruct 6D zie ik met een voltmetertje op clock, data en latch duidelijk knipperen maar met shifty geen enkele blink ?
.

[ Voor 68% gewijzigd door kitao op 14-04-2019 23:03 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Bij mij op de cube doet hij het prima

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op maandag 15 april 2019 @ 08:59:
Bij mij op de cube doet hij het prima
Ja, ik geloof je. Daarom zei ik er ook bij dat ik het met de standaard lib voorbeeldcode ook geprobeerd heb maar geen succes en toch compileert die prima in de arduino ide. Ik heb vrij lang gezocht maar shifty.h wordt niet zo vaak gebruikt geloof ik en heb niet kunnen vinden of de sim zelf in zijn software alle libs moet hebben of dat hij deze vanaf de arduino haalt. Maar heb het inmiddels opgegeven, misschien dat ik er later bij toeval nog eens tegen aanloop maar ik zet er voor nu een punt achter.

Kwam nog wel iets handigs tegen voor led-grids maar blijkt van oude zooi uint_etc gebruik te maken, kan problemen geven. DisplayBitMap(), staat bijna onderaan

Afbeeldingslocatie: https://playground.arduino.cc/uploads/Code/bit_map_x/index.gif

https://playground.arduino.cc/Code/BitMath/
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
@kitao
OK geen probleem je bent niets verplicht.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
@jeroen vrij
Wat niet gaat gaat niet, simpel. Heb er gisteren toch nog een uur aan besteed en handige dingen tegengekomen maar maakt geen verschil. Zo weet ik nu dat je toch in sim kan programmeren, ongeveer hetzelfde idee als notepad, je opent een bestandje, je krast er wat in en als je het opslaat is je bestand meteen naar de knoppen. Hier wat meer details, en er zijn diverse video's over.
http://simulide.blogspot.com/p/editorcompilerdebugger.html
Dat ging allemaal redelijk vlot, had goede hoop maar bleek onterecht.

Zag nog je code in het for-loop topic, ziet er goed uit, vooral handig gedaan door continue toe te passen.
Nou bij toeval zit ik net te lezen over ternary operator, hier een conditional genoemd
https://www.tutorialspoin..._conditional_operator.htm
Had nog even moeite met het (2e) daarin getoonde voorbeeld, wist wel dat het naar ascii vertaalde maar keek in de verkeerde tabel van hexadecimaal.
En deze bijvoorbeeld
https://www.fluentcpp.com...else-if-ternary-operator/
.

[ Voor 4% gewijzigd door kitao op 16-04-2019 06:57 . Reden: En deze ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ik heb voor mijn ledcube 2 cases aangemaakt.
In void col(int Col, int state) 1 tot 36
In void Layer(int) de 1 tot 6

Nu heb ik ook een void Led gemaakt.
code:
1
2
3
4
void Led(int Col, int state, int Lay)
{
Led(int Col, int state);
Layer( Lay) ;

Hoe kan ik ervoor zorgen dat wanneer ik bij Col 1 tot 36 invul de arduino 1 gebruikt.
Bij 37 tot 72 =2
Enz enz

Acties:
  • 0 Henk 'm!

  • TheOmen
  • Registratie: September 2011
  • Laatst online: 12:46
Delen door 36 en afronden naar boven?
1 - 36 tussen 1/36 en 1 --> 1
37 - 72 tussen 1 1/36 en 2 --> 2
etc

Running is nothing more than a series of arguments between the part of your brain that wants to stop and the part that wants to keep going.


Acties:
  • +1 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 13:15
Afronden is niet nodig. Want dat betekent dat je een floating point getal hebt, en daar is arduino (uitgaande van atmel) niet zo goed in.
Integers hebben geen fraction, dus het resultaat is altijd een heel getal. Afronden achteraf heeft dus geen zin.

Gewoon col / 36, dat is 0 tot en met 35, en 1 tot en met 72.
Vervolgens +1, en je bent er. Of niet?

https://www.desmos.com/calculator/hmsq6feqek

Delen is wel een "dure" actie. Als je dit vaak wilt doen moet je wellicht een andere optie overwegen.

[ Voor 28% gewijzigd door jeroen3 op 16-04-2019 16:33 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ik heb col 1 tot 36
(1/36) +1 =1,02
(36/36) +1=2
Dus dat gaat niet

Is onderstaande void niet een optie?
Weet niet of het zo kan in een void.
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
void Layer(int i)
{
  for (int i = 1; i <= 36; i++)
 {
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(16, 1);
   shift.writeBit(8, 1);
   shift.writeBit(0, 0);
 }
  for (int i = 37; i <= 72; i++)
 {
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(16, 1);
   shift.writeBit(0, 1);
   shift.writeBit(8, 0);
 }
  for (int i = 73; i <= 108; i++)
 {     
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(0, 1);
   shift.writeBit(8, 1);
   shift.writeBit(16, 0);
 }

Heb alleen de 0 en 1 nog verkeerd omstaan.

Acties:
  • 0 Henk 'm!

  • TheOmen
  • Registratie: September 2011
  • Laatst online: 12:46
jeroen3 schreef op dinsdag 16 april 2019 @ 16:31:
Afronden is niet nodig. Want dat betekent dat je een floating point getal hebt, en daar is arduino (uitgaande van atmel) niet zo goed in.
Mijn antwoord was geschreven met 0% kennis van de arduino :P

Running is nothing more than a series of arguments between the part of your brain that wants to stop and the part that wants to keep going.


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Truncaten heet dat, oftewel afkappen
Goed gezien van Jeroen3

Stel je hebt 3.999995 als uitkomst dan voor een int wordt het 3.
.

[ Voor 75% gewijzigd door kitao op 16-04-2019 18:06 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ja dat wist ik maar komt niet uit met de getallen die ik heb want 1 word een en 36 een 2 maar die moet ook 1 zijn.
@jeroen3
En ik heb begrepen dat 3,9999 een 4 word omdat arduino het hele dichtsbijnstaande getal neemt
Of neemt hij het getal voor de komma.
Want als dat het geval is maak ik van led 36 led 0 EN LAYER 1 Layer o

[ Voor 51% gewijzigd door jeroen vrij op 16-04-2019 18:55 ]


Acties:
  • 0 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Ik heb je nieuwe topic even samengevoegd met deze. Dat je een keer een apart topic opent met een specifieke vraag is prima. Maar volgens mij stonden er nu iets van 4 of 5 topics die allemaal gerelateerd waren aan je led kubus.
Dus laten we dat maar even centraal houden, en de vragen/problemen hier behandelen.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
@_ferry_ ok top sorry zal er in het vervolg rekening mee houden.

Weet iemand wat ik hier fout.
Heb de code in mijn reactie hierboven ook getest maar krijg die ook niet werkend
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Layer(int i)
{
  if (int i = 1; i <= 5; i++) {
       digitalWrite(12,HIGH);
       digitalWrite(13,HIGH);
       digitalWrite(11,LOW);
  } else if(int i = 6; i <= 10; i++) {
       digitalWrite(11,HIGH);
       digitalWrite(13,HIGH);
       digitalWrite(12, LOW);
  } else (int i = 1; i <= 15; i++) {
       digitalWrite(12,HIGH);
       digitalWrite(11,HIGH);
       digitalWrite(13,LOW);   
  } 
}

Deze noob is een echte noob haha

Heb onderstaande ook geprobeerd maar die laat alleen de derde if branden.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Layer(int K)
{
  
 if ( K >= 0 &&  K < 6 ) {
    digitalWrite(12, HIGH);
    digitalWrite(13, HIGH);
    digitalWrite(11, LOW);
  } else if ( K >= 5 &&  K < 11 ) {
    digitalWrite(11, HIGH);
    digitalWrite(13, HIGH);
    digitalWrite(12, LOW);
  } else  (K >= 10 &&  K < 16 );{
    digitalWrite(12, HIGH);
    digitalWrite(11, HIGH);
    digitalWrite(13, LOW);
  }
}

[ Voor 27% gewijzigd door jeroen vrij op 16-04-2019 20:34 ]


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 13:15
Ow, wouw. 3 expressions in een if. Dat is dapper. En functies een “void” noemen. Het kan...

Ik raad aan eerst even een snelcursus C syntax te raadplegen alvorens dit project door te zetten.

Anderzijds, super eenvoudig natuurlijk.
code:
1
2
3
4
5
Var = 0;
If( col > 36 ) var = 1; 
If( col > 72 ) var = 2; 
...
If( col > ... ) var = ...;

Alleen var word wel meerdere keren gezet worst case. Is de increment niet telkens hetzelfde dat delen niet kan?

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Heb nu <37 is 1
Else <73 is 2
Enz enz en nu doe hij het zonder var =0;
Ik heb in mijn hoofd dat < is groter dan en >is kleiner dan maar is blijkbaar andersom

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op dinsdag 16 april 2019 @ 21:11:

1. Heb nu <37 is 1
2. Else <73 is 2

Enz enz en nu doe hij het zonder var =0;
Ik heb in mijn hoofd dat < is groter dan en >is kleiner dan maar is blijkbaar andersom
< lijkt op K , dus is kleiner

Stel bij jouw voorbeeld , je hebt 23.
Dan bij regel 1 wordt de uitkomst 1.
Fractie van een miliseconde later als regel 2 door de machine heengaat wordt het weer 2.
want 23 is ook kleiner als 73.

Sorry, dat is fout geloof ik
Als regel 1 waar oplevert wordt regel 2 overgeslagen.

*************
jeroen vrij schreef op dinsdag 16 april 2019 @ 19:32:
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
void Layer(int i)
{
  for (int i = 1; i <= 36; i++)
 {
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(16, 1);
   shift.writeBit(8, 1);
   shift.writeBit(0, 0);
 }
  for (int i = 37; i <= 72; i++)
 {
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(16, 1);
   shift.writeBit(0, 1);
   shift.writeBit(8, 0);
 }
  for (int i = 73; i <= 108; i++)
 {     
   shift.writeBit(40, 1);
   shift.writeBit(32, 1);
   shift.writeBit(24, 1);
   shift.writeBit(0, 1);
   shift.writeBit(8, 1);
   shift.writeBit(16, 0);
 }
**********************************
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
// void function example
#include <iostream>
using namespace std;

void printmessage ()
{
  cout << "I'm a function!";
}

int main ()
{
  printmessage ();
}

http://www.cplusplus.com/doc/tutorial/functions/

Staat een tandwieltje rechtsboven ernaast kan je testen, int main() komt ongeveer overeen met void loop(), alleen blijft die niet loepen.

Void printmessage() heeft geen parameter, maar mag wel.
Void betekent eigenlijk dat die niks terugkeert, dus geen return.

Dit mag
void printmessage (int i)
maar doet het toch niet
want too few arguments
dus moet je in main gaan aanpassen

int main ()
{
printmessage (argument);
}

weer foutmelding, not declared
nog meer regels erbij

int main ()
{
int argument;
printmessage (argument);
}

En dan pakt die.
Dus als je in jouw code de int i weglaat en dit schrijft ...
void Layer ( ) {
....
}
... dan doet die het wellicht wel en kun je in main volstaan met een 'lege' call.
De test compiler is ook rechtstreeks te bereiken via http://cpp.sh/

Wat het afronden/afkappen betreft, daar zie ik o.a. floor en ceil voor genoemd worden.

****************
regel 11 .... } else (int i = 1; i <= 15; i++) {
int i =1 , dat moet 11 zijn vermoed ik.

********************************************

void Layer(int i)
{
if (int i = 1; i <= 5; i++) {
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
digitalWrite(11,LOW);

**************************************************

Hier haal je een if-conditie met een for -loop door elkaar heen.
.

[ Voor 75% gewijzigd door kitao op 17-04-2019 01:58 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op dinsdag 16 april 2019 @ 19:32:
code:
1
2
3
4
5
6
7
8
9
10
void Layer(int i)
{
  if (int i = 1; i <= 5; i++) {
      ...
  } else if(int i = 6; i <= 10; i++) {
       ...
  } else (int i = 1; i <= 15; i++) {
      .... 
  } 
}
else mag geen conditie meer hebben, die moet leeg blijfen
dus
if (conditie)
else if (conditie)
else if (nog een conditie)
else (einde vd wereld , blijft niks meer over).
Zet je daar een conditie dan verwacht die blijkbaar nog een tweede aarde.
Rot gezocht, nergens te vinden maar na 30x proberen kom je daar dan achter.
Ben ingesteld op codes te leren lezen, niet om ze te schrijven en/of te herconstrueren vanaf de grond.

Hier een plaatje van mijn uitkomst, is bizar maar doet het wel.
https://i.imgur.com/t3eKmlV.jpg
dat print een paar regeltjes teveel als verwacht :D

Heb iets veranderd en leesbaarder gemaakt, dan is beter te zien waar dit verkeerd gaat
https://i.imgur.com/B3RcZTg.jpg
Met een led-kubus als enige terugkoppeling van het resultaat is zoiets lastig te vinden.

Gerepareerd
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
//
// void function example
#include <iostream>
using namespace std;

void Layer(int i) {
    if (i > 0  && i <= 5) {
        cout << "digitalWrite(100,HIGH)" << endl;
        cout << "digitalWrite(200,HIGH)" << endl;
        cout << "digitalWrite(300,LOW)" << endl;
    }

    else if (i > 5 && i <= 10) {
        cout << "digitalWrite(400,HIGH)" << endl;
        cout << "digitalWrite(500,HIGH)" << endl;
        cout << "digitalWrite(600,LOW)" << endl; 
    }

    else {              // (i == 11 || i <= 15 )  {
                       // ELSE MAG GEEN CONDITIE MEER HEBBEN !!!!!!!!
                      //  MAAR MOET WEL HAKEN !!!
        cout << "digitalWrite(700,HIGH)" << endl;
        cout << "digitalWrite(800,HIGH)" << endl;
        cout << "digitalWrite(900,LOW)" << endl << endl << endl;
    }
        cout << "einde Layer" << endl << endl;
} 
void main() {
    int a = 3;
    Layer(a);
    int b = 9;
    Layer(b);
    int c = 15;
    Layer(c);
}

[ Voor 52% gewijzigd door kitao op 17-04-2019 04:00 ]


Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 11:26
jeroen vrij schreef op dinsdag 16 april 2019 @ 16:09:
Hoe kan ik ervoor zorgen dat wanneer ik bij Col 1 tot 36 invul de arduino 1 gebruikt.
Bij 37 tot 72 =2
Enz enz
jeroen vrij schreef op dinsdag 16 april 2019 @ 18:37:
Ja dat wist ik maar komt niet uit met de getallen die ik heb want 1 word een en 36 een 2 maar die moet ook 1 zijn.
Trek er dan eerst 1 van af, deel dan door 36, en tel er dan weer 1 bij op. Dan komt het wel uit (36-1 is 35, 35/36=0; plus 1 is weer 1. 1-1=0, delen door 36 is ook 0, plus 1 is weer 1. Voor 37-1 krijg je 36/36=1, plus 1 is 2. Voor 73 krijg je 72/36=2, plus 1 is 3.). Die oplossing had ik ook in je eerdere topic al voorgesteld.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ja klopt maar dan krijg led 0 t/m 35 en 37 t/m 72.
Dan mis ik led 36 dat is heel itlrritant met de loop.
En moet ik daar steeds aan denken.
Ik heb nu een case aangemaakt waarbij ik alle pinnen van 1 tot 36 nummer.
Ik kan nu led 1 t/216 aanzetten en gaan de layers automatisch mee.
Zo heb ik ook een x as y as 1t/m 36.
En 6 hele vlakken.
Ik heb ook de pinnen moet veranderen omdat ik al een sr kapot had waar 8 leds op zaten.
Heb nu per sr 6 leds en 1 layer
@kitao ik heb voor de layers 6 if else gemaakt. En de 7e is else zet hij alles uit en het werkt.
De effecten code setup die ik nu heb is helaas te groot om hier te plaatsen.
Zou handiger zijn als de code inklapt zoals op het arduino forum.
Maar alleen mijn setup zijn al 300+ regels

[ Voor 19% gewijzigd door jeroen vrij op 17-04-2019 11:52 ]


Acties:
  • 0 Henk 'm!

  • Moofnor
  • Registratie: April 2010
  • Laatst online: 13:13

Moofnor

King of my castle

jeroen vrij schreef op woensdag 17 april 2019 @ 11:49:
Ja klopt maar dan krijg led 0 t/m 35 en 37 t/m 72.
Dan mis ik led 36 dat is heel itlrritant met de loop.
En moet ik daar steeds aan denken.
Als je consistent bent in je code zou je alleen 0-35 36-71 of 1-36 37-72 kunnen krijgen, daartussen wisselen is een kwestie van +1 of -1.

- I can accurately say I was born on Earth, but it's not very precise. I can precisely say I was born at latitude 37.229N, longitude 115.811W, but that is not at all accurate - Matt Parker


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ok maar goed dat gaat nu niet meer op omdat ik de pinnen heb gewijzigd ivm de max 70mA.
Heb me setup op me git gezet onder(6x6x6 setup)
Ik ga hier de Col case dan wijzigen met jullie optie zodat de layers wat makelijker gaan.

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

Maar het zit dus zo als uit een berekening op de arduino 0,999 uitkomt de arduino dat ziet als nul?
Er is mij eerder verteld dat dit 1 word
Hoe zit het nu werkelijk

[ Voor 22% gewijzigd door jeroen vrij op 17-04-2019 13:12 ]


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 13:15
Een deling met een integer is truncated. Omdat integers geen fraction hebben. Het deel yyy van x.yyy bestaat niet. Dat gedrag is voor berekeningen ongunstig. Dus is er floating point, wat meer richting de wetenschappelijke notatie leunt, y*10^x.
Maar in dit geval kun je truncation op een integer division goed gebruiken!

Ik heb de code van je github eens bekeken, en volgens mij kun het op onderstaande manier elegant oplossen. Doet hetzelfde, minder regels, en sneller aan te passen door de grootte en inhoud van de lookup table (lut) te wijzigen. Zo zitten de hardware pinnen niet meer vast aan software nummers. Dat is waar we naar streven als embedded developers. Niet meer vastgebonden zitten aan een specifieke chip en board design.
C:
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 layer(uint8_t col){
    uint8_t i;

    /* Wijzig onderstaande tabel voor kolom pin nummers */
    const uint8_t lut[] = {
      /* 001-036  */ 0,
      /* 037-072  */ 8,
      /* 073-108  */ 16,
      /* 109-144  */ 24,
      /* 145-180  */ 32,
      /* 181-216  */ 40
    };

    // Bereken kolom met magisch nummer
    uint8_t var = col / 37;

    // Range check lookup table
    if(var < sizeof(lut)){
      var = 0;
    }

    // Alle kolom pinnen 0
    for(i=0 ;i<sizeof(lut); i++){
      shift.writeBit(lut[i], 0);
    }
    // Zet gevraagde 1
    shift.writeBit(lut[var], 1);
}

*off-by-one errors voorbehouden, niet echt een magisch nummer
uint8_t is overigens een unsigned char, unsigned 8 bit type

Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 11:26
@jeroen3 Je moet in je code (col-1)/36 doen, niet col/37. We willen namelijk dat 73 naar 2 mapt, en 73/37<2.

Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 13:15
@Tom-Z Nee. 73 moet naar pin 16, dat is index 2 in de lut.

Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 11:26
jeroen3 schreef op woensdag 17 april 2019 @ 13:39:
@Tom-Z Nee. 73 moet naar pin 16, dat is index 2 in de lut.
73/37 = 1.97 en die gaat dus naar index 1 in de table volgens jouw code.

[ Voor 3% gewijzigd door Tom-Z op 17-04-2019 13:41 ]


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 13:15
@Tom-Z Ehm. Nou, zoals ik al zei. Off-by-one errors voorbehouden. :+

[ Voor 7% gewijzigd door jeroen3 op 17-04-2019 14:26 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Tom-Z schreef op woensdag 17 april 2019 @ 13:40:
[...]

73/37 = 1.97 en die gaat dus naar index 1 in de table volgens jouw code.
@Tom-Z ok dank je.
@jeroen3 in jouw code staan allerlei dingen die ik niet begrepen krijg.
Snap wat het doet maar weet nu niet hoe ik verder moet bouwen in de loop.

Dit is mijn pcb de pinnen zit niet meer op volgorde van 1 tot 36.
Dus vandaar dat ik een case aan moest maken om de nummering wel zo te krijgen.
Afbeeldingslocatie: https://tweakers.net/ext/f/RQZGoTlVJxDel0jb0VkSyjVK/thumb.jpg

Ik heb nu de Layer bij aan gepast met (-1)/36+1 zodat de pennen 1 tot 36 blijft.
Tevens heb ik de void Y en X en Led.
Zo aangepast dat ik met 0 en 1 ze aan of uit zet.
En dat bij 1 de layers meekomen.
Stel wil op Y1 dus pin 1/6 aan hebben.
Behalve 1 en 36
Doe ik Y(1, 0, 1, 1, 1, 1, 0) nu gaan dus op Y1 4 leds aan.

Probeer nu ook een functie werkend te krijgen.

code:
1
2
3
4
5
6
7
8
9
10
11
for(int A =0; A <= 5; A += 1)
{
for(int i =1; i <=10; i ++)
{
Y(1 +A, 0, 1, 1, 1, 1, 0) 
delay(1);
Y(7 +A, 0, 1, 1, 1, 1, 0) 
delay(1);
Y(13 +A, 0, 1, 1, 1, 1, 0) 
delay(1);
}}

Ik wil dat hij die drie regels 10x doet.
Daarna 1 optelt bij alle Y
Weer 10x doen
Dus hij moet feitelijk 60x doen maar na elke 10 er 1 bij op tellen.
En dan weer verder met de loop

[ Voor 62% gewijzigd door jeroen vrij op 17-04-2019 15:24 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ik heb begrepen dat ik ook
(Y %36); kan gebruiken voor pin 1-36=36
37-72=ook 1-36 enz enz.
Voor de Layer heb ik het nu zo
Layer((L +35)/36);

Zoek nu nog een oplossing voor.
1t/m6 =+0
7t/m12=+2
Enz enz

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 20 april 2019 @ 18:31:

[Afbeelding]

Nu maak ik een 6x6x6 op een uno zonder ic, s
Schiet er maar een programma in Jeroen :)

Afbeeldingslocatie: https://i.imgur.com/0l70nFB.jpg?1
klik

Bij het volledig uittekenen gebeurde er toch iets niet geheel verwachts. Was halverwege met verbinden en besloot opnieuw even te testen maar dat deed het niet goed. Dacht al overnieuw te moeten beginnen maar achteraf bleek dat de hele schakeling compleet en in evenwicht moet zijn voor de sim om mee te kunnen rekenen. Dus geen half aangesloten mosfets e.d. hier en daar en overal.

Zoals je ziet kunnen alle blokken (= verdiepingen) tegelijk bij, volgens de metingen kost dit de uno vrijwel geen stroom aangezien de 6 x instelbare Voltbronnen - (wat eigenlijk één rail moet voorstellen maar tekening is nog niet helemaal af) - de amperages leveren, wat m.i. een 1 Ampere zou moeten kunnen leveren om nog wat ruimte over te hebben.

De blok aan/uit mosfets zijn P-channel, de rest is N.

Zoals altijd, dit is een simulatie, schade aan elektronische componenten is op eigen risico.
.

[ Voor 3% gewijzigd door kitao op 24-04-2019 20:34 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Zelfde schema en led-beeld als gisteren maar nu zijn de oranje knopjes vervangen door de Uno pinnen.
En er is één rail van gemaakt om de blokken (= verdiepingen) in ene keer uit te kunnen schakelen.
Deze is wel veranderd en kan nu tot 9V ingesteld worden om de leds wat helderder te maken maar met 5V kan het ook.
Zoals te zien is er bij 9V bijna 1 A voor nodig voor 5 blokken, oftewel in totaal is er met een 9V voeding een 1.5 A wel nodig.

Uno zelf hoeft enkel spanning te leveren voor de rijen en kolommen en geen stroom.
Voor de blokken slechts 4 mA per pin.

Dit is mijn waarneming maar ben niet aansprakelijk voor geroosterde apparatuur.
Toch heb ik het idee dat dit in echt het ook zou kunnen doen.

Afbeeldingslocatie: https://i.imgur.com/bXZbjRE.jpg?1
klik

Gebruikt programma
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
/*
  Led cube 6x6x6
  Arduino team JV + Kit
*/

void setup(){
  
for(int i=2;i<20;i++)
pinMode(i,OUTPUT);

// KOLOM = AFVOER
digitalWrite(14,HIGH);
digitalWrite(15,HIGH);
digitalWrite(16,HIGH);
digitalWrite(17,LOW);
digitalWrite(18,HIGH);
digitalWrite(19,HIGH);

// BLOK AAN/UIT ( = VERDIEPING)
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);

// RIJ
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);

}

void loop()
{ }

Voltmetertjes voor de kolommen stonden niet goed.
Zelfde opstelling maar in kleur en Voltmetertjes van de kolommen op de Uno pinnen gezet.

Afbeeldingslocatie: https://i.imgur.com/3XRC3qF.jpg?1
https://i.imgur.com/dlk9Gtj.jpg
.

[ Voor 6% gewijzigd door kitao op 25-04-2019 19:18 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Nu online
jeroen vrij schreef op donderdag 18 april 2019 @ 00:02:
Zoek nu nog een oplossing voor.
1t/m6 =+0
7t/m12=+2
Enz enz
Sla eens een LibreOffice calc sheetje open zou ik zeggen:
code:
1
2*INT((n-1)/6)

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:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Waar staat die n voor?.

Morgen komt mijn computer terug dan kan ik deze testen. :)

Afbeeldingslocatie: https://tweakers.net/ext/f/whFr6NJvkDbeGTpWaG45qfbK/thumb.jpg

Heb inmiddels ook mijn rgb leds binnen weet iemand daar nog een leuk licht projectje mee.

[ Voor 63% gewijzigd door jeroen vrij op 25-04-2019 20:22 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op donderdag 25 april 2019 @ 20:15:
Waar staat die n voor?.

Morgen komt mijn computer terug dan kan ik deze testen. :)

[Afbeelding]

Heb inmiddels ook mijn rgb leds binnen weet iemand daar nog een leuk licht projectje mee.
Ziet er start klaar uit (y)

En wat dacht je van een RGB 3D Kubus ?

A 3x3x3 LED cube requires 3 layer pins + 3*3 column pins = 12 digital pins.
For RGB, you need 3*3*3 = 27 column pins, with total of 30 digital pins.


Staat helemaal onderaan, is nogal volle pagina
https://www.ntu.edu.sg/ho...ming/arduino/arduino.html

Maar zoeken op rgb cube geeft nog veel meer opties natuurlijk.
Dit is om mee te beginnen
https://www.electronicshub.org/rgb-led-with-arduino/

Sim heeft trouwens geen RGB zover ik gezien heb.

n is zoiets als x, een willekeurig, meestal geheel getal, vaak gebruikt in een reeks.
Bijvoorbeeld 2^2 , 2^3 , 2^4 , ... 2^n.
.

[ Voor 4% gewijzigd door kitao op 26-04-2019 02:39 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Zat ook te denken aan een cube maar met rgb heb 3 lijnen onder de led'S door lopen waardoor je de leds eronder slecht ziet.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op vrijdag 26 april 2019 @ 09:09:
Zat ook te denken aan een cube maar met rgb heb 3 lijnen onder de led'S door lopen waardoor je de leds eronder slecht ziet.
Ik zoek graag met afbeeldingen maar kwam niet meteen echt veel uitgebreide projecten tegen, deze was zo'n beetje maximaal

http://blog.simtronyx.de/...couplers-part-1-hardware/

part 2 is trouwens foetsie, of staat ergens verborgen.
Rgb is misschien meer om even kennis en vertrouwd mee te maken om dan door te stappen naar de strips.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
ik heb 1 ic werkend.
maar 6 achter elkaar het lukt me niet deze werkend te krijgen.
dus de 6x6x6 is rijp voor de vuilnisbak

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
heb 6 ic,s werkend.
als ik pin 1 aanluit en high zet geen probleem.
dit geld voor alle pinnen.
heb nu de laatste 2 ic,s bezet en kan geen enkele pin aansturen.
boeltje word ook goed warm

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op vrijdag 26 april 2019 @ 17:31:
heb 6 ic,s werkend.
als ik pin 1 aanluit en high zet geen probleem.
dit geld voor alle pinnen.
heb nu de laatste 2 ic,s bezet en kan geen enkele pin aansturen.
boeltje word ook goed warm
Kan zijn dat je te lang bepaalde led-formaties aan laat staan.
Mijn schema, gebaseerd op jouw tekening, heeft er ook moeite mee om één led apart te laten branden, vooral bij 9V dan gaat die letterlijk branden. Zolang als je snel doorschakelt naar het volgende motief is er misschien geen probleem en andere motieven, zoals getoond in de (theoretische) afbeelding kan je langer aan laten staan.
Vuilnisbak zou ik nog even mee wachten, lijkt erop dat je al een aantal stappen verder bent als de vorige keer toen geen enkel SR door de keuring kwam :)
PC inmiddels ook weer gerepareerd neem ik aan ?

Mooiste zou zijn, in een ideale utopie wereld, dat het niet uit maakt of je één led of 20 leds tegelijk aanzet en dat bij alle denkbare formaties de stroom consumptie overal hetzelfde blijft. Dat is vermoedelijk zelfs zonder utopie nu al mogelijk maar die kennis ontbreekt mij om zo'n door-ontwikkelde schakeling te fabriceren.
Dus tot die tijd dient er rekening mee gehouden te worden dat er verschillen kunnen optreden tussen hoe je de leds wil aanzetten.
.

.

[ Voor 23% gewijzigd door kitao op 26-04-2019 19:42 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Ja pc doet het weer.

Zelf als ik 1 led aan word hij warm.
En er staat 5v op geen 9.
Heb hem inmiddels dubbelgevouwen en met ic's in de vuilnisbak geseponeerd.
Het het even helemaal gehad met arduino.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
@jeroen vrij
Heb lang gezocht, zeker een uur.
Denk dat deze het meeste past bij de spullen die je al hebt.

YouTube: Arduino using 4 Shift Registers to control a RGB LED 8x8 Matrix

Schema ontbreekt maar valt uit de video te halen.
Gebruikt een matrix blokje CILE2088RGB-5 maar zal ook los opgebouwd kunnen worden neem ik aan.
Als je op dat type-nummer zoekt krijg je nog meer video's en projecten.
Hier het schema
http://arduinoleonardo.bl...-rgb-de-8x8-de-anodo.html
Met 'open image in new tab' en inzoomen wordt het wat leesbaarderder.
Waarschijnlijk kan je met een kwart daarvan beginnen (4x4) en gewoon de code erop los laten.
Code voor de rgb matrix staat onder de video via 'meer weergeven', oftewel hier

https://github.com/Tasman...ED8by8MatrixUsing74HC595N

Gebruikte transistors zijn 2N5551 NPN, staat ergens bij de commentaren eronder.
Kan iets meer hebben als de BC547, heeft een Icmax van 600mA en bij de 547 is dat 100mA.

https://alltransistors.com/transistor.php?transistor=23400
https://alltransistors.com/transistor.php?transistor=4972


Heb er nog eentje maar weet niet of dat meteen op uno draait en of dat de in de code gebruikte timers voor de duemanilov anders zijn ? En er is daar een extra IC voor nodig , de ULN nog wat.

http://blog.tkjelectronic...duino-rgb-led-controller/
.

[ Voor 109% gewijzigd door kitao op 27-04-2019 10:24 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Deze werkt met ic's is bij mij geen optie

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zaterdag 27 april 2019 @ 17:47:
Deze werkt met ic's is bij mij geen optie
Ligt er misschien aan welke IC's het zijn ?
Heb nu een kubus gevonden die maakt gebruik van vrij simpele IC's, de 138 en de 574.

74HC138 ..... 3 to 8 Line Decoder
http://www.ti.com/lit/ds/symlink/cd54hct238.pdf
74HC574 ..... 8-bit D-type flip-flop
http://www.ti.com/lit/ds/symlink/cd74hc574.pdf

Dit is het schema

Afbeeldingslocatie: https://i.imgur.com/jJTHven.jpg?1
https://i.imgur.com/jJTHven.jpg

Te zien zijn 7x574 en 1x138 (in de tekening staat 594 maar dat is mijn type-fout, haal constant nummers door elkaar)

De werking is vrij eenvoudig, er wordt via A0, A1 en A2 een 3 bit combinatie gestuurd naar de 138, dus dat is van 0 t/m 7 wat je er van kan maken, en dan in diezelfde 138 wordt dat 3-bit getal omgezet in een combinatie op de uitgangen Q0 t/m Q7 volgens de tabel in z'n datablad.

Dat komt op de D-ingangen Dat dient als klokpuls voor één van de 574's en dit zorgt ervoor dat de data vanuit de arduino pin 0 t/m 7 op de D-ingangen van die geselecteerde chip 1 op 1 naar de Q-uitgangen getransporteerd wordt en vandaaruit de kubus in.

Er zit een code bij maar die is niet zo best, maakt ook gebruik van DPort etc. maar deze schakeling is vrij eenvoudig te programmeren volgens mij en je hebt A4 en A5 nog over, dus je kan pin 0 en pin 1 daarop zetten en van dat PortD programmeren af stappen.
En uiteraard kan je dit ook op jouw 6x Kubus zetten.
Geen library niks, geen ingewikkeld gedoe.
Bron staat in code, heb de code half gewist en wat dingen bijgezet, kan je vergelijken met het origineel
Was er nog vrij lang mee bezig want had alles al getekend (slordig trouwens) en bleek achteraf dat de 574 het in Sim versie 3.0 niet doet. :|
Gelukkig in versie 2.9 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
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
//
// This code represent the easiest animation for LED CUBE
// https://www.hackster.io/Marcazzan_M/led-cube-7x7x7-a339dc

int temp = 1000;
int cont = 0;
int t = 1000;

//This function loads all the cube
void load_all(void) {
  //layer 1
  digitalWrite(A2, LOW);
  digitalWrite(A1, LOW);
  digitalWrite(A0, LOW);
  delay(t);
scrolling();
  //layer 2
  digitalWrite(A2, HIGH);
  digitalWrite(A1, LOW);
  digitalWrite(A0, LOW);
  delay(t);
scrolling();
  //layer 3
  digitalWrite(A2, LOW);
  digitalWrite(A1, HIGH);
  digitalWrite(A0, LOW);
  delay(t);
scrolling();
  //layer 4
  digitalWrite(A2, HIGH);
  digitalWrite(A1, HIGH);
  digitalWrite(A0, LOW);
  delay(t);
scrolling();
  //layer 5
  digitalWrite(A2, LOW);
  digitalWrite(A1, LOW);
  digitalWrite(A0, HIGH);
  delay(t);
scrolling();
  //layer 6
  digitalWrite(A2, HIGH);
  digitalWrite(A1, LOW);
  digitalWrite(A0, HIGH);
  delay(t);
scrolling();
  //layer 7
  digitalWrite(A2, LOW);
  digitalWrite(A1, HIGH);
  digitalWrite(A0, HIGH);
  delay(t);
  scrolling();
}

//This function actives each layer one time and you can decide the time that the layer turns on
void scrolling(void) {
  PORTB = 0x00;
  digitalWrite(7, HIGH);
  delay(t);
  digitalWrite(7, LOW);

  digitalWrite(8, HIGH);
  delay(t);
  digitalWrite(8, LOW);

  digitalWrite(9, HIGH);
  delay(t);
  digitalWrite(9, LOW);

  digitalWrite(10, HIGH);
  delay(t);
  digitalWrite(10, LOW);

  digitalWrite(11, HIGH);
  delay(t);
  digitalWrite(11, LOW);

  digitalWrite(12, HIGH);
  delay(t);
  digitalWrite(12, LOW);

  digitalWrite(13, HIGH);
  delay(t);
  digitalWrite(13, LOW);

}

//This animation turns on one layer per time, and it increases the speed of it, so finally you see all cube switched on
void one(void) {
  PORTD = 0xff;
  load_all();
}

void setup() {
  DDRD = 0xff;
  DDRB = 0xff;
  DDRC = 0xff;
}

void loop() {
  one();
}

Zal kijken of er nog meer codes zijn, trefwoord 74HC574 + cube.
Dit was eigenlijk een PT voor de 7400 serie totdat ik zag dat de 574 veel voor kubussen wordt toegepast.
Vandaar dat ik het hier zet.

Nog iets, je ziet geen weerstanden in mijn schema omdat je die in Sim intern aan de matrix mee kan geven.
Het originele schema is gebaseerd op een losse atmega 8 dus de pinnummers kunnen wat verwarrend zijn.
Nogmaals de bron
https://www.hackster.io/Marcazzan_M/led-cube-7x7x7-a339dc
De schakelaar linksboven wordt in de code volgens mij niet gebruikt dus heb je nog een pin over.
.

[ Voor 7% gewijzigd door kitao op 27-04-2019 21:19 . Reden: Nummers door elkaar gehaald ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
ik ga proberen de cubes met adressable leds te maken.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Bestaat dat ook voor de gewone leds of is dat alleen bij rgb's ?
Indien dat laatste , jij vond toch eerst dat rgb niet zo goed uitkomt voor een kubus ivm teveel zicht-blokkerende aansluitingen ?

@jeroen vrij
Heb precies dezelfde gevonden, maar dan met 8 lagen.

http://www.pyroelectro.co.../original_schematic_a.jpg

Héééél uitgebreide instructie van ca 10 pagina's inclusief 800 regels code.

http://www.pyroelectro.co...be/arduino_8x8x8_cube.pde
http://www.pyroelectro.co...8x8x8_led_cube/index.html

Zijn dezelfde IC's alleen de pinnen zitten net weer iets anders dus gaat niet meteen werken met mijn opstelling hoewel ik niet veel hoef te veranderen, zal dat eens proberen.

De code compileert trouwens wel maar is geen eenvoudig programma zo te zien.

Oh, wacht, die meneer heeft nog een beter schema

http://www.pyroelectro.co...e/img/8x8x8_schematic.png
.

[ Voor 69% gewijzigd door kitao op 27-04-2019 22:14 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
heb net weer een nieuwe set ic,s gepakt maar krijg er 1 zo een 5 minuten werkend en dan is het klaar.
en voor adressable leds zijn geen ic,s nodig.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 28 april 2019 @ 00:23:
heb net weer een nieuwe set ic,s gepakt maar krijg er 1 zo een 5 minuten werkend en dan is het klaar.
en voor adressable leds zijn geen ic,s nodig.
Vreemd.
Als je een breadboardje over hebt en je maakt er een testbankje van met 8 leds en met een vertrouwd gedegen programma dan hoef je enkel de chip even om te wisselen om te kijken of die goed is.

Mijn test is overigens ook mislukt, paar uur verspild. Sim houdt dat multiplexen niet bij en met de voltmetertjes zie je nog wel beweging maar met leds (en dus matrix) niet meer. Dat zijn non-linaire dingen las ik ergens op hun website en dat gaat te langzaam. Heb dat nu wel zelf gezien dus was niet helemaal voor niks geweest.
De 800-regels super complex programma lijkt me trouwens niet nodig, is enkel een 3 bits adres doorgeven via de 138 en een 7-bits data doorgeven aan de 574. Maar ik stop met dit projectje.

Heb nog wel een paar linkjes voor je, echt de moeite waard.

https://tutorial.cytron.i...ino-uno-without-extra-ic/
http://conjunctival34.rssing.com/chan-17806917/all_p1.html
https://hackaday.com/2012...ube-has-a-very-short-bom/
https://aglick.com/charliecube.html

RGB 4D incl. codes en uno solo.
.

[ Voor 15% gewijzigd door kitao op 28-04-2019 03:30 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
ik ben achter het probleem met de 74hc595.
deze kunnen helmaal geen 70Ma hebben maar 35ma per pin.
daarom gaan ze bij mij stuk

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op maandag 29 april 2019 @ 21:14:
ik ben achter het probleem met de 74hc595.
deze kunnen helmaal geen 70Ma hebben maar 35ma per pin.
daarom gaan ze bij mij stuk
Blij dat je het gevonden hebt maar aan de andere kant is dit zeker al 3x voorbij gekomen.
En dan nog is het niet helemaal coorect, de chip als geheel kan 70mA max verdragen over zn voeding-gnd-lijn. En wat erin mag gaan is ook max wat er uit komt.
Dus de 70 mA max dat is voor alle pinnen tesamen, inclusief |q7|, data , latch,klok etc.
35 per q'tje is dus al veels teveel als je meer dan ca. 2xq hoog zet.

pag.1+5
http://www.ti.com/lit/ds/symlink/cd74hc595.pdf

Zo heb ik het begrepen althans.

In een ander datablad voor de 595 zie je op pag.14 een typical application, 10.2
Weerstanden voor één ledje per q zijn daar als 560 Ohm getekend.
In de standaard arduino shift out les is dat tot 470 Ohm per ledje opgevoerd.
Zes op een rij met deze chip aansturen over één pin is vragen om een bbq.

http://www.ti.com/lit/ds/symlink/sn74hc595.pdf
.

[ Voor 18% gewijzigd door kitao op 30-04-2019 18:00 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
blijkt het toch niet te zijn ik heb maar 9,4 per pin dus dat kan het niet zijn.
het enige wat ik nog kan bedenken is dat mijn breadboard het niet aan kan.
als ik 1 laag op de gnd zet zonder ic en dan 36 leds aan op ic's word alles al warm.
dus heb de 6x6x6 omgebouwd naar een 4x4x4 en zonder ic's gedaan.

YouTube: 4x4x4 led cube

ga nu een poging doen een 4x4x4 rgb met transistors te maken ook zonder ic's

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op donderdag 2 mei 2019 @ 09:25:
blijkt het toch niet te zijn ik heb maar 9,4 per pin dus dat kan het niet zijn.
het enige wat ik nog kan bedenken is dat mijn breadboard het niet aan kan.
als ik 1 laag op de gnd zet zonder ic en dan 36 leds aan op ic's word alles al warm.
dus heb de 6x6x6 omgebouwd naar een 4x4x4 en zonder ic's gedaan.

YouTube: 4x4x4 led cube

ga nu een poging doen een 4x4x4 rgb met transistors te maken ook zonder ic's
Gaaf gemaakt hoor ! d:)b
Heel knap.
Draait het op de muziek of lijkt dat zo ?

Hoe dat zit met de 6D zou ik ook niet precies weten maar als zo'n 4D helemaal perfect werkt dan mis je waarschijnlijk nog net een paar stapjes.
Net als ik trouwens, ben bezig met een hex-teller/opteller maar zit nu op circa 90% zoals ik het wou.
Dat laatste stukje lukt dan net weer niet.
Ik geef het nog een dag.
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Nee dat niet heb voor de leds alle pinnen al in gebruik.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
Weet er iemand een programma die de weerstand op de base kan bereken in een schakeling.
Ik wil met een bc547 transistor meerdere transistors aan sturen.
De transistor stuurt 5v door kan ik dan bijvoorbeeld 9 transistors aan sturen.

Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 11:26
Bereken de collector current die je wil hebben, deel dat door de (minimum) hFE van de transistor. Dat geeft je de benodigde base current, en die doe je nog een keertje keer 2 voor wat veiligheidsmarge. Dan bereken je de base voltage, dat is dus het voltage op de base min de drop van base naar emitter. De weerstand is dan het voltage gedeeld door de benodigde (base) current.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
de bc547 heeft een minimale hfe van 110.
de voltage drop op de base is 0,75.
heb 20 mA nodig dus dat word dan

0,020/100= 0,18 mA. x 2 =0,36mA
voltage = 5v -0,75=4,25

4,25/0,00036=11805 ohm = 11,8 Kohm.

dat is dus nodig voor 1 transistor.
maar hoe zit het dan als 1 transistor 9 transistor op de base moet inschakelen.
normaal met leds in serie tel je de voltage bij elkaar op.
en bij parralel de current.
geld dat ook bij transistors.

heb hieronder een afbeelding van wat ik wil bereiken.
als het uberhaupt zo kan.

Afbeeldingslocatie: https://tweakers.net/ext/f/VR8vEnaTJ52HOKN5VcF8jT9D/thumb.png

/////////////////////////////////////////////

[ Voor 197% gewijzigd door jeroen vrij op 03-05-2019 16:13 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
@jeroen vrij
Heb het niet nagerekend maar met de 11 K weerstand bedoel je zeker de weestand op de basis van de transistor ? Dat lijkt mij heel erg hoog. 1K zie je meestal.
Maar zijn ruim veel video's over, zag laatst deze nog.
YouTube: Tutorial: How to design a transistor circuit that controls low-power...
Dit gaat dan over lage power aansturing maar voor hoge power heb je de darlington drivers.
Maar ja, dan kom je weer uit bij een chip, de ULN2803 of 4, hoewel deze tamelijk eenvoudig is, zie de 7400-topic PT7 was dat geloof ik met stappen motoren. Hier een datablad ervan
http://www.ti.com/lit/ds/symlink/ulq2004a.pdf
The collector-current rating of a single Darlington pair is 500 mA.

Daar lijkt jouw tekening wel enigzins op, dat je transistors als gecombineerd paar extra lading wil laten opvoeren.
.

[ Voor 14% gewijzigd door kitao op 03-05-2019 16:13 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
ik gebruik op de transistor 1 nu 10k weerstand. om een andere weerstand open te sturen. ik gebruik op de 2e weerstand nu 1k niet berekend gewoon getest. transistor 1 stuurt netjes 2 open en het ledje gaat branden.
ga het nu testen met meerder transistors die open worden gestuurd door 1 transistor.
hoop dat ik nog begrijpelijk praat haha

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op vrijdag 3 mei 2019 @ 16:16:
ik gebruik op de transistor 1 nu 10k weerstand. om een andere weerstand open te sturen. ik gebruik op de 2e weerstand nu 1k niet berekend gewoon getest. transistor 1 stuurt netjes 2 open en het ledje gaat branden.
ga het nu testen met meerder transistors die open worden gestuurd door 1 transistor.
hoop dat ik nog begrijpelijk praat haha
Nou half begrijpelijk zou ik zeggen
Hoe ga je een weerstand open sturen, met een stanley mes ofzo

anyway
zoek op
calculating base resistor transistor
als antwoord op
Weet er iemand een programma die de weerstand op de base kan bereken in een schakeling.
Ik wil met een bc547 transistor meerdere transistors aan sturen.
De transistor stuurt 5v door kan ik dan bijvoorbeeld 9 transistors aan sturen.
En helaas niet in eigen taal, hoewel die ook best te vinden zijn.
Duurt enkel iets langer met tig x minder zoek resultaten.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
maar goed de leds branden al bij enkel spanning op de base.

[ Voor 47% gewijzigd door jeroen vrij op 03-05-2019 16:29 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op vrijdag 3 mei 2019 @ 16:28:
maar goed de leds branden al bij enkel spanning op de base.
Ja, ok , dat snapte ik wel, maar let even op wat je schrijft als je zelf al denkt onduidelijk over te komen.

Dit herken ik trouwens niet

maar hoe zit het dan als 1 transistor 9 transistor op de base moet inschakelen.

Een datlington is 1 op 1.
1 transistor die er 9 tegelijk bedient lijkt mij iets te hoog gegrepen.
Ken er althans op dit moment geen voorbeelden van ?

Afbeeldingslocatie: https://circuitdigest.com/sites/default/files/inlineimages/u/Darlington-Transistor-Pair_0.png
Bron : https://circuitdigest.com...arlington-transistor-pair
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
het is mij inmiddels gelukt alleen niet door de vcc te schakelen maar de gnd.
ben nu een torentje aan het maken 3x3x25. ik gebruik 9 pinnen voor de anodes (kolommen) en 10 pinnen voor de layers. 39 transistors 39 weerstanden 10Kohm en 9 180ohm. en 225 blauwe leds

[ Voor 4% gewijzigd door jeroen vrij op 05-05-2019 13:52 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 5 mei 2019 @ 13:49:
het is mij inmiddels gelukt alleen niet door de vcc te schakelen maar de gnd.
ben nu een torentje aan het maken 3x3x25. ik gebruik 9 pinnen voor de anodes (kolommen) en 10 pinnen voor de layers. 39 transistors 39 weerstanden 10Kohm en 9 180ohm. en 225 blauwe leds
ben nu een torentje aan het maken 3x3x25

_/-\o_

Heel ambitieus Jeroen, dat moet gezegd :)

Is hiermee de vorige kubus met 9 transistoren aangestuurd door ene andere transistor afgerond ?
En zo ja, zou leuk zijn als je dat project dan deelt ?
Of was dat voorbereiding voor deze wolkenbrander ?

Sorry als ik de oren van je hoofd vraag >:)

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
geeft niet. heb die niet door laten gaan omdat ik daarvoor pnp transistors nodig heb of common anode rgb leds.
die zijn in bestelling dus moet daar even op wachten.
ben nu een 4x4x4 aan het programmeren maar dat had ik gedeeld toch?

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op zondag 5 mei 2019 @ 19:23:
geeft niet. heb die niet door laten gaan omdat ik daarvoor pnp transistors nodig heb of common anode rgb leds.
die zijn in bestelling dus moet daar even op wachten.
ben nu een 4x4x4 aan het programmeren maar dat had ik gedeeld toch?
Yep, heb de video gezien, helemaal toppie.
Over programmeren gesproken, ben vandaag bezig met mn 1e introduktie tot Great Cow Basic.
Zal tijd kosten het door te krijgen maar als dat gaat lukken dan heb je een hoop gemak.
Kijk deze, dit is een programma voor uno met 595 shift en laat Q0 t/m Q7 aan gaan en begint weer bij Q0.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#chip mega328P, 16

#include "74hc595.gcb"

#define SER     portb.1
#define OE      portb.2
#define RCLK    portb.3
#define SRCLK   portb.4
#define SRCLR   portb.5

init595
do
    shiftBit( 1 )
    wait 500 ms
    
    for index=1 to 7
        shiftBit( 0 )
        wait 500 ms
    next
loop

Ben daar mee begonnen omdat ik na de 7400-serie verder wil met verschillende Pic's gebruiken.
Dat duurt nog even maar is alvast leuke afwisseling tussendoor.
Hier demo video 10 minuten.



Thuis pagina
http://gcbasic.sourceforge.net/Typesetter/index.php/Home

Helaas loop ik meteen vast, Gcb schijnt de lib 595 niet te hebben ofzo :-(

*************
Jippie, heb mn eerste uC via Gcb naar sim in actie gekregen

Afbeeldingslocatie: https://i.imgur.com/YmrF3gD.jpg?1

Maar deze is nog steeds spoorloos, ik geef het op

#include "74hc595.gcb" .... Nergens te vinden :?
.

[ Voor 11% gewijzigd door kitao op 07-05-2019 18:16 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
plan is gewijzigd worden 5 torens van 4 leds per laag en 10 lagen hoog.
schet is nog niet af maar word met 1 uno gestuurd.

Afbeeldingslocatie: https://tweakers.net/ext/f/gyxR4rZUhfB8i8QDdCogIvj0/thumb.jpg

schema hieronder is klaar ga hem nu testen op de simulator.

Afbeeldingslocatie: https://tweakers.net/ext/f/Djw3Rt2fC5O5sdWDuhBpzQGi/thumb.jpg


Update Hij doet het

[ Voor 124% gewijzigd door jeroen vrij op 08-05-2019 15:48 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op dinsdag 7 mei 2019 @ 19:54:
plan is gewijzigd worden 5 torens van 4 leds per laag en 10 lagen hoog.
schet is nog niet af maar word met 1 uno gestuurd.

[Afbeelding]

schema hieronder is klaar ga hem nu testen op de simulator.

[Afbeelding]

Update Hij doet het
Doet het In het echt of in een simulator ? (welke heb jij trouwens ?)
Ziet er wel goed uit hoor, helder getekend jouw schema.
Als je svp nog een code kan delen via Git wil ik ook best proberen. :)
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
moet de code nog schrijven heb alleen een test code nu maar zodra deze klaar is zal ik hem er op zetten.
heb hem getest met thinkercad.

door een tip op een ander forum(circuits online) heb ik het schema wat gewijzigd. de 4 transistors onder het schema hebben de collector nu op vcc ipv de pin van de arduino

[ Voor 90% gewijzigd door jeroen vrij op 08-05-2019 15:52 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op woensdag 8 mei 2019 @ 15:09:
moet de code nog schrijven heb alleen een test code nu maar zodra deze klaar is zal ik hem er op zetten.
heb hem getest met thinkercad.

door een tip op een ander forum(circuits online) heb ik het schema wat gewijzigd. de 4 transistors onder het schema hebben de collector nu op vcc ipv de pin van de arduino
Nu je het zegt, dat zit inderdaad wel een beetje vreemd, basis aan collector verbonden en denk dat de bezoekers van CO dit goed opgemerkt hebben.

https://tweakers.net/ext/f/ph0jUpaarkxPYjaItRf6dTAz/full.jpg

Maar TC vond het prima ?
Ik beweer trouwens niet dat het zo nooit zou lukken maar het komt nogal apart op mij over.

Was begin dit jaar ook begonnen met Thinkercad en heb hier een vraag gesteld of iemand nog een andere budgetvriendelijke weet met meer opties en het antwoord op die vraag heb ik inmiddels zelf gevonden.
Maar is geen slecht programma, er zijn best veel voorbeelden te zien van toepassingen daarmee, vooral met Uno.
.

[ Voor 10% gewijzigd door kitao op 08-05-2019 16:21 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
bij de oude opstelling stuur ik 5 leds aan met 1 pin. 50mA niet verstandig.
heb inmiddels het schema wat leesbaarder gemaakt.

Afbeeldingslocatie: https://tweakers.net/ext/f/eGk9DRsJ8FwxoHfcRfRMHjw1/thumb.jpg

sorry foutje gezien.

Afbeeldingslocatie: https://tweakers.net/ext/f/EZbXwnsVwx759rW073QtFw9N/thumb.jpg

jp14=jp13

heb hieronder een stukje code gemaakt weet echter nog niet of hij ook werkt dat ik zo in de simulator doen.

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
void setup() {
  for (int i = 0; i <= 19 ; i++) {
    pinMode(i, OUTPUT);
  }

}
void Toren(int Number) {
  switch (Number) {
    case 1:
      digitalWrite(7, HIGH);
      break;
    case 2:
      digitalWrite(8, HIGH);
      break;
    case 3:
      digitalWrite(5, HIGH);
      break;
    case 4:
      digitalWrite(6, HIGH);
      break;
    case 5:
      digitalWrite(3, HIGH);
      break;
    case 6:
      digitalWrite(4, HIGH);
      break;
    case 7:
      digitalWrite(1, HIGH);
      break;
    case 8:
      digitalWrite(2, HIGH);
      break;
    case 9:
      digitalWrite(15, HIGH);
      break;
    case 10:
      digitalWrite(14, HIGH);
      break;
  }
}
void Layer(int A) {
  digitalWrite(A + 8, HIGH);
}
void Anode(int A) {
  digitalWrite(20 - A, HIGH);
}
void Off() {
  for (int i = 0; i <= 19 ; i++) {
    digitalWrite(i, LOW);
  }
}
void Led(int A) {
  Toren(1 + ((A - 1) / 20));
  Layer(1 + ((A - 1) / 4));
  Anode(A + ((A - 1) / 4));
}
void loop() {
  for (int i = 0; i <= 200 ; i++) {
    Led(i);
    delay(200);
    Off();
  }
}


maar zit er aan te denken de pinnen anders aan te sluiten om het makkelijker te maken.

krijg hem alleen niet gesimuleerd want thinkercad trek het niet zoveel leds.

[ Voor 123% gewijzigd door jeroen vrij op 08-05-2019 23:46 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
@jeroen vrij

Bij nader inzien is jouw schema best fors en aangezien het nog in ontwikkeling is wacht ik liever even met mee testen totdat er iets meer concreets is samengesteld. Bovendien, en jij noemde ook al beperkingen in een simulator, mijn sim heeft een hekel aan multiplexen. Maar als jouw opstelling vaste voet heeft gekregen zou ik best opnieuw een poging willen wagen en het zou handig zijn als je dan eerst één torentje uit tekent met test code. De rest wat overblijft is dan meestal toch een kopie van de eerste.

[ Voor 16% gewijzigd door kitao op 09-05-2019 18:08 ]


Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
tijdens het opbouwen van het schema loopt hij al vast

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op donderdag 9 mei 2019 @ 18:23:
tijdens het opbouwen van het schema loopt hij al vast
Hier crasht het ook regelmatig.

Heb de toren linksboven nagetekend van jouw schema
https://tweakers.net/ext/f/EZbXwnsVwx759rW073QtFw9N/full.jpg


Afbeeldingslocatie: https://i.imgur.com/aR9y4Zy.jpg
klikbaar

De transistor vlak boven JP 0 doet het prima, die zet netjes het hele blok uit.
De JP13's kan ik niet terugvinden in jouw schema waar die op aangesloten zijn, ik zie ook een ethernet shield ipv Uno ?
JP13 connector/jumper/stekker heb ik een weerstand van 50 Ohm gegeven anders ploffen de leds.
Mijn JP's zijn eigenlijk weerstandenblokjes (resistor dip) maar die kan je 0 Ohm geven.
JP 12, JP 2 en JP 0 staan op 0 Ohm.
Heb de helft van de toren genomen om te testen.
De meerwaarde van de JP 12 transistoren vind ik lastig te bepalen, ok, als je die erbij zet gaan er een paar mili-amperes extra doorheen. Heb hier en daar wat ampere-meters geplaatst maar kan niet alles in woorden brengen wat ik getest heb, dit zijn de hoofdpunten. Heb het simu-bestandje op GitHub gezet mocht je die zelf willen proberen met titel JV 4x10.

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

Als ik wat meer gegevens heb zoals over JP13 en toegepaste weerstandwaarden kan ik de andere helft van de toren erop zetten, dit ging in het begin namelijk niet meteen goed. Niet iedere geleidende transistor heeft de sim een geel kleurtje gegeven maar dat komt vaker voor.

Even een vraag, ik zou het echt fijn vinden als je mij vertelt hoe jij je thumbnails maakt want met Imgur is zeer omslachtig. Of ik doe iets verkeerd.
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
zie dat 3 strengen de anodes 1kohm hebben das te veel. en ik gebruik 10 kohm op de base.
ik gebruik fritzing dat werkt super alleen bevat fritzing geen simulator.
maar heb gemerkt dat je niet altijd kan vertrouwen op de simulator

[ Voor 45% gewijzigd door jeroen vrij op 10-05-2019 10:08 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
jeroen vrij schreef op vrijdag 10 mei 2019 @ 10:07:
zie dat 3 strengen de anodes 1kohm hebben das te veel. en ik gebruik 10 kohm op de base.
ik gebruik fritzing dat werkt super alleen bevat fritzing geen simulator.
maar heb gemerkt dat je niet altijd kan vertrouwen op de simulator
Ja dat klopt van de drie stringen, scherp gezien.
Is ergens ook wel gokken als dat niet in het schema staat maar om bij mij te blijven, dat is inderdaad veels te hoog. Heb de meeste linkse wel verlaagd tot 100 en zoals ik zei, in beeld leverde dat maar een paar mAmpjes extra op. En tuurlijk, het blijft een simulator, dat geen hoge schakel-tempo's van leds aankan en wat zeer waarschijnlijk wel de opzet is van jouw ontwerp, iets waar ik mezelf niet aan waag om zelf dingen te gaan formeren. Wat ik dus in beeld kreeg was van een statisch geheel en zal matig tot slecht overeenkomen met de werkelijke situatie.

Heb je trouwens JP 13 al terug kunnen vinden en over die thumbnails, zou je dat nog even kunnen delen misschien ? Alvast bedankt :)
.

Acties:
  • 0 Henk 'm!

  • jeroen vrij
  • Registratie: Februari 2016
  • Laatst online: 09-05-2022

jeroen vrij

Just a arduino noob

Topicstarter
beetje scheef gemaakt door mij maar jp13 jp12 en jp14. zijn hetzelfde. komt door de auotnummering van fitz.
ik ben dit gebeuren nu aan het testen via me cube. en schakelt gewoon goed.
behalve de anode kant die heb ik voorzien van pulldown ressitors omdat die wat lang open blijven.

wat bedoel je precies met die thumbnails??
als je de plaatjes bedoeld die voeg ik toe via mijn fotoalbum.
zet ze eerst in een map op mijn bureaublad en upload hem dan in het bericht via fotoalbum.
staat boven het reactie vak (voeg afbeelding toe via fotoalbum)

[ Voor 32% gewijzigd door jeroen vrij op 10-05-2019 16:57 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 01-06 11:08
Een thumbnail is een klein klikbaar plaatje wat een grotere afbeelding oplevert.
Bedankt voor de tip, ik ga dat eens bekijken. Zag wel eerder dat jij dat toepaste maar dat was voor foto's.
Kan dus ook met afbeeldingen blijkbaar, tof.

JP12 had ik niet verwacht dat die gelijk is aan 13.
Dat is de enige van de torens met de extra transistoren Q25-28 ?

Fijn dat het goed schakelt, zo zie je maar weer, als je enkel op een simulator afga dan had je misschien vantevoren al een in de praktijk goed functionerende opstelling overgeslagen.

Ps\ @jeroen vrij
Was gisteren op zoek naar een volgende PT voor de 7400-serie.
Kwam vrijwel niks tegen met een 74573 behalve een rgb 4x4x4.
Als je interesse hebt zie dan
kitao in "[7400-serie] Digitale IC's."
Éen ledje apart aanzetten gaat niet volgens mij, die schakelen met 4 tegelijk.

Afbeeldingslocatie: https://tweakers.net/ext/f/4GIoiEoMAAG1VIhujHhyItVS/thumb.jpg .... Afbeeldingslocatie: https://tweakers.net/ext/f/TEXg68wNWq1Vahu0DVoh3qJL/thumb.jpg
.

[ Voor 38% gewijzigd door kitao op 11-05-2019 20:40 . Reden: Ps\ ]

Pagina: 1 2 3 4 Laatste