For loop achterwaarts

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Ik wil een for loop achterwaarts laten gaan maar het lukt mij niet.
Weet iemand waarom.
Ik gebruik de volgende code
code:
1
2
3
4
5
6
7
8
For(int i = 0; int i <=7; i ++) 
{
 shiftWritebit(i, HIGH) ;// DEZE WERKT.
} 
For(int i = 7; int i <=0; i - - ) 
{
 shiftWritebit(i, LOW) ;// DEZE WERKT NIET LEDS BLIJVEN AAN
}

Acties:
  • +3 Henk 'm!

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 23:35

Rhapsody

In Metal We Trust

code:
1
int i <=0;
moet >= zijn volgens mij.

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)


Acties:
  • +2 Henk 'm!

  • mrottjers
  • Registratie: December 2011
  • Laatst online: 01-10 13:53
Ik zou op regel 5 i >= 0 proberen.

Acties:
  • +3 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 19:53

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Rhapsody schreef op woensdag 10 april 2019 @ 20:53:
code:
1
int i <=0;
moet >= zijn volgens mij.
Dit (i is immers 7 en dus nooit kleiner dan 0), en mogen er spaties staan tussen --?

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • +3 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Laatst online: 21:42
Even outside the box gedacht:
code:
1
2
3
4
For(int i = 0; int i <=7; i++ ) 
{
 shiftWritebit([b]7-i[/b], LOW) ;
}

*sowieso


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 01-10 16:02
jeroen vrij schreef op woensdag 10 april 2019 @ 20:50:
code:
1
For(int i = 7; int i <=0; i - - )
"int i >= 0" zoals eerder opgemerkt;
"i--", ik *denk* dat de spaties die je er had staan een probleem kunnen zijn.

Acties:
  • 0 Henk 'm!

  • Tadango
  • Registratie: April 2000
  • Laatst online: 25-09 16:46
Die 2e int moet ook weg, je definieert de i maar 1 keer.

Acties:
  • +1 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 01-10 08:22
Dit is de juiste syntax 8)

C++:
1
2
3
for(int i = 7;  i >= 0; i-- ){
    shiftWritebit(i, LOW);
}


zie ook hier

OE, vraagje: Waarom werkt de volgende niet?
C++:
1
2
3
for(unsigned int i = 7;  i >= 0; i-- ){
    shiftWritebit(i, LOW);
}

success :P

[ Voor 11% gewijzigd door Vuikie op 11-04-2019 11:09 ]


Acties:
  • 0 Henk 'm!

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 04:29
Vuikie schreef op donderdag 11 april 2019 @ 11:06:
OE, vraagje: Waarom werkt de volgende niet?
C++:
1
2
3
for(unsigned int i = 7;  i >= 0; i-- ){
    shiftWritebit(i, LOW);
}
Als i unsigned is dan is i >= 0 een tautologie.

Acties:
  • 0 Henk 'm!

  • m0h4life
  • Registratie: September 2012
  • Laatst online: 29-09 12:48
Tom-Z schreef op donderdag 11 april 2019 @ 11:16:
[...]

Als i unsigned is dan is i >= 0 een tautologie.
Om uit te breiden;

Het verschil zit 'm in het feit dat bij Signed integers de eerste Bit, de MSB, aangeeft dat het getal positief of negatief is. Het bereik is dus altijd (aantal bytes - 1Bit) positief of negatief.
In geval van een 8Bits integer krijg je dan een bereik van 0 t/m 7 bit (2^7) = 128. 0 wordt gezien als positief, dus is het bereik -128 t/m 127.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = -128
^
MSB


Bij Unsigned integers is de eerste bit gewoon onderdeel van het getal, het is dus altijd positief. Het positieve bereik is daardoor wel groter, 2^8 = 256, tellend vanaf 0 dus 255.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = 255
^
MSB

[ Voor 9% gewijzigd door m0h4life op 11-04-2019 11:36 ]


Acties:
  • +5 Henk 'm!

  • roger128
  • Registratie: Oktober 2009
  • Laatst online: 09-05 19:03
Om even op de vraag in te gaan zonder vervangende code te schijven, het is beter uit te leggen en het OP zelf laten uitzoeken dan gewoon een werkende oplossing geven.

code:
1
2
3
4
For(int i = 7; int i <=0; i - - ) 
{
 shiftWritebit(i, LOW) ;// DEZE WERKT NIET LEDS BLIJVEN AAN
}


Een for loop is For(begin init; loop conditie; end-of-loop operatie). Je begint met een int op 7. Vervolgens wordt bij het begin van iedere iteratie van de loop de beginconditie gechecked. In je eerste voorbeeld is je int 0, en 0 <= 7 is natuuriijk true, dus de loop doet 1 iteratie van de inhoud, en vervolgens de end-of-loop operatie, om weer bij de loop conditie te beginnen. In jouw voorbeeld begin je op 7 <= 0, wat natuurlijk onwaar is. De conditie is dus false, en de inhoud wordt overgeslagen.

Acties:
  • +1 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Dank u allen heb < vervangen voor >
En toen deed hij het bedankt.
De led cube doet het al goed.
https://youtu.be/me9Vsi6Nf5c
En dat voor een noob :p

[ Voor 42% gewijzigd door jeroen vrij op 11-04-2019 14:46 ]


Acties:
  • +2 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:01

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Jewest
  • Registratie: Juni 2007
  • Laatst online: 01-10 12:28
m0h4life schreef op donderdag 11 april 2019 @ 11:31:
[...]

Om uit te breiden;

Het verschil zit 'm in het feit dat bij Signed integers de eerste Bit, de MSB, aangeeft dat het getal positief of negatief is. Het bereik is dus altijd (aantal bytes - 1Bit) positief of negatief.
In geval van een 8Bits integer krijg je dan een bereik van 0 t/m 7 bit (2^7) = 128. 0 wordt gezien als positief, dus is het bereik -128 t/m 127.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = -128
^
MSB


Bij Unsigned integers is de eerste bit gewoon onderdeel van het getal, het is dus altijd positief. Het positieve bereik is daardoor wel groter, 2^8 = 256, tellend vanaf 0 dus 255.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = 255
^
MSB
0111 1111 = 127
^
MSB

1111 1111 = -128
^
MSB
[/code]

Bij Unsigned integers is de eerste bit gewoon onderdeel van het getal, het is dus altijd positief. Het positieve bereik is daardoor wel groter, 2^8 = 256, tellend vanaf 0 dus 255.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = 255
^
MSB

[/quote]
m0h4life schreef op donderdag 11 april 2019 @ 11:31:
[...]

Om uit te breiden;

Het verschil zit 'm in het feit dat bij Signed integers de eerste Bit, de MSB, aangeeft dat het getal positief of negatief is. Het bereik is dus altijd (aantal bytes - 1Bit) positief of negatief.
In geval van een 8Bits integer krijg je dan een bereik van 0 t/m 7 bit (2^7) = 128. 0 wordt gezien als positief, dus is het bereik -128 t/m 127.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = -128
^
MSB


Bij Unsigned integers is de eerste bit gewoon onderdeel van het getal, het is dus altijd positief. Het positieve bereik is daardoor wel groter, 2^8 = 256, tellend vanaf 0 dus 255.
code:
1
2
3
4
5
6
7
0111 1111  = 127
^
MSB

1111 1111  = 255
^
MSB
Sorry maar nee wat je hier zegt is echt verkeerd.
1111 1111 unsigned is 255.
1111 1111 signed is -1

Het eerste bitje(MSB) is geen - teken bit!!! Dit veel gemaakte fout.
voor meer info: Wikipedia: Two's complement

[ Voor 23% gewijzigd door Jewest op 11-04-2019 16:55 . Reden: typo ]

Flickr
Canon 7D + Glas + Licht
Komt het rot over dan bedoel ik het anders en taalfouten zijn inbegrepen.


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
vanaalten schreef op donderdag 11 april 2019 @ 08:39:
[...]

"int i >= 0" zoals eerder opgemerkt;
"i--", ik *denk* dat de spaties die je er had staan een probleem kunnen zijn.
Spaties maken niks uit in C++
zie regel 19
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
// pointer to classes example
#include <iostream>
using namespace std;

class Rectangle {
    int width, height;
public:
    Rectangle(int x, int y) : width(x), height(y) {}
    int area(void) { return width * height; }
};


int main() {
    Rectangle obj(3, 4);
    Rectangle * foo, *bar, *baz;
    foo = &obj;
    bar = new Rectangle(5, 6);
    baz = new Rectangle[2]{ {2,5}, {3,6} };
    cout << "obj's area: " << obj.                                     area() << '\n';
    cout << "*foo's area: " << foo->area() << '\n';
    cout << "*bar's area: " << bar->area() << '\n';
    cout << "baz[0]'s area:" << baz[0].area() << '\n';
    cout << "baz[1]'s area:" << baz[1].area() << '\n';
    delete bar;
    delete[] baz;
    return 0;
}


compileert en draait prima
.

Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 04:23

Blokker_1999

Full steam ahead

Of om het dan direct compleet uit te leggen ipv naar wikipedia te verwijzen. Nemen we 3 bits op een signed integer:

000 = 0
001 = 1
010 = 2
011 = 3
100 = -4
101 = -3
110 = -2
111 = -1

Het is dus inderdaad niet zo dat je met een 1 ervoor de rest van het getal houdt met dan een - ervoor, je behoudt in dit geval wel 2^3 aan getallen zijnde van -4 tem 3

No keyboard detected. Press F1 to continue.


Acties:
  • +1 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
CurlyMo schreef op donderdag 11 april 2019 @ 16:44:

YouTube: Vertical Video Syndrome
Leuk, iemand belachelijk maken.
Maar maak dan eerst dit zelf even

Afbeeldingslocatie: https://i.imgur.com/AyfSnrA.jpg
https://tweakers.net/ext/f/4eoXCnndy2NxgnjpMeJL5r2L/full.jpg


jeroen vrij in "3x3x3 led cube"

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:01
kitao schreef op donderdag 11 april 2019 @ 17:54:
[...]
Leuk, iemand belachelijk maken.
Maar maak dan eerst dit zelf even
Ik zou het ook zo serieus nemen :|
Er zijn er genoeg op dit forum die weten dat dat geen enkel probleem vormt, dus als je me hiermee op mijn plek wil zetten, dan ben ik niet de juiste persoon :p

Ik heb de andere topics ook doorgelezen en het is natuurlijk tof dat TS heeft doorgezet d:)b Echter, voor vertical video zijn nooit excuses.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Ga maar lekker zelf op je kop staan

Acties:
  • 0 Henk 'm!

  • plofkip
  • Registratie: Oktober 2002
  • Laatst online: 29-09 20:13
Dit is de hk niet...

[ Voor 88% gewijzigd door SA007 op 11-04-2019 19:07 ]


Acties:
  • +1 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Laatst online: 21:42
jeroen vrij schreef op donderdag 11 april 2019 @ 14:41:
Dank u allen heb < vervangen voor >
En toen deed hij het bedankt.
De led cube doet het al goed.
https://youtu.be/me9Vsi6Nf5c
En dat voor een noob :p
Tof dat het gelukt is!
Soms zijn het de kleine dingetjes waar je zo je hoofd over kan breken.. die je dan gewoon over het hoofd ziet. Maar mooi joh!

*sowieso


Acties:
  • +2 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@kitao ik kan het wel hebben we hoor.
En nee ben geen camera man.
Ben inmiddels de print voor de 6x6x6 aan bakken. Heb de code op de git gezet.
https://github.com/Jeroen...lob/master/3x3x3%20tested
@DonJunior nou idd ben al ff met de code bezig maar gaat de goede kant op.
Ik moet nog even zorgen dat de effecten netjes in elkaar overlopen.
Maar voor iemand die begin maart nog geen eens wist wat c code was heb ik dat biertje nu wel verdient :)

[ Voor 108% gewijzigd door jeroen vrij op 11-04-2019 19:33 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
jeroen vrij schreef op donderdag 11 april 2019 @ 19:22:

Ben inmiddels de print voor de 6x6x6 aan bakken. Heb de code op de git gezet.
https://github.com/Jeroen...lob/master/3x3x3%20tested
Zal er naar kijken maar ben inmiddels zelf met een ander projectje bezig dus kan een dag of wat duren.

kitao in "[7400-serie] Digitale IC's."

Kijk ook eens naar de matrix, dat is fabrieks spul, niet van mij

kitao in "3x3x3 led cube"
.

Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:01
Een mooie volgende stap zou zijn om je effecten in variabelen te zetten. Bijv.:

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
29
30
31
32
33
34
35
typedef struct effect_t; {
    int pin;
    int state;
    int delay;
} effect_t;

static struct effect_t effect1[] = {
    { 11, LOW, 0 },
    {  2, HIGH, 200 },
    {  2, LOW, 0 },
    {  5, HIGH, 200 },
    {  5, LOW, 0 },
    {  8, HIGH, 200 },
    {  3, HIGH, 200 },
    {  3, LOW, 0 },
    {  6, HIGH, 200 },
    {  6, LOW, 0 },
    {  9, HIGH, 200 }
};

struct {
    char *name;
    struct effect_t *effect;
} effecten[] = {
    { "effect1", effect1 }
};

void loop() {
    int len = sizeof(effect1)/sizeof(effect1[0]);
    int i = 0;
    for(i=0;i<len;i++) {
        digitalWrite(effect1[i].pin, effect1[i].state);
        delay(effect1[i].delay);
    }
}


Uit mijn hoofd, dus foutjes daargelaten, maar het idee is hoop ik helder. De effecten struct zou dan een lijstje kunnen hebben van alle effecten met zijn specificaties.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@CurlyMo dat is nog Chinees voor mij.
Haha ben nu met for loops en arrays de code kleiner aan het maken.
Heb ook het verticaal syndroom verholpen voor je lol.
https://youtu.be/xxaDUhBjsiE
Moest toch een nieuwe maken ivm uitbreiding van de code.
@kitao neem je tijd had hém er op gezet voor het geval je er iets mee wou doen.

[ Voor 77% gewijzigd door jeroen vrij op 11-04-2019 20:08 ]


Acties:
  • +1 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Laatst online: 21:42
jeroen vrij schreef op donderdag 11 april 2019 @ 19:22:
. .
@DonJunior nou idd ben al ff met de code bezig maar gaat de goede kant op.
Ik moet nog even zorgen dat de effecten netjes in elkaar overlopen.
Maar voor iemand die begin maart nog geen eens wist wat c code was heb ik dat biertje nu wel verdient :)
Ben zelf ook ooit eens zo begonnen..
YouTube: Gadgeteer 01 - First LED functions

Regeltje voor regeltje lampjes aansturen haha

*sowieso


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
DonJunior schreef op donderdag 11 april 2019 @ 20:09:
[...]


Ben zelf ook ooit eens zo begonnen..
YouTube: Gadgeteer 01 - First LED functions

Regeltje voor regeltje lampjes aansturen haha
Ik heb gelukkig het voordeel dat ik autodidact ben dus heb snel dingen door.
Ben inmiddels met een 6x6x6 begonnen met 6 shift registers.
Heb de kubus al af.
En zo gaan we door haha.
Tot aan de 16x16x16 rgb.
Lol

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:01
jeroen vrij schreef op donderdag 11 april 2019 @ 20:15:
[...]

Ik heb gelukkig het voordeel dat ik autodidact ben dus heb snel dingen door.
Hoe meer leds hoe meer noodzaak voor overzichtelijk programmeren van je effecten. En mijn Chinees moet toch wel te doen zijn voor een optimistisch autodidact :)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Nou zo op het oog kan ik er helemaal niks mee.
Dan zal ik eerst op moeten zoeken wat het allemaal inhoud en hoe het werkt

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 23:01
jeroen vrij schreef op donderdag 11 april 2019 @ 22:50:
Nou zo op het oog kan ik er helemaal niks mee.
Dan zal ik eerst op moeten zoeken wat het allemaal inhoud en hoe het werkt
Als je begint te lezen vanaf de digitalWrite en dan kijkt waar de verschillende waardes vandaan komen dan moet dat toch wel lukken?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Kan iemand mij hier mee helpen.
code:
1
2
3
4
5
6
7
8
9
For (int i = 0; i <= 20; i++) 
{
For (Number = 200; Number >= 10; Number -10)
{
Doe iets. 
delay(Number);
Doe iets
delay(Number) ;
}}

Hij doet alles netjes 20 x maar hij past de delay niet aan met - 10.

[ Voor 78% gewijzigd door jeroen vrij op 12-04-2019 10:39 ]


Acties:
  • 0 Henk 'm!

  • Vuikie
  • Registratie: December 2003
  • Laatst online: 01-10 08:22
Je 3de statement in de Number(2de) for loop klopt niet. Je trekt 10 van Number af, maar schrijft het resultaat nergens naar toe.

hint:
Bij de eerste for-loop doe je 'i++' Dit is (min of meer) hetzelfde als 'i = i + 1'

[ Voor 26% gewijzigd door Vuikie op 12-04-2019 10:47 ]


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Vuikie schreef op vrijdag 12 april 2019 @ 10:45:
Je 3de statement in de Number(2de) for loop klopt niet. Je trekt 10 van Number af, maar schrijft het resultaat nergens naar toe.

hint:
Bij de eerste for-loop doe je 'i++' Dit is (min of meer) hetzelfde als 'i = i + 1'
Geloof dat ik hem wel snap maar niet weet hoe ik het oplos.
Je bedoelt dat hij de delay is 200 en dan - 10 dus 190 ergens moet onthouden?

Acties:
  • 0 Henk 'm!

  • Goudstalen
  • Registratie: Juni 2012
  • Laatst online: 01-10 15:54
Wat er nu gebeurd is alleen een rekensom (200 - 10 = 190), maar deze wordt niet onthouden. Wat je zoekt is Number = Number - 10. Wanneer je dat uitvoert wordt het laatste resultaat opgeslagen en krijg je een steeds kortere delay bij elke iteratie.

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Ok heb dat toegevoegd maar nu werkt de delay wel.
Alleen blijft hij deze herhalen.
Hij gaat na de 20x niet door met de loop
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
void loop()
{
 Layer1(0);
 Led(1,1,200);
 Led(2,1,200);
 Led(3,1,200);
 Led(4,1,200);
 Led(5,1,200);
 Led(6,1,200);
 Led(7,1,200);
 Led(8,1,200);
 Led(9,1,200);
for (int i = 0; i <= 18; i++)
{
  for (int Number = 200; Number >= 10; Number=Number-10)
{
 Layer2(Number);
 Layer3(Number);
 Layer2(Number);
 Layer1(Number);
}}
 Led(9,0,200);
 Led(8,0,200);
 Led(7,0,200);
 Led(6,0,200);
 Led(5,0,200);
 Led(5,0,200);
 Led(3,0,200);
 Led(2,0,200);
 Led(1,0,200);
 Layer1(1);
}

[ Voor 67% gewijzigd door jeroen vrij op 12-04-2019 11:26 ]


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Opgelost heb de eerste for loop verwijderd nu doet hij het.

Heb de fout al gevonden

[ Voor 159% gewijzigd door jeroen vrij op 12-04-2019 13:39 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
jeroen vrij schreef op donderdag 11 april 2019 @ 20:05:
@CurlyMo dat is nog Chinees voor mij.
Haha ben nu met for loops en arrays de code kleiner aan het maken.
Heb ook het verticaal syndroom verholpen voor je lol.
https://youtu.be/xxaDUhBjsiE
Moest toch een nieuwe maken ivm uitbreiding van de code.
@kitao neem je tijd had hém er op gezet voor het geval je er iets mee wou doen.
Ik ga er zeker naar kijken, hartstikke tof dat je het even doorgeeft. Had gehoopt vandaag mijn projectje te kunnen afronden maar er zit een kink in de kabel en ben er voor vandaag klaar mee en gaat me dus nog een dag kosten om te proberen het op te lossen, of twee :/

Kwam wel iets tegen waarvan ik denk dat je dat eigenlijk ook zou moeten weten als je met matrixxen bezig bent (een kubus is in feite een matrix). Dat is deze pagina, gaat over open collector.

https://www.evilmadscient...s-open-collector-outputs/

Kan ook zijn dat je het al wist, dan heb ik niets gezegd.
Persoonlijk zou ik het eerder genoemde fabrieksvoorbeeld gaan gebruiken voor een 6D kubus maar zoniet dan komt de SN7407N misschien goed van pas.
.

[ Voor 3% gewijzigd door kitao op 12-04-2019 15:21 ]


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
kitao schreef op vrijdag 12 april 2019 @ 15:17:
[...]


Ik ga er zeker naar kijken, hartstikke tof dat je het even doorgeeft. Had gehoopt vandaag mijn projectje te kunnen afronden maar er zit een kink in de kabel en ben er voor vandaag klaar mee en gaat me dus nog een dag kosten om te proberen het op te lossen, of twee :/

Kwam wel iets tegen waarvan ik denk dat je dat eigenlijk ook zou moeten weten als je met matrixxen bezig bent (een kubus is in feite een matrix). Dat is deze pagina, gaat over open collector.

https://www.evilmadscient...s-open-collector-outputs/

Kan ook zijn dat je het al wist, dan heb ik niets gezegd.
Persoonlijk zou ik het eerder genoemde fabrieksvoorbeeld gaan gebruiken voor een 6D kubus maar zoniet dan komt de SN7407N misschien goed van pas.
.
Ah ok.
Ik ben nu bezig met me voeding voeding voor de 6x6x6 cube maar mijn breadboard voeding trekt het niet.
Deze zou 1A moeten kunnen leveren.
Maar als ik alle 6 de 74hc595 + de arduino op de voeding gooi zakt de voeding helemaal in.
Heb hem getest en hij kan max 600ma hebben de voeding :( dus maar even naar de winkel zo een zwaardere halen.
De zwaarste daar is 3A dus ik hoop dat die het wel trekt.
@kitao
Weet iemand trouwens of het mogelijk is om de 0 en 1 om te draaien.
Ik moet voor de layers LOW zetten om hem aan te doen.
Ik gebruik 0 maar kan ik dat omdraaien door een code erbij te zetten.

[ Voor 7% gewijzigd door jeroen vrij op 12-04-2019 18:57 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Op de code ga ik even niet in Jeroen, doe regelmatig een uurtje oefenen om codes te leren lezen maar gaat met steeds meer tegenzin naarmate het steeds complexer wordt.

Heb ondertussen wel jouw code ..

https://github.com/Jeroen...lob/master/3x3x3%20tested

.. getest met dit schema ..

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

.. en die doet het aanvankelijk heel goed, knap gedaan :)

En blijft het ook goed doen alleen valt er ergens een gat waar de 3 rijen aan de rechterkant geen enkel signaal krijgen en dus ook geen ene led gaat branden. Die tussenpoze is te lang, hoewel het daarna gewoon weer verder gaat. Maar zal niet al te moeilijk zijn om dat te vinden hoop ik nu je zelf met je eigen opstelling kunt zien wat er gebeurt.
jeroen vrij schreef op vrijdag 12 april 2019 @ 18:50:
Weet iemand trouwens of het mogelijk is om de 0 en 1 om te draaien.
Ik moet voor de layers LOW zetten om hem aan te doen.
Ik gebruik 0 maar kan ik dat omdraaien door een code erbij te zetten.
Welke nul en één ?
In het schuifregister, in je arduino of op een dobbelsteen ?
.

[ Voor 26% gewijzigd door kitao op 12-04-2019 19:31 ]


Acties:
  • 0 Henk 'm!

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 19-09 22:11
Een waarde inverteren in je code kan nooit moeilijk zijn ;) probeer eens waarde ^ 1 te gebruiken bijvoorbeeld.

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@kitao deze code zal het met jou schema niet juist doen dan moet je de transistor van de layers eraf halen en rechtstreeks op de arduino. Doen.
@nick_haak de als ik ^1 ipv 0 gebruik zegt de compiler
Expected primary expression before ^

[ Voor 25% gewijzigd door jeroen vrij op 12-04-2019 19:49 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
jeroen vrij schreef op vrijdag 12 april 2019 @ 19:41:
@kitao deze code zal het met jou schema niet juist doen dan moet je de transistor van de layers eraf halen en rechtstreeks op de arduino. Doen.
@nick_haak de als ik ^1 ipv 0 gebruik zegt de compiler
Expected primary expression before ^
Hij deed het dus wel anders ga ik dat niet posten, maar ok, het is dus een ander schema.
Zelf noem ik dat het polski-schema, heb er eerder over gepost, heb die ook nagetekend en getest wat goed ging, maar heb er inmiddels zoveel dat het lastig is die terug te vinden. Maar hier is de oorsprong

kitao in "3x3x3 led cube"

Heb die toch gevonden, zat in simu 3.10 ipv simu 2.9

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

Jouw code erin gezet en er lijken inderdaad geen gaten meer te vallen. Wat ik wel zie is dat maar de helft vd matrix wordt gebruikt, no. 5 t/m 8 doen niet mee :/
.

[ Voor 18% gewijzigd door kitao op 12-04-2019 20:04 ]


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@kitao Ja klopt je zal wel licht krijgen ;)
Haha.
Moet de code nog netjes maken.
De effecten netjes in elkaar laten overlopen.
Heb ondertussen ook al de leds voor de analoge klok besteld bij Ali dus het volgende project komt er ook al aan.

.

[ Voor 61% gewijzigd door jeroen vrij op 12-04-2019 21:36 ]


Acties:
  • 0 Henk 'm!

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 19-09 22:11
jeroen vrij schreef op vrijdag 12 april 2019 @ 19:41:
@kitao deze code zal het met jou schema niet juist doen dan moet je de transistor van de layers eraf halen en rechtstreeks op de arduino. Doen.
@nick_haak de als ik ^1 ipv 0 gebruik zegt de compiler
Expected primary expression before ^
Post eens het relevante stukje code als je wil ;) denk dat je het verkeert interpreteert.
code:
1
inverted = value ^ 1


Je bent wel lekker bezig als ik het zo zie (y)

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@nick_haak

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
void Layer(int range,int state, int Number)
{
  switch (range) {
    case 1:    
       digitalWrite(12,1);
       digitalWrite(13,1);
       digitalWrite(range +10, state);
       delay(Number);
      break;
    case 2:
       digitalWrite(11,1);
       digitalWrite(13,1);
       digitalWrite(range +10, state); 
       delay(Number);    
      break;
    case 3:    
       digitalWrite(12,1);
       digitalWrite(11,1);
       digitalWrite(range +10, state);
       delay(Number);  
      break;
  }
}
void loop() 
{
Layer(1,0,100}

Bij layer(1,0,100) =
Int 1 de layer 1-3
Int 0 of 1 aan of uit
Int 3 delay
Ik wil eigenlijk in de case de 0 en 1 al omdraaien
Zodat ik in de loop bij layer 1 invul als o en andersom.
Maar dat mag dan alleen bij layer.
En niet bij de ander cases.

En zeker lekker bezig de code heeft al 589 regels.
Heb eerst globaal de effecten gemaakt
Ga de effecten van nog optimaliseren en de code kleiner maken.

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


Acties:
  • 0 Henk 'm!

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 19-09 22:11
Omdat je een int gebruikt, kun je volgens mij in dit geval niet uit de voeten met een XOR (het ^ tekentje), maar wat natuurlijk wel zou moeten kunnen is
code:
1
state = 1 - state

dan draai je 1 en 0 om :)

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Ja ok dan word de 1 een 0maar dan word 0 een - 1
In de case word 1 laag aan of uit gezet.
De andere 2 lagen gaan altijd uit dus lagen 2 en 3 blijven altijd high als 1 LOW word.
Ik wil dit meer doen omdat het in loop nu heel erg opletten is dat als ik later aan wil zetten ik de 0 moet gebruiken
En bij de leds, Xas, Yas, Xyas, Yxas, Zas. LOL ik de 1 moet gebruiken.
Hier door ga ik vaak de fout in en de loop.
En zoek me dan wezenloos waar de fout zit.
Dus vandaar dat ik de 0 en 1 wil omdraaien en andersom dus 1 en 0

[ Voor 83% gewijzigd door jeroen vrij op 12-04-2019 22:44 ]


Acties:
  • 0 Henk 'm!

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 19-09 22:11
nee hoor, lees nog maar eens goed, ik doe 1 - state, niet state - 1
1 - 0 = 1
1 - 1 = 0

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
nick_haak schreef op vrijdag 12 april 2019 @ 22:41:
nee hoor, lees nog maar eens goed, ik doe 1 - state, niet state - 1
1 - 0 = 1
1 - 1 = 0
OK ja idd zal het proberen.

@nick_haak
Helemaal super het werkt tnx

@kitao heb me git opgeschoond en héb voor jou een transistor versie geplaatst van de codehttps://github.com/JeroenVrij/3x3x3-cube-under-const?files=1

[ Voor 31% gewijzigd door jeroen vrij op 12-04-2019 23:48 ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
jeroen vrij schreef op vrijdag 12 april 2019 @ 22:27:
code:
1
2
3
4
5
6
7
8
void Layer(int range,int state, int Number)
{
  ******* doe iets ********
  }
}
void loop() 
{
Layer(1,0,100}

Bij layer(1,0,100) =
Int 1 de layer 1-3
Int 0 of 1 aan of uit
Int 3 delay
Ik wil eigenlijk in de case de 0 en 1 al omdraaien
Zodat ik in de loop bij layer 1 invul als o en andersom.
Maar dat mag dan alleen bij layer.
En niet bij de ander cases.
range , state en Number zijn de parameters van de functie Layer.
Op regel 8 roep je die aan en geeft de argumenten 1 en 0 en 100 mee.
Dan wordt range = 1 en state = 0 en Number = 100.
Die volgorde kan je niet wijzigen, het eerste argument hoort bij de eerste parameter etc.
Je kan wel op regel 3 **doe iets** iets schrijven zoals 'if state == 0 >>> then state =1.
Maar eigenlijk heeft het aanroepen van een functie meer zin als je vantevoren weet welke waarden je erin wil gooien om te laten bewerken.
Neem bijvoorbeeld een functie die een oppervlakte uitrekent.
f =(int l , int b)
return l x b

dan kan je iedere waarde voor l of b erin stoppen die je wil en je hoeft de opp. niet zelf te berekenen, maar als je breedte of lengte niet vantevoren hebt opgemeten , of een negatief getal meegeeft wat dus niet bestaat voor lengte of breedte, dan heeft geen enkele functie zin.
Met andere woorden, maak gewoon nog een 'call' maar nu met bijvoorbeeld Layer(1,1,100)

Meer over functies
http://www.cplusplus.com/doc/tutorial/functions/
jeroen vrij schreef op vrijdag 12 april 2019 @ 22:45:
@kitao heb me git opgeschoond en héb voor jou een transistor versie geplaatst van de codehttps://github.com/JeroenVrij/3x3x3-cube-under-const?files=1
De code is heel netjes geschreven en bewonder je geduld en doorzettingsvermogen. Heb de code opgeladen in het zelfde transistor schema als in een paar postjes terug en dit zijn mijn bevindingen. De rij-transistors aan de rechterkant blijven constant aan en in het begin levert dat een vrij lang durende blink alles op en dat is misschien niet zo best voor de uno. Verderop in het programma zakt de simulatie-snelheid helemaal terug tot 1%, dat betekent volgens mij dat het programma zich helemaal suf rekent en het te snel gaat, misschien door ontbrekende delays ? En ik schrijf misschien want heb de code niet goed doorgenomen. Ik kan je wel advies geven maar ieder heeft zn eigen stijl. Mijn advies is om bij één onderdeel tegelijk te blijven en die in stappen op te delen. Dus bijv. eerst de 3D transistor kubus goed laten draaien, dan de kubus zonder transistors, dan de 4D en daarna pas de 6D. En dat niet alleen bij de soorten kubussen maar ook met de codes, deze opdelen in blokjes en stuk voor stuk testen en dan uitbreiden.
Aan de andere kant, ik heb jouw video gezien en dat ziet er gewoon helemaal goed uit. :)
Toch zou ik me iets meer focussen op één schakeling of één code tegelijk.
.

[ Voor 32% gewijzigd door kitao op 13-04-2019 03:24 ]


Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
@kitao ik kan wat een ruk programma dat simulide.
Sommige pootje kan je niet een aansluiten van de 74hc595

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
jeroen vrij schreef op zaterdag 13 april 2019 @ 06:15:
@kitao ik kan wat een ruk programma dat simulide.
Sommige pootje kan je niet eens aansluiten van de 74hc595
Veel oefening heb je er voor nodig en dan nog blijft het soms huilen ja, vooral het achter elkaar crashen net als je niks gesaved hebt. Dat is trouwens erger bij 3.10 als bij 2.9 maar ik krijg nu ook een idee op welke handelingen het crasht dus die vermijd ik dan.
Er zijn nog andere dingen die duidelijker worden na verloop van tijd, stel je kan geen draadje aansluiten dan moet je de component iets opzij trekken en dan zie vaak dat een er klein stukje draad aan vastgeplakt zit. Die moet je dan removen en dan lukt het wel. Blauwe pinnen voor Vcc en Gnd zijn niet aan te sluiten.
Toch kan er best veel met dat programma, zie maar onderaan deze pagina

http://simulide.blogspot.com/p/logic-devices.html

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Ik gebruik nu fritzing is ook wel fijn.
Afbeeldingslocatie: https://tweakers.net/ext/f/W97P68YGEZDtAwaJgIJf6xMa/thumb.jpg

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 28-09 14:11
Fritz tekent wel maar simuleert niks zover ik begrepen heb.
Maar toch is het een handig programma, ik heb het ook wel eens gebruikt en jouw tekening is goed gelukt.

http://www.linuxmag.nl/2-...-pcb-s-in-een-handomdraai

Acties:
  • 0 Henk 'm!

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

jeroen vrij

Just a arduino noob

Topicstarter
Jawel kan er alles mee zelfs pcb maken en breadboard
Pagina: 1