Led Cube 3D

Introducere

Proiectul urmăreşte realizarea unui display tridimensional format din 64 de leduri. Cubul este format din 4 nivele, fiecare conţinând 16 leduri albe. Fiecare led din cele 64 va putea fi controlat individual pentru a crea efecte şi animaţii 3D. Ledurile vor fi controlate cu ajutorul microcontroller-ului Atmel AT Mega 16 folosit la etapa I. Deoarce AT Mega 16 nu are destui pini pentru a putea controla individual fiecare led va trebui să găsim o soluţie pentru a putea face acest lucru.

Hardware Design

Controlul individual al celor 64 de leduri fără a avea nevoie pentru fiecare led de câte două fire se realizează prin multiplexare. Multiplexarea este un proces în care mai multe semnale analogice sau fluxuri de date digitale sunt combinate într-un semnal pe un mediu comun.

În acest fel pot controla toate cele 64 de leduri individual la un anumit moment de timp, folosind doar 16 fire de legătură, implicit doar 16 pini ai microcontrollerului. Alte 4 fire respectiv pini vor fi folosite pentru a controla fiecare, un tranzistor.

Soluţia aleasă este următoarea:

  1. Având 4 planuri a câte 16 leduri, crez un punct de masă comun pentru fiecare dintre cele 4 planuri. Astfel toţi catozii(-) ledurilor pentru un nivel se vor uni într-un punct comun.
  2. Fiecare punct de masă , aferent planului respectiv va fi controlat de un tranzistor BC 338. Astfel când baza acestuia va fi parcursă de un curent se închide circuitul respectiv.
  3. Fiecare pin din cei 16 controlează practic o coloană a cubului, iar în funcţie de ce plan de masă (circuit) alegem să închidem se va aprinde ledul în consceinta. Astfel dacă vrem să aprindem un singur led, închidem circuitul aferent planului pe care se află ledul (dăm valoarea 1 portului care controlează respectivul tranzistor) şi selectam coloană pe care se află ledul (dăm valoarea 1 portului care controlează respectivă coloană).

De reţinut este faptul că fiecare ieşire a microprocesorului furnizează 5V. Pentru aputea aprinde corect ledurile am ales pentru fiecare (coloană) o rezistenţă de 220Ω . Pentru a putea controla bază tranzistoarelor, am folosit câte un rezistor de 1,5KΩ.

  • Am utilizat următoarele componente:
Componente Nr. Bucăți
Leduri superluminoase 64
Rezistențe 220Ω 16
Tranzistori BC336-16 4
Rezistenţe 1.5KΩ 4
Plăcuţă de test 1
Bandă conductoare 1m
Barete tată 2
  • Schemă Electrică:

Software Design

Mediu de dezvoltare

Software

Codul conţine fişierele C:

main.c    /** fișierul principal */

effect.c  /** animaţiile care vor apărea când cubul este pus în funcţiune */

draw.c    /** definite funcţii geometrice */

frames.c. /** cele 6 frame-uri ale unei linii care se deplasează în jurul centrului cubului */

Rezultate Obţinute

The Adobe Flash Plugin is needed to display this content.

Concluzii

Proiectul este funcţional atât hardware cât şi software. Construcţia fizică a cubului a ridicat unele probleme întrucât a trebuit să lipesc 64 de leduri între ele într-o structură cubică, ca în imagini. Spaţiul dintre nivele fiind foarte limitat am întâlnit unele dificultăţi în a ajunge cu letcon-ul în unele locuri.

În urma acestui proiect am constatat că:

  • Dacă ne tremură mână nu reuşim să lipim corect.
  • Dacă nu folosim fire de culori diferite ne va fi foarte greu la debug.
  • Putem arde un LED.
  • Am descoperit că letcon-ul chiar arde ^_^

Per total proiectul a meritat efortul depus, dar aveţi grijă să vă apucaţi din timp de lipit. Mie personal mi-a luat cam >15ore cu tot cu debug.

Download

Programarea microcontrelerului am realizat-o cu ajutorul programului WinAvr, care include compilatorul GNU GCC pentru limbajele C şi C++.

Partea de software este bazată pe codul scris de Christian Moen. Codul a fost adaptat pentru a funcţiona pe hardware-ul descris mai sus.

Codul folosit este accesibil aici : morozanion.zip

Bibliografie/Resurse

pm/prj2011/dloghin/led_cube.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0