aboutsummaryrefslogtreecommitdiff
path: root/software/readme.md
blob: dbe77d2d99def451f327e6b2a8b99714f705f317 (plain)
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
# software readme

onze ledcube is iets anders dan de gemiddelde ledcube. onze leds zijn
aangesloten als een 8x8 matrix waarbij alle anodes in rijen, en alle cathodes
in kolommen zijn verbonden. hierdoor gebruikt onze ledcube maar acht
weerstanden inplaats van zestien, en geen transistoren of mosfets. ook worden
maar drie uitgangen van de arduino gebruikt voor de seriële ingang, seriële
klok, en de latch klok van het shiftregister.

de software is als gevolg hierdoor ook anders ingericht. de atmega328p heeft
ingebouwde pwm timers, die je zou kunnen gebruiken om snel door de vier lagen
van de ledcube heen te schakelen. omdat deze timers los van je code draaien kun
je de ingebouwde `delay()` gewoon gebruiken om de animaties makkelijker te
implementeren, maar dit werkt alleen wanneer je transistoren gebruikt en ze
direct op pwm uitgangen aansluit.

daarom gebruikt onze software geen `delay()` of andere 'blokkerende' functies,
maar timers. dit zorgt ervoor dat de ingebouwde `loop()` functie van de arduino
vaak genoeg draait om het te laten lijken alsof alle led's van de ledcube
tegelijkertijd aan zijn.

het project is opgesplitst in losse bestanden om overzichtelijkheid te
behouden. alle documentatie bevindt zich in de header (.h) bestanden, is in het
engels, en is in doxygen formaat. hier is een beknopte beschrijving van de
bestanden:

```
.
├── animation.h      --
├── animation.ino    helpfuncties voor animaties
├── consts.h         algemene constantes
├── effects.h        bevat ook opties voor de diavoorstelling van animaties
├── effects.ino      de animaties die weergeven worden
├── readme.md        dit bestand
├── scan.h           --
├── scan.ino         functies omtrent het schakelen van de rijen
├── shift.h          --
├── shift.ino        functies die het shiftregister besturen
├── software.h       --
├── software.ino     hoofdbestand/ingangspunt
├── util.h           --
└── util.ino         gereedschapsfuncties
```

ik (loek) heb de software voor het laatst op vrijdag getest, dus ik weet niet
zeker of mijn code voor de animaties helemaal werkt, maar ik ga deze maandag
testen en bijwerken. dit is dus nog geen afgewerkte code.