De Arduino LED kubus! (5 / 7 stap)

Stap 5: Programmering tijd!

Ik vond dit geweldig programma hier:

http://www.stationinthemetro.com/index.php/archives/2008/01/19/makedc-LED-Cube-workshop/

Ik zal bespaart u een reis en de postcode hier. Deze belasting tot arduino via de arduino omgeving die u op arduino.cc (een website downloaden kunt).

Gebaseerd op ledcube.c van zorg: 7 September 2007 weekend podcast
http://blog.makezine.com/Archive/2007/09/make_a_pocket_led_cube_we.html

Aangepaste animatie geprogrammeerd door Mark Boszko, http://stationinthemetro.com
*/

#include < avr/pgmspace.h > / / maakt gebruik van PROGMEM voor het opslaan van patronen in flash

#define CUBESIZE 3
#define PLANESIZE CUBESIZE * CUBESIZE
#define PLANETIME 3333 / / tijd elk vliegtuig wordt weergegeven in ons -> 100 Hz vernieuwen
#define TIMECONST 20 / / vermenigvuldigt DisplayTime om ms - waarom niet = 100?

LED patroon tabel in PROGMEM - laatste kolom is tijd weergeven in 100ms eenheden
TODO dit zou een stuk compacter maar niet met binaire patroon vertegenwoordiging
prog_uchar PROGMEM PatternTable [] {} =
knipperen in- en uitschakelen
B111 B111 B111, B111, B111, B111, B111, B111, B111, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B000, 1,
Elke LED Flash in volgorde:
Links -> rechter kolom, dan Top -> onderste rij, dan Opper -> lagere vliegtuig
B100 B000 B000, B000, B000, B000, B000, B000, B000, 1,
B010, B000 B000, B000, B000, B000, B000, B000, B000, 1,
B001 B000 B000, B000, B000, B000, B000, B000, B000, 1,
B000 B100, B000, B000, B000, B000, B000, B000, B000, 1,
B000, B010, B000, B000, B000, B000, B000, B000, B000, 1,
B000 B001 B000, B000, B000, B000, B000, B000, B000, 1,
B000 B000 B100, B000, B000, B000, B000, B000, B000, 1,
B000 B000, B010, B000, B000, B000, B000, B000, B000, 1,
B000 B000 B001, B000, B000, B000, B000, B000, B000, 1,
B000 B000 B000, B100, B000, B000, B000, B000, B000, 1,
B000 B000 B000, B010, B000, B000, B000, B000, B000, 1,
B000 B000 B000, B001, B000, B000, B000, B000, B000, 1,
B000 B000 B000, B000, B100, B000, B000, B000, B000, 1,
B000 B000 B000, B000, B010, B000, B000, B000, B000, 1,
B000 B000 B000, B000, B001, B000, B000, B000, B000, 1,
B000 B000 B000, B000, B000, B100, B000, B000, B000, 1,
B000 B000 B000, B000, B000, B010, B000, B000, B000, 1,
B000 B000 B000, B000, B000, B001, B000, B000, B000, 1,
B000 B000 B000, B000, B000, B000, B100, B000, B000, 1,
B000 B000 B000, B000, B000, B000, B010, B000, B000, 1,
B000 B000 B000, B000, B000, B000, B001, B000, B000, 1,
B000 B000 B000, B000, B000, B000, B000, B100, B000, 1,
B000 B000 B000, B000, B000, B000, B000, B010, B000, 1,
B000 B000 B000, B000, B000, B000, B000, B001, B000, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B100, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B010, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 10,

Sommige kleine kubus - grote kubus plezier
B000 B000 B000, B000, B011, B011, B000, B011, B011, 10,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 10,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 2,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 2,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 2,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 2,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 2,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 2,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 1,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B110 B110, B000, B110, B110, B000, B000, B000, B000, 1,
B100 B000 B000, B000, B000, B000, B000, B000, B000, 1,
B110 B110, B000, B110, B110, B000, B000, B000, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 1,
B000 B000 B000, B000, B011, B011, B000, B011, B011, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B110 B110, B000, B110, B110, B000, B000, B000, B000, 1,
B100 B000 B000, B000, B000, B000, B000, B000, B000, 1,
B110 B110, B000, B110, B110, B000, B000, B000, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000, B011, B011, B000, B011, B011, B000, B000, B000, 1,
B000 B000 B001, B000, B000, B000, B000, B000, B000, 1,
B000, B011, B011, B000, B011, B011, B000, B000, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000 B000 B000, B110, B110, B000, B110, B110, B000, 1,
B000 B000 B000, B000, B000, B000, B100, B000, B000, 1,
B000 B000 B000, B110, B110, B000, B110, B110, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000, B011, B011, B000, B011, B011, B000, B000, B000, 1,
B000 B000 B001, B000, B000, B000, B000, B000, B000, 1,
B000, B011, B011, B000, B011, B011, B000, B000, B000, 1,
B111 B111 B111, B111, B111, B111, B111, B111, B111, 1,
B000 B000 B000, B110, B110, B000, B110, B110, B000, 1,
B000 B000 B000, B000, B000, B000, B100, B000, B000, 1,
B000 B000 B000, B110, B110, B000, B110, B110, B000, 1,

Diagonal wipe, beginnend in het midden
B111 B111 B111, B111, B111, B111, B111, B111, B111, 5,
B111 B111 B111, B111, B111, B111, B111, B101, B111, 1,
B111 B111 B111, B111, B101, B111, B111, B101, B111, 1,
B111 B111 B111, B111, B101, B111, B111, B100, B111, 1,
B111 B101, B111, B111, B100, B111, B111, B100, B110, 1,
B111 B101, B111, B111, B100, B111, B111, B100, B110, 1,
B111, B011, B111, B111, B100, B110, B111, B100, B100, 1,
B111 B100, B110, B111, B100, B100, B111, B100, B000, 1,
B111 B100, B100, B111, B100, B000, B111, B000, B000, 1,
B111 B100, B000, B111, B000, B000, B011, B000, B000, 1,
B111 B000 B000, B011, B000, B000, B001, B001, B000, 1,

Breed diaginal 2-LED-streep die draait om de kubus
B011, B000 B000, B001, B001, B000, B000, B001, B001, 1,
B001 B001 B000, B000, B001, B001, B000, B000, B011, 1,
B000 B001 B001, B000, B000, B011, B000, B000, B110, 1,
B000 B000, B011, B000, B000, B110, B000, B100, B100, 1,
B000 B000 B110, B000, B100, B100, B100, B100, B000, 1,
B000 B100, B100, B100, B100, B000, B110, B000, B000, 1,
B100 B100, B000, B110, B000, B000, B011, B000, B000, 1,
B110 B000 B000, B011, B000, B000, B001, B001, B000, 1,

Nu, met het centrum flashies, voor smaak
B011, B000 B000, B001, B001, B000, B000, B011, B001, 1,
B001 B001 B000, B000, B001, B001, B000, B000, B011, 1,
B000 B001 B001, B000, B000, B011, B000, B010, B110, 1,
B000 B000, B011, B000, B000, B110, B000, B100, B100, 1,
B000 B000 B110, B000, B100, B100, B100, B110, B000, 1,
B000 B100, B100, B100, B100, B000, B110, B000, B000, 1,
B100 B100, B000, B110, B000, B000, B011, B010, B000, 1,
B110 B000 B000, B011, B000, B000, B001, B001, B000, 1,
B011, B000 B000, B001, B011, B000, B000, B001, B001, 1,
B001 B001 B000, B000, B001, B001, B000, B000, B011, 1,
B000 B001 B001, B000, B010, B011, B000, B000, B110, 1,
B000 B000, B011, B000, B000, B110, B000, B100, B100, 1,
B000 B000 B110, B000, B110, B100, B100, B100, B000, 1,
B000 B100, B100, B100, B100, B000, B110, B000, B000, 1,
B100 B100, B000, B110, B010, B000, B011, B000, B000, 1,
B110 B000 B000, B011, B000, B000, B001, B001, B000, 1,
B011, B010, B000, B001, B001, B000, B000, B001, B001, 1,
B001 B001 B000, B000, B001, B001, B000, B000, B011, 1,
B000, B011, B001, B000, B000, B011, B000, B000, B110, 1,
B000 B000, B011, B000, B000, B110, B000, B100, B100, 1,
B000, B010, B110, B000, B100, B100, B100, B100, B000, 1,
B000 B100, B100, B100, B100, B000, B110, B000, B000, 1,
B100 B110, B000, B110, B000, B000, B011, B000, B000, 1,
B110 B000 B000, B011, B000, B000, B001, B001, B000, 1,

Het verpakken omhoog
B001 B001 B000, B000, B001, B001, B000, B000, B001, 1,
B001 B001 B000, B000, B001, B001, B000, B000, B001, 1,
B000 B001 B001, B000, B000, B001, B000, B000, B001, 1,
B000 B000 B001, B000, B000, B001, B000, B000, B001, 1,
B000 B000 B000, B000, B000, B001, B000, B000, B001, 1,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B000, 3,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B000, 3,
B000 B000 B000, B000, B000, B000, B000, B000, B001, 5,
B000 B000 B000, B000, B000, B000, B000, B000, B000, 3,

Dit is een dummy element voor het einde van de tabel (duur = 0)
B000 B000 B000, B000, B000, B000, B000, B000, B000, 0
};

/*
** Definiëren pinnen in matrix maakt het gemakkelijker om te herschikken hoe kubus is bedraad
** Pas hier nummers totdat LEDs flash in volgorde - L naar R, T b
** Opmerking dat analoge ingangen 0-5 ook digitale uitgangen 14-19 zijn!
** Pin DigitalOut0 (seriële RX) en AnalogIn5 zijn open gelaten voor toekomstige apps
*/

int [LEDPin] = {16, 3, 1, 15, 4, 6, 14, 5, 7};
int [PlanePin] = {19, 18, 17};

initialisatie
VOID Setup
{
int pin; lus teller
LED-pinnen als uitgang (active HIGH) instellen
voor (pin = 0; pin < PLANESIZE; pin ++) {}
pinMode (LEDPin [pin], uitvoer);
}
instellen van vliegtuig-pinnen als uitgangen (actieve laag)
voor (pin = 0; pin < CUBESIZE; pin ++) {}
pinMode (PlanePin [pin], uitvoer);
}
}

patroon in tabel weergeven totdat DisplayTime ingesteld op nul is (en herhaal vervolgens)
void loop
{
variabelen declareren
byte PatternBuf [PLANESIZE]; Hiermee slaat u de huidige patroon van PatternTable
int PatternIdx;
byte DisplayTime; tijd * 100ms patroon weergeven
niet-ondertekende lange EndTime;
int vliegtuig; lus teller voor kubus vernieuwen
int patbufidx; welke byte van patroonbuffer indexen
int ledrow; graven LEDs in vernieuwen lus
int ledcol; graven LEDs in vernieuwen lus
int ledpin; graven LEDs in vernieuwen lus

Initialiseren van de PatternIdx naar begin van patroon tabel
PatternIdx = 0;
lus op vermeldingen in de tabel van de patroon - terwijl DisplayTime > 0
{}
patroon van de PROGMEM leest en opslaan in array
memcpy_P (PatternBuf, PatternTable + PatternIdx, PLANESIZE);
PatternIdx += PLANESIZE;
DisplayTime van de PROGMEM en increment index leest
DisplayTime = pgm_read_byte_near (PatternTable + PatternIdx ++);
berekenen van de eindtijd van de huidige tijd (ms) en DisplayTime
EndTime = millis() + ((unsigned long) DisplayTime) * TIMECONST;

lus while DisplayTime > 0 en huidige tijd < EndTime
terwijl (millis() < EndTime) {}
patbufidx = 0; index teller instellen aan het begin van de buffer
lus over vliegtuigen
voor (vliegtuig = 0; vliegtuig < CUBESIZE; vliegtuig ++) {}
vorige vliegtuig uitschakelen
Als (vliegtuig == 0) {}
digitalWrite (PlanePin [CUBESIZE-1], hoge);
} else {}
digitalWrite (PlanePin [vliegtuig-1], hoge);
}

huidige vliegtuig patroon gegevens laden in havens
ledpin = 0;
voor (ledrow = 0; ledrow < CUBESIZE; ledrow ++) {}
voor (ledcol = 0; ledcol < CUBESIZE; ledcol ++) {}
digitalWrite (LEDPin [ledpin ++], PatternBuf [patbufidx] & (1 << ledcol));
}
patbufidx ++;
}

huidige vliegtuig inschakelen
digitalWrite (PlanePin [vliegtuig], laag);
vertraging PLANETIME ons
delayMicroseconds (PLANETIME);
} / / voor vliegtuig
} / / terwijl < EndTime
} terwijl (DisplayTime > 0); lezen van patronen tot tijd = 0 die einde signalen
}
{6 Reacties & Lees ze hieronder of Voeg een}

Gerelateerde Artikelen

Arduino LED kubus

Arduino LED kubus

Dit project vereist sommige solderen expertise, maar zijn een eenvoudig en perfect voor beginners van de Arduino.Stap 1: onderdelen Ik gebruikte onderdelen:* arduino UNO* PCB boord* 64 x diffuus LEDs* draden van ethernet-kabel* 20 x mannelijke pinnen
DIY | 3 x 3 x 3 LED kubus voor Arduino Nano +

DIY | 3 x 3 x 3 LED kubus voor Arduino Nano +

Hi iedereen!Mijn naam is RGBFreak en ik een YouTube-kanaal vrij recent gemaakt.Ik hou van DIY en ik hou vooral van LED's, dus daarom heb ik besloten om mijn eigen 3 x 3 x 3 LED kubus!U moet de volgende items te maken van deze LED-kubus:• 27 enkele ge
LED kubus met Arduino en aangepaste PCB

LED kubus met Arduino en aangepaste PCB

dit instructable details over het ontwerp en bouwproces voor een 5 x 5 x 5 LED-kubus, instelbaar met behulp van een Arduino, die zich op een aangepaste printplaat bevindt.Extra informatie, foto's en video's vindt u op mijn website.Het afgewerkt produ
ARDUINO UNO LED kubus dansen lichten

ARDUINO UNO LED kubus dansen lichten

laat zien hoe maak je dansende lichten LED kubus met behulp van de arduino uno.Voor dit project arduino uno is must en 64 LED's u nodig hebt voor uw kleurkeuze.Ik heb blauwe LED's gebruikt voor dit project.U wilt alle soldeer 64 leidde de laag voor l
5 x 5 x 5 LED kubus draaien op Arduino Uno

5 x 5 x 5 LED kubus draaien op Arduino Uno

Hallo vrienden, dit is mijn nemen op een 5 x 5 x 5 LED kubus, laat aan de slag.Het eerste wat dat we moeten doen is krijgen al onze leveringen.We gonna nodig...:125 LEDs (zorg ervoor dat ze zijn rood of geel of de arduino zal niet zitten kundig voor
Hoe het bouwen van een 8 x 8 x 8 LED kubus en controle met een Arduino

Hoe het bouwen van een 8 x 8 x 8 LED kubus en controle met een Arduino

er zijn een heleboel LED kubussen op Instructables, dus waarom doen andere? De meeste zijn voor kleine blokjes, bestaande uit 27 of 64 LEDs, zelden groter, omdat ze beperkt tot het aantal uitgangen beschikbaar op de microcontroller zijn. Deze kubus i
3 x 3 x 3 LED kubus met Arduino Lib

3 x 3 x 3 LED kubus met Arduino Lib

er zijn andere Instructables over het bouwen van LED-cubes, deze is verschillend voor verschillende redenen:1. het opgebouwd met een laag aantal overal verkrijgbare componenten en haken rechtstreeks naar de Arduino.2. een duidelijke en gemakkelijk te
4 x 4 x 4 interactieve LED-kubus met Arduino

4 x 4 x 4 interactieve LED-kubus met Arduino

om uit te leggen mijn 4 x 4 x 4 interactieve LED-kubus gepubliceerd voordat, een beetje meer duidelijk, zal ik proberen om mijn eerste stap voor stap instructable.Deze 4 x 4 x 4 kubus is interactief met behulp van de hoek van de top vier LED's als LE
Eenvoudige 3 x 3 x 3 LED kubus met Arduino

Eenvoudige 3 x 3 x 3 LED kubus met Arduino

Dit is mijn eerste instructable Geef feedback zo gelieve in de commentaren.Bij het bekijken van veel LED kubus tutorials, die het leek alsof ze te ingewikkeld en als ze niet genoeg detail geven over hoe om ze te bouwen. Ook de pick gecontroleerd dege
3 x 3 LED kubus programmering tips (Arduino gebaseerd)

3 x 3 LED kubus programmering tips (Arduino gebaseerd)

hoe maak je dat kubus doen wat je wilt het!Mij volger naar de instructable hier en een 3 x 3 LED kubus geleid door een Arduino gebouwd. Ik was erg blij! Maar het kan alleen een routine. Opnieuw en opnieuw en opnieuw en opnieuw en opnieuw... Dus heb i
De 4 x 4 x 4 LED kubus (Arduino)

De 4 x 4 x 4 LED kubus (Arduino)

In dit instructable ik zal u tonen hoe maak je een 4 x 4 x 4 LED-kubus, die zal worden gecontroleerd door een Arduino Demulionove. nu ja je zou kunnen zeggen"dat Arduino slechts 14 I/O pinnen ook de 6 analoge pinnen heeft kan worden gebruikt als 15,1
3 x 3 x 3 LED kubus Arduino-UNO

3 x 3 x 3 LED kubus Arduino-UNO

Bent u belang om uw eigen 3 x 3 x 3 LED kubus te brengen???Bent u beginner maakt niet uitU bent de juiste stappen te volgen. Het is eenvoudig en gemakkelijk.Laat me u tonen hoe!Stap 1: Wat heb je nodig1 x Arduino uno27 x LED's (ik gebruik 3 kleuren,
Eenvoudige Led kubus 5 x 5 x 5 Arduino

Eenvoudige Led kubus 5 x 5 x 5 Arduino

Hallo vriend :), dit is mijn eerste posting op instructables Led kubus 5 x 5 x 5 met Arduino,Nu wil ik om te delen van dit project, moeten we enkele component zoals:-Led rood 5mm 125 stuks-IC SiftRegister 74HC595 4 stuks-Socket 16P 4 dlg-Transistor B
5 x 5 LED kubus (Arduino Uno)

5 x 5 LED kubus (Arduino Uno)

Dit is een stap voor stap uitleg over het bouwen van een 5 x 5 LED kubus met behulp van een arduino. Ik heb dit project voor mijn undergraduate elektronica-klasse en het kostte me ongeveer 2 weken om te voltooien.Opmerking: Blijkbaar een aantal koppe