Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:andrei.batasev:ioana.priboi [2026/05/12 04:00]
ioana.priboi [Hardware Design]
pm:prj2026:andrei.batasev:ioana.priboi [2026/05/16 20:16] (current)
ioana.priboi [Hardware Design]
Line 58: Line 58:
 | Shift register 74HC595 | 2 | Controlul coloanelor cubului | | Shift register 74HC595 | 2 | Controlul coloanelor cubului |
 | Tranzistor NPN 2N2222 | 4 | Comutarea straturilor cubului | | Tranzistor NPN 2N2222 | 4 | Comutarea straturilor cubului |
-| Rezistor ​220 Ohm | 16 | Limitare curent LED-uri |+| Rezistor ​330 Ohm | 16 | Limitare curent LED-uri |
 | Rezistor 1k Ohm | 4 | Baza tranzistoarelor NPN | | Rezistor 1k Ohm | 4 | Baza tranzistoarelor NPN |
 | LCD 1602 cu modul I2C | 1 | Afișarea modului și timer-ului | | LCD 1602 cu modul I2C | 1 | Afișarea modului și timer-ului |
Line 73: Line 73:
  
  
-== Interconectare hardware ​==+== Schema electrică ​==
  
-Sistemul este construit în jurul plăcii Arduino Nano, bazată pe microcontrollerul ATmega328PArduino controlează cubul LED prin două registre de deplasare 74HC595, folosite pentru cele 16 coloane ale cubului, și prin patru tranzistoare NPN 2N2222, folosite pentru comutarea celor 4 straturi.+{{:​pm:​prj2026:​andrei.batasev:​schema_electrica_priboi_ioana.png?​900|Schema electrica}}
  
-Cubul LED este realizat din 64 de LED-uri albastre, organizate ca matrice 4x4x4. Coloanele verticale sunt anoduri comune, iar straturile orizontale sunt catoduri comune. Astfel, pentru aprinderea unui LED, Arduino setează coloana corespunzătoare prin shift registere și activează stratul dorit prin tranzistorul asociat. 
  
-Cele două shift registere 74HC595 sunt conectate în lanț. Arduino trimite datele serial pe pinul D11, semnalul de clock este pe D12, iar latch-ul este pe D10. Primul registru ​controlează ​coloanele C1-C8, iar al doilea controlează coloanele C9-C16. Fiecare coloană este conectată printr-un rezistor ​de 220 ohm pentru ​limitarea curentului ​prin LED-uri.+Creierul proiectului este plăcuța Arduino Nano V3 CH340 (ATmega328P)Microcontroller-ul controlează ​cubul LED prin două registre ​de deplasare 74HC595, folosite ​pentru ​cele 16 coloane ale cubului, și prin patru tranzistoare NPN 2N2222, folosite pentru comutarea celor 4 straturi
  
-Straturile cubului sunt comutate separat cu tranzistoare NPN. Bazele tranzistoarelor sunt conectate la pinii D2-D5 prin rezistoare ​de 1k ohmemitorii ​sunt legați la GND, iar colectorii ​sunt conectați la catodurile ​comune ​ale straturilorPrin activarea rapidă a straturilorcubul poate afișa animații 3D folosind multiplexare.+Cubul este alcătuit din 64 de LED-uri albastreorganizate ca matrice 4x4x4. Coloanele verticale ​sunt anoduri comune, iar layerele orizontale ​sunt catoduri ​comune. ​Astfelpentru aprinderea unui LED, se setează coloana corespunzătoare prin shift registere ​și se activează stratul corespunzator prin tranzistorul asociat.
  
-Interfața utilizatorului este formată dintr-un LCD 1602 cu modul I2C, patru butoane, un potentiometru și un buzzer pasivLCD-ul folosește magistrala I2C pe pinii A4 și A5potentiometrul ​este citit analogic ​pe A0, iar buzzerul ​este conectat ​pe D6 pentru ​generarea semnalului sonor+Cele două shift registere 74HC595 sunt conectate în lanțMicrocontroller-ul trimite datele serial ​pe pinul D11semnalul de clock este pe D12, iar latch-ul ​este pe D10. Primul shift register controlează coloanele C1-C8, iar al doilea coloanele C9-C16. Fiecare coloană este conectată printr-o rezistența de 330 ohm pentru ​limitarea curentului prin LED-uri.
  
 +Straturile cubului sunt comutate separat cu tranzistoare NPN. Bazele tranzistoarelor sunt conectate la pinii D2-D5 prin rezistențe de 1k ohm, emitorii sunt legați la GND, iar colectorii sunt conectați la catodurile comune ale straturilor. Prin activarea rapidă a straturilor,​ cubul generează animații 3D prin multiplexare.
 +
 +Interfața utilizatorului este formată dintr-un LCD 1602 cu modul I2C, 4 butoane, un potentiometru și un buzzer pasiv. LCD-ul folosește magistrala I2C pe pinii A4 și A5, potentiometrul este citit analogic pe A0 (ADC), iar buzzerul este conectat pe D6 pentru generarea semnalului sonor
  
 == Pini folosiți == == Pini folosiți ==
  
-^ Pin Arduino ^ Componentă ​^ Rol ^ Motivul alegerii ​+^ Pin Arduino ^ Net Label ^ Componenta ​^ Rol ^ De ce l-am ales 
-| D0 | - | RX | Rezervat pentru comunicatia USB/Serial | +| D0 | - | - | RX | Rezervat pentru comunicatia USB/Serial | 
-| D1 | - | TX | Rezervat pentru comunicatia USB/Serial | +| D1 | - | - | TX | Rezervat pentru comunicatia USB/Serial | 
-| D2 | Tranzistor ​S0 Comutare strat 0, jos | Pin digital simplu ​+| D2 | LAYER1_CTRL ​| Tranzistor ​TR1 Control layer L1 (josPini digitali consecutivi pt controlul layerelor ​
-| D3 | Tranzistor ​S1 Comutare strat 1 Pin digital simplu ​+| D3 | LAYER2_CTRL ​| Tranzistor ​TR2 Control layer L2 Pini digitali consecutivi pt controlul layerelor ​
-| D4 | Tranzistor ​S2 Comutare strat 2 Pin digital simplu ​+| D4 | LAYER3_CTRL ​| Tranzistor ​TR3 Control layer L3 Pini digitali consecutivi pt controlul layerelor ​
-| D5 | Tranzistor ​S3 Comutare strat 3, sus | Pin digital simplu ​+| D5 | LAYER4_CTRL ​| Tranzistor ​TR4 Control layer L4 (susPini digitali consecutivi pt controlul layerelor ​
-| D6 | Buzzer pasiv | Semnal sonor | Pin PWM, potrivit ​pentru generarea tonului | +| D6 | BUZZER ​| Buzzer pasiv | Semnal sonor | Pin PWM, pentru generarea tonului | 
-| D7 | BTN_MODE | Schimbare mod | Pin digital ​simplu ​+| D7 | BTN_MODE ​| Buton MODE | Schimbare mod | Pin digital ​cu suport PCINT 
-| D8 | BTN_UP | Creștere ​timer | Pin digital ​simplu ​+| D8 | BTN_UP | Buton UP | Crestere ​timer | Pin digital ​cu suport PCINT 
-| D9 | BTN_DOWN | Scădere ​timer | Pin digital ​simplu ​+| D9 | BTN_DOWN | Buton DOWN | Scadere ​timer | Pin digital ​cu suport PCINT 
-| D10 | 74HC595 - Latch (ST_CP) ​Actualizare ieșiri ​shift register | Pin folosit pentru latch +| D10 | SR_LATCH ​| 74HC595 - RCLK | Latch | L-am grupat cu D11-D12 pt controlul ​shift registerelor ​
-| D11 | 74HC595 - Data (DS) Trimitere date serial | Pin folosit pentru data +| D11 | SR_DATA ​| 74HC595 - SER | Data | L-am grupat cu D10-D12 pt controlul shift registerelor ​
-| D12 | 74HC595 - Clock (SH_CP) ​| Clock pentru ​shift registere | Pin folosit pentru clock +| D12 | SR_CLOCK ​| 74HC595 - SRCLK | Clock | L-am grupat cu D10-D11 pt controlul ​shift registerelor ​
-| D13 | - | Liber | L-am evitat, pentru ca este legat la LED-ul built-in | +| D13 | - | - | - | L-am evitat, pentru ca este legat la LED-ul built-in | 
-| A0 | Potențiometru ​| Citire ​valoare analogică ​| Pin ADC | +| A0 | POT | Potentiometru 10k | Citire ​analogica pt viteza animatii ​| Pin ADC | 
-| A1 | BTN_START/STOP | Pornire/​oprire timer | Pin analogic folosit ca digital | +| A1 | BTN_START_STOP | Buton START/STOP | Pornire/​oprire timer | Pin analogic folosit ca digital, cu suport PCINT 
-| A2 | - | Liber | | +| A2 | - | - | - 
-| A3 | - | Liber | | +| A3 | - | - | - 
-| A4 | LCD I2C - SDA | Date I2C | Pinul SDA hardware al Arduino Nano | +| A4 | LCD_SDA ​| LCD I2C - SDA | Date I2C | Pinul SDA hardware al Arduino Nano | 
-| A5 | LCD I2C - SCL | Clock I2C | Pinul SCL hardware al Arduino Nano |+| A5 | LCD_SCL ​| LCD I2C - SCL | Clock I2C | Pinul SCL hardware al Arduino Nano |
  
 +Am incercat sa pastrez o impartire cat mai logica pentru alegerea pinilor si sa ii aleg consecutivi. Am grupat pinii folositi pentru aceeasi componenta, ca sa fie mai usor de urmarit atat schema, cat si codul. De asemenea, am verificat ca pinii pentru butoane au suport PCINT pe ATmega328P. Astfel pot detecta apasarile fara sa blochez programul principal, iar multiplexarea cubului si timerul pot rula in paralel
  
-== Tabel de conexiuni == 
  
-^ Componentă ^ Conexiune ^ Observații ^ 
-| **Shift Register 1** ||| 
-| SR1 VCC, pin 16 | 5V Arduino | Alimentare | 
-| SR1 GND, pin 8 | GND Arduino | Masă comună | 
-| SR1 OE, pin 13 | GND Arduino | Ieșiri active permanent | 
-| SR1 MR, pin 10 | 5V Arduino | Reset dezactivat | 
-| SR1 DS, pin 14 | D11 Arduino | Linie de date | 
-| SR1 SH_CP, pin 11 | D12 Arduino | Clock | 
-| SR1 ST_CP, pin 12 | D10 Arduino | Latch | 
-| SR1 Q7', pin 9 | SR2 DS, pin 14 | Legătură în lanț către al doilea registru | 
-| SR1 Q0-Q7 | Rezistor 220 ohm -> Coloane C1-C8 | Câte un rezistor pentru fiecare coloană | 
-| **Shift Register 2** ||| 
-| SR2 VCC, pin 16 | 5V Arduino | Alimentare | 
-| SR2 GND, pin 8 | GND Arduino | Masă comună | 
-| SR2 OE, pin 13 | GND Arduino | Ieșiri active permanent | 
-| SR2 MR, pin 10 | 5V Arduino | Reset dezactivat | 
-| SR2 DS, pin 14 | SR1 Q7', pin 9 | Primește datele de la primul registru | 
-| SR2 SH_CP, pin 11 | D12 Arduino | Același clock ca SR1 | 
-| SR2 ST_CP, pin 12 | D10 Arduino | Același latch ca SR1 | 
-| SR2 Q0-Q7 | Rezistor 220 ohm -> Coloane C9-C16 | Câte un rezistor pentru fiecare coloană | 
-| **Tranzistoare NPN** ||| 
-| D2 Arduino | Rezistor 1k ohm -> baza TR1 | Controlează stratul 0 (jos) | 
-| D3 Arduino | Rezistor 1k ohm -> baza TR2 | Controlează stratul 1 | 
-| D4 Arduino | Rezistor 1k ohm -> baza TR3 | Controlează stratul 2 | 
-| D5 Arduino | Rezistor 1k ohm -> baza TR4 | Controlează stratul 3 (sus) | 
-| Emitor TR1-TR4 | GND | Toți emitorii sunt legați la masă | 
-| Colector TR1-TR4 | Catod straturi L0-L3 | Câte un tranzistor pentru fiecare strat | 
-| **LCD 1602 I2C** ||| 
-| VCC | 5V Arduino | Alimentare | 
-| GND | GND Arduino | Masă comună | 
-| SDA | A4 Arduino | Linie date I2C | 
-| SCL | A5 Arduino | Linie clock I2C | 
-| **Buzzer pasiv** ||| 
-| + | D6 Arduino | Semnal PWM pentru ton | 
-| - | GND Arduino | Masă | 
-| **Potențiometru** ||| 
-| Pin 1 | 5V Arduino | Alimentare | 
-| Pin 2, cursor | A0 Arduino | Valoare analogică citită de Arduino | 
-| Pin 3 | GND Arduino | Masă | 
-| **Butoane tactile** ||| 
-| BTN_MODE | D7 Arduino și GND | Folosește INPUT_PULLUP,​ fără rezistor extern | 
-| BTN_UP | D8 Arduino și GND | Folosește INPUT_PULLUP,​ fără rezistor extern | 
-| BTN_DOWN | D9 Arduino și GND | Folosește INPUT_PULLUP,​ fără rezistor extern | 
-| BTN_START/​STOP | A1 Arduino și GND | Folosește INPUT_PULLUP,​ fără rezistor extern | 
-| **Condensatoare** ||| 
-| 100nF nr.1 | VCC și GND SR1 | Montat cât mai aproape de chip | 
-| 100nF nr.2 | VCC și GND SR2 | Montat cât mai aproape de chip | 
-| 100uF | Linia 5V și GND breadboard | Stabilizare generală | 
  
 ===== Software Design ===== ===== Software Design =====
pm/prj2026/andrei.batasev/ioana.priboi.1778547601.txt.gz · Last modified: 2026/05/12 04:00 by ioana.priboi
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