@T-BAEV: Met een uC, via een library. Ik was al begonnen met het implementeren om via de pc tekst te sturen, toen kwam ik bij toeval deze library tegen en vond dat eigenlijk veel leuker.
@Nick: DIt motortje heeft een holle draai-as, slecht uitegelegd.
De minpool loopt via de buitenkant, via een sleepcontact. De pluspool loopt via de binnenste pin. Deze is intern aan de plus van de motor gekoppeld. (ook via sleep contact denk ik).
Ik heb voor 2,- een led-spin geval van ebay gekocht, waar dit motortje in zat.
@Pros: Ik ben altijd onder de indruk van uw kennis van bijna alles dus danku.
@Stijn/Nick: Elk karakter bestaat uit 7 rijen en 5 kolommen (net zoals bij een LCDtje). Per karakter heb ik 5 bytes in gebruik, elke byte bevat de aan/uit informatie van de leds, voor 1 kolom. Ik doe ongeveer dit:
code:
Voor elk karakter in string {
voor elke kolom in huidige karakter {
voor elke rij in huidige kolom {
led1 is eerste bit; led2 is 2e bit, etc..
}
}
}
De code hiervoor heb ik hier even gepost: http://pastebin.ca/1710067
Zoals je ziet gebruik ik een loop om de byte in bits/leds te splitsen. Dit duurt ongeveer 400us, dus er is geen extra delay nodig om de waarde vast op de LEDs te houden (en dus een bepaalde breedte pixel te krijgen). Ik doe via een loop omdat dit minder ROM gebruikt. Als je het zo doet:
c code:
RA2_bit = ~((alphabet[CHARACTER_SELECT][(NUM_CHAR_COL - 1) - i] >> 6) & 0x01);
RA3_bit = ~((alphabet[CHARACTER_SELECT][(NUM_CHAR_COL - 1) - i] >> 5) & 0x01);
etc...
gaat het veelveelveel sneller.