0 0
0
No products in the cart.

Mirsevini në Boson Electronics

Projekti 13 - Numëruesi dixhital

qer 16, 2021 / By Reis Muhameti / in Manuali

Numëruesi dixhital është një ekran me një shifër që rritet me kalimin e kohës. Meqenëse është një numërues me një shifër, fillon nga 0 dhe shkon deri në 9. Projekti 9 duket si një projekt disi i thjeshtë, por ai mëson funksionimin e një ekrani që shpesh përdoret në projekte elektronike.

Jam i sigurt që e keni parë diku këtë sportel. Isshtë bërë me një komponent të quajtur ekran me 7 segmente dhe  përbëhet nga disa LED të shpërndara në segmente, për të formuar karaktere dhe numra. Të gjitha LED-të futen në të njëjtin komponent, ku secila pin korrespondon me një terminal të një LED-je dhe ekziston një terminal i përbashkët që korrespondon me pozitivin e të gjitha LED-ve. Ky lloj i ekranit mund të gjendet në orët dixhitale, radiot e orës etj. 

Ekzistojnë 8 LED në ekran, një për secilin segment (gjurmë) dhe një për pikën.

Vini re se ne kemi 10 kunja, një LED për secilin segment dhe 2 të përbashkët për të gjitha LED, një në secilën anë. Sa më shumë që të kemi 2 kunja të përbashkët, duhet të lidhim vetëm 1 që ekrani të funksionojë.

Për secilin numër, një grup LED LED ndizet në mënyrë që të mbledhë shifrën e dëshiruar. Për shembull, për të bërë numrin 1, ne ndezim LED B dhe C. Për numrin 8, i ndezim të gjitha.

Duke lidhur secilin prej terminaleve LED me një port Arduino ne mund t'i kontrollojmë ato individualisht, duke formuar karaktere dhe numra. Në projektin 14 ne do të ndërtojmë një numërues dixhital me një ekran me 7 segmente që tregon numrat nga 0 në 9 me një interval prej 1 sekondë.

Materiali i nevojshëm

Ekran 1x 7 segmentësh
Rezistor 1x 220 ohm Rezistor
10x Bluzë mashkull-mashkull
1x Kabëll USB
1x Bordi Uno

Montimi

Sikur të ishin disa LED, duhet të vendosim një pin Arduino për secilën pin në ekran. Meqenëse ana pozitive e LED-ve është e përbashkët për të gjithë, na duhet vetëm 1 rezistencë.

Programi 13 i Projektit - Numëruesi dixhital

Programi, edhe pse i gjatë, është mjaft i thjeshtë. Ne thjesht ndezim dhe fikim LED-të, sipas numrit që duam.

 

// Projeto 14 - Contador digital

int segE = 7;
int segD = 8;
int segC = 9;
int segB = 13;
int segA = 12;
int segF = 11;
int segG = 10;

void setup()
{
  pinMode(segE, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segA, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
}

void loop()
{
  acende0();
  delay(1000);
  acende1();
  delay(1000);
  acende2();
  delay(1000);
  acende3();
  delay(1000);
  acende4();
  delay(1000);
  acende5();
  delay(1000);
  acende6();
  delay(1000);
  acende7();
  delay(1000);
  acende8();
  delay(1000);
  acende9();
  delay(1000);
}

void acende0()
{
  digitalWrite(segE, LOW);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, HIGH);  
}
void acende1()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, HIGH);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, HIGH);
  digitalWrite(segF, HIGH);
  digitalWrite(segG, HIGH);  
}
void acende2()
{
  digitalWrite(segE, LOW);
  digitalWrite(segD, LOW);
  digitalWrite(segC, HIGH);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, HIGH);
  digitalWrite(segG, LOW);  
}
void acende3()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, HIGH);
  digitalWrite(segG, LOW);
}
void acende4()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, HIGH);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, HIGH);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}
void acende5()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, HIGH);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}
void acende6()
{
  digitalWrite(segE, LOW);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, HIGH);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}
void acende7()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, HIGH);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, HIGH);
  digitalWrite(segG, HIGH);
}
void acende8()
{
  digitalWrite(segE, LOW);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}
void acende9()
{
  digitalWrite(segE, HIGH);
  digitalWrite(segD, LOW);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}

Gabime të mundshme

Nëse projekti nuk funksionon, kontrolloni disa nga gabimet e mundshme:

  • Nëse ekrani nuk ndez asnjë LED, kontrolloni lidhjen e kunjit të zakonshëm;
  • Nëse ekrani nuk ndez asnjë segment, kontrolloni lidhjen e atij segmenti;
  • Kontrolloni që kërcyesit të jenë në të njëjtën kolonë me terminalet përbërës, duke bërë kështu lidhjen;
  • Kontrolloni që kërcyesit të jenë të lidhur me kunjat e saktë në Arduino;
  • Kontrolloni që kodi të jetë ngarkuar në bord përmes Arduino IDE.

Sfidat

Më poshtë janë disa sfida që mund të provoni!

  • Modifikoni kohën e shfaqjes midis një numri dhe një tjetri duke ndryshuar vlerat në  vonesë (1000); për shembull  vonesa (350);
  • Modifikoni rendin e shfaqjes së numrave duke numëruar poshtë;
  • Vizatoni shkronja në ekran duke krijuar funksione të reja për to. Për shembull shkronja A:

void shkronjaA()
{
  digitalWrite(segE, LOW);
  digitalWrite(segD, HIGH);
  digitalWrite(segC, LOW);
  digitalWrite(segB, LOW);
  digitalWrite(segA, LOW);
  digitalWrite(segF, LOW);
  digitalWrite(segG, LOW);
}