ATtiny85 POV Display (9 / 10 stap)

Stap 9: Verklaring van de code


 int delayTime = 1; //The delay time between sub characters int charBreak = 2.1; //The delay between different characters 

De bovenstaande 2 vertragingstijden moeten worden aangepast zoals vereist. Wijzig deze totdat u de gewenste weergave die u wilt, de breedte van elk gedeelte van de brief het verhogen van de delayTime zal toenemen, overwegende dat verhoging van de charBreak zullen vergroten de ruimte tussen 2 letters.

 int LED1 = 0; //Defining which pins the LEDs are attached to int LED2 = 1; int LED3 = 2; int LED4 = 3; int LED5 = 4; 
 void setup() { pinMode(LED1, OUTPUT); //Setting LED1 as output pinMode(LED2, OUTPUT); //Setting LED2 as output pinMode(LED3, OUTPUT); //Setting LED3 as output pinMode(LED4, OUTPUT); //Setting LED4 as output pinMode(LED5, OUTPUT); //Setting LED5 as output } 
 int a[] = {1, 6, 26, 6, 1}; // These are the integers that help us display the letter A int b[] = {31, 21, 21, 10, 0}; int c2[] = {14, 17, 17, 10, 0}; int d[] = {31, 17, 17, 14, 0}; int e[] = {31, 21, 21, 17, 0}; int f[] = {31, 20, 20, 16, 0}; int g[] = {14, 17, 19, 10, 0}; int h[] = {31, 4, 4, 4, 31}; int i[] = {0, 17, 31, 17, 0}; int j[] = {0, 17, 30, 16, 0}; int k[] = {31, 4, 10, 17, 0}; int l[] = {31, 1, 1, 1, 0}; int m[] = {31, 12, 3, 12, 31}; int n[] = {31, 12, 3, 31, 0}; int o[] = {14, 17, 17, 14, 0}; int p[] = {31, 20, 20, 8, 0}; int q[] = {14, 17, 19, 14, 2}; int r[] = {31, 20, 22, 9, 0}; int s[] = {8, 21, 21, 2, 0}; int t[] = {16, 16, 31, 16, 16}; int u[] = {30, 1, 1, 30, 0}; int v[] = {24, 6, 1, 6, 24}; int w[] = {28, 3, 12, 3, 28}; int x[] = {17, 10, 4, 10, 17}; int y[] = {17, 10, 4, 8, 16}; int z[] = {19, 21, 21, 25, 0}; 

De 5 verschillende gehele getallen komen overeen met de 5 termijnen die deel van elke letter uitmaken.

(In de 2e stap van dit instructable ik gebruikte 3 termijnen te halen met de letter E, hier gebruiken we 5 termijnen)

 int eos[] = {0, 1, 0, 0, 0}; int excl[] = {0, 29, 0, 0, 0}; int ques[] = {8, 19, 20, 8, 0}; 
 void displayLine(int line) { int myline; myline = line; if (myline>=16) {digitalWrite(LED1, HIGH); myline-=16;} else {digitalWrite(LED1, LOW);} if (myline>=8) {digitalWrite(LED2, HIGH); myline-=8;} else {digitalWrite(LED2, LOW);} if (myline>=4) {digitalWrite(LED3, HIGH); myline-=4;} else {digitalWrite(LED3, LOW);} if (myline>=2) {digitalWrite(LED4, HIGH); myline-=2;} else {digitalWrite(LED4, LOW);} if (myline>=1) {digitalWrite(LED5, HIGH); myline-=1;} else {digitalWrite(LED5, LOW);} } 

Dit is het belangrijkste deel van de code waarin wordt uitgelegd welke alle het nummer vermeldden wij boven gemiddelde,

Bijvoorbeeld laat x een geheel getal zijn. Als x groter dan is of gelijk zijn aan 16, dan LED1 draait op en we 16 van x aftrekken, nu blijkt als (x-16) groter dan of gelijk is aan 8, LED2 draait op zo goed samen met LED1 is en wij 8 aftrekken, nu als (x-24) groter dan of gelijk aan 4 is, LED3 op samen met LED1 en LED2, enzovoort...

Als op een willekeurig exemplaar kleiner dan het opgegeven aantal is, dan dat LED is uitgeschakeld en gaan we over tot de volgende stap zonder af te trekken van een willekeurig getal.

Ex: Laat nemen 18, nu is het groter is dan 16, daarom LED1 is ingeschakeld, nu op 16 we hebben aftrekken 2, 2 is minder dan 8 dus LED2 uitstaat, nu 2 minder dan 4 is dus LED3 uitstaat, nu 2 groter dan is of gelijk is aan 2, dus LED4 brandt, en op 2 af te trekken hebben wij 0 die kleiner dan 1 is , dus LED5 is uitgeschakeld.

Op deze wijze kunnen we verschillende gehele getallen om te zetten in- en uitschakelen verschillende LEDs als wij vereisen toewijzen.

Laat Neem bijvoorbeeld de letter H, de gehele getallen zijn 31,4,4,4,31;

Dus eerste 31, het draait op alle LEDs-1 tot 5, volgende 4 draait op alleen LED3, vervolgens 4 draait weer op LED3 en 4 opnieuw ingeschakeld LED3 dan 31 op alle LEDs 1 tot 5 draait. Op deze manier wanneer we deze naast elkaar zetten zoals aangegeven in stap 2 van dit instructable, zien we de letter H.

 void displayChar(char c) { if (c == 'a'){for (int i = 0; i <5; i++){displayLine(a[i]);delay(delayTime);}displayLine(0);} if (c == 'b'){for (int i = 0; i <5; i++){displayLine(b[i]);delay(delayTime);}displayLine(0);} if (c == 'c2'){for (int i = 0; i <5; i++){displayLine(c2[i]);delay(delayTime);}displayLine(0);} if (c == 'd'){for (int i = 0; i <5; i++){displayLine(d[i]);delay(delayTime);}displayLine(0);} if (c == 'e'){for (int i = 0; i <5; i++){displayLine(e[i]);delay(delayTime);}displayLine(0);} if (c == 'f'){for (int i = 0; i <5; i++){displayLine(f[i]);delay(delayTime);}displayLine(0);} if (c == 'g'){for (int i = 0; i <5; i++){displayLine(g[i]);delay(delayTime);}displayLine(0);} if (c == 'h'){for (int i = 0; i <5; i++){displayLine(h[i]);delay(delayTime);}displayLine(0);} if (c == 'i'){for (int it = 0; it <5; it++){displayLine(i[it]);delay(delayTime);}displayLine(0);} if (c == 'j'){for (int i = 0; i <5; i++){displayLine(j[i]);delay(delayTime);}displayLine(0);} if (c == 'k'){for (int i = 0; i <5; i++){displayLine(k[i]);delay(delayTime);}displayLine(0);} if (c == 'l'){for (int i = 0; i <5; i++){displayLine(l[i]);delay(delayTime);}displayLine(0);} if (c == 'm'){for (int i = 0; i <5; i++){displayLine(m[i]);delay(delayTime);}displayLine(0);} if (c == 'n'){for (int i = 0; i <5; i++){displayLine(n[i]);delay(delayTime);}displayLine(0);} if (c == 'o'){for (int i = 0; i <5; i++){displayLine(o[i]);delay(delayTime);}displayLine(0);} if (c == 'p'){for (int i = 0; i <5; i++){displayLine(p[i]);delay(delayTime);}displayLine(0);} if (c == 'q'){for (int i = 0; i <5; i++){displayLine(q[i]);delay(delayTime);}displayLine(0);} if (c == 'r'){for (int i = 0; i <5; i++){displayLine(r[i]);delay(delayTime);}displayLine(0);} if (c == 's'){for (int i = 0; i <5; i++){displayLine(s[i]);delay(delayTime);}displayLine(0);} if (c == 't'){for (int i = 0; i <5; i++){displayLine(t[i]);delay(delayTime);}displayLine(0);} if (c == 'u'){for (int i = 0; i <5; i++){displayLine(u[i]);delay(delayTime);}displayLine(0);} if (c == 'v'){for (int i = 0; i <5; i++){displayLine(v[i]);delay(delayTime);}displayLine(0);} if (c == 'w'){for (int i = 0; i <5; i++){displayLine(w[i]);delay(delayTime);}displayLine(0);} if (c == 'x'){for (int i = 0; i <5; i++){displayLine(x[i]);delay(delayTime);}displayLine(0);} if (c == 'y'){for (int i = 0; i <5; i++){displayLine(y[i]);delay(delayTime);}displayLine(0);} if (c == 'z'){for (int i = 0; i <5; i++){displayLine(z[i]);delay(delayTime);}displayLine(0);} if (c == '!'){for (int i = 0; i <5; i++){displayLine(excl[i]);delay(delayTime);}displayLine(0);} if (c == '?'){for (int i = 0; i <5; i++){displayLine(ques[i]);delay(delayTime);}displayLine(0);} if (c == '.'){for (int i = 0; i <5; i++){displayLine(eos[i]);delay(delayTime);}displayLine(0);} delay(charBreak); } 

Dit deel van de code vertelt de arduino te verplaatsen door middel van een tijdsbestek na de andere met de vertraging van de delayTime en het cycli van i = 0 (periode 1) tot en met i = 4 (tijd frame 5) elke geheel getal weer te geven als het beweegt op.

 void displayString(char* s) { for (int i = 0; i<=strlen(s); i++) { displayChar(s[i]); } } 

Dit vertelt de arduino om weer te geven van alle tekens die we willen achter elkaar vanaf ik = 0 tot i = lengte van de tekenreeks (aantal tekens).

 void loop() { displayString("hello world"); } 

"Hallo wereld" is wat momenteel wordt weergegeven, kunt u het naar wat je wilt. Zorg enkel ervoor dat er niet te veel tekens die de POV is niet kundig voor weergave met een bepaalde snelheid van de motor. Als u de motor snelheid verhogen en de vertraging tijdsinstellingen verminderen kunt u meer aantal tekens weergeven. Met mijn motor en met de vertraging tijden die ik gebruikte, was ik kundig voor weergave van 12 karakters in totaal, inclusief de spaties, dus Hallo wereld perfect was.

Gerelateerde Artikelen

RGB POV Display

RGB POV Display

Dit instructable werd geïnspireerd door de ATtiny85 POV Display door vishalapr. Binnenkort, ik opnieuw zijn werk, maar ik wilde meer. Dat is hoe heb ik besloten om een RGB POV weergeven.Als je niet weet wat POV, of wilt meer weten, Raadpleeg vishalap
$10 ATtiny85/45 POV display! (werkt prima)

$10 ATtiny85/45 POV display! (werkt prima)

He jongens! Dit is een Instructable voor het maken van uw eigen ATtiny85/45 5 LED POV (Persistence Of Vision) display!Dit is mijn tweede Instructable, ook voor de wedstrijd Elemental LED, dus laat een reactie en stemmen!De onderdelen van de totale ko
Arduino + Android POV Display

Arduino + Android POV Display

POV Display is een grappige en interessante manier om tekst te geven in de ruimte. Dit is mijn eerste tutorial Instructables, dus hebt u vragen, aarzel niet om hen te schrijven in het commentaar hieronder.Stap 1: Wat moet jeTe maken van de POV Displa
Eenvoudige POV Display met POV schild

Eenvoudige POV Display met POV schild

POV displays zijn geweldige creaties met gewoon de LED's en weinig van codering. POV displays met behulp van Arduino zijn een van de eenvoudigste en meest fascinerende dingen die men kan maken.Het schild van de POV is beschikbaar in eBay... Klik hier
Hoe maak je een sexy POV Display

Hoe maak je een sexy POV Display

In dit project zal ik je laten zien hoe ik een gewone oude ventilator omgezet in een LED POV Display die u lichte patronen, woorden of zelfs de tijd presenteren kunnen. Laten we aan de slag!Stap 1: Bekijk de video!De video geeft u alle basisinformati
De 'één Chip spinnen RGB POV Display' met conversiesoftware.

De 'één Chip spinnen RGB POV Display' met conversiesoftware.

Als je al op zoek naar een project dat combineert, RGB LED's, een motor, lijm een microcontroller en een belachelijk bedrag van hot melt, dan bent u zeker bij ons aan het juiste adres.Ik wil de invoering van de 'One Chip' Spinning RGB POV DisplayDit
LED POV DISPLAY

LED POV DISPLAY

HI en SALAM voor iedereen dit IS de tweede versie van mijn POV DISPLAY. DEZE VERSIE HEEFT VEEL IMPROVMENTS EN BESTAAT UIT EEN POSITIE SENSOR MECHANISME. IK HEB SLAGEN OM TE PROGRAMMEREN VAN SOMMIGE ANIMATIES IN DEZE VERSIE... EN DIT CIRCUIT IS GEMAAK
POV DISPLAY

POV DISPLAY

ik heb gemaakt deze POV display met behulp van pic micro controller ik mijn naam weergeven ben als demo hoop jullie wil is dit is eerste versie meer verbeteringen zal binnenkort
ATtiny85/45/25 LED dobbelsteen (Super simpel en goedkoop!)

ATtiny85/45/25 LED dobbelsteen (Super simpel en goedkoop!)

Als je mijn 5 LED ATtiny85 POV display hebben gekeken, we de ATtiny met de Arduino geprogrammeerd. (Als u nog niet gezien, klik hier) Wij zullen doen het zelfde ding voor dit project LED dobbelstenen.De onderdelen van de totale kosten voor dit projec
POV (persistentie van de visie) Display met IRled

POV (persistentie van de visie) Display met IRled

Vandaag zal ik introduceren POV (Persistence of Vision) Display met WIZwiki-W7500ECO board.Heb je ooit gehoord over POV voordat?U kunt in detail van POV hier controleren.(Zie stap 1)Het is echt grappig project.Ik zal u laten weten hoe het te maken. V
Goedkope 16F84 POV bericht - AirText

Goedkope 16F84 POV bericht - AirText

dit is een post van LEDs project. Het project heet POV (persistentie van de visie). Als u niet bekend bent met dit concept, werkt het als een LED matrix beeldscherm.Het verschil is dat POV display uit slechts één kolom met LEDs bestaat en is mechanis
(POV) Persistentie van de visie Globe

(POV) Persistentie van de visie Globe

! Update! Ik heb een excel-programma dat maakt het veel gemakkelijker om te tekenen en code van nieuwe beelden toegevoegd!Een eenvoudige persistentie van de visie globe. VIDEO afspelenDit is een project dat ik heb in gedachten had voor heel wat tijd
MicroView POV

MicroView POV

dit is een van de gemakkelijkste en eenvoudigste builds die ik tot nu toe heb gedaan, maar de resultaten zijn behoorlijk indrukwekkend. Dit is een groot project voor beginners.Het is een één board POV display. Als u niet wat een POV display weet is G
POV cilinder met inachtneming van de Arduino

POV cilinder met inachtneming van de Arduino

De POV cilinder bevat GIF-animaties op een roterende cilinder. De GIF-afbeeldingen kunnen worden gedownload vanaf een PC via Bluetooth.IntroductieVorig jaar heb ik besloten om mijn eerste Arduino project te starten. Mijn werk is geïnspireerd door ver