ATtiny85 POV Display (9 / 10 steg)

Steg 9: Förklaring av koden



int fördröjningstid = 1; Fördröjningstiden mellan sub tecken
int charBreak = 2.1. Fördröjningen mellan olika karaktärer

Ovanstående 2 fördröjningstiderna bör anpassas efter behov. Prova att ändra dem tills du får önskad skärmen du vill, öka fördröjningstid kommer att öka bredden på varje del av brevet ökar charBreak kommer att öka utrymmet mellan 2 bokstäver.

int LED1 = 0; Definiera vilka stift lysdioderna är kopplade till
int LED2 = 1;
int LED3 = 2;
int LED4 = 3;
int LED5 = 4;

void setup()
{
pinMode (LED1, OUTPUT); Att LED1 som utdata
pinMode (LED2, OUTPUT); Inställningen LED2 som utgång
pinMode (LED3, OUTPUT); Inställningen LED3 som utgång
pinMode (LED4, OUTPUT); Inställningen LED4 som utgång
pinMode (LED5, OUTPUT); Inställningen LED5 som utgång
}

int en [] = {1, 6, 26, 6, 1}; Detta är de heltal som hjälper oss Visa bokstaven 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 jag [] = {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};

5 olika heltal motsvarar 5 tidsramarna som utgör varje bokstav.

(I 2: a steg detta instructable jag använde 3 tidsramar för att göra upp bokstaven E, här använder vi 5 tidsramar)

int eos [] = {0, 1, 0, 0, 0};
int exkl [] = {0, 29, 0, 0, 0};
int frå [] = {8, 19, 20, 8, 0};

void displayLine(int line)
{
int Linnea;
Linnea = linje;
om (Linnea > = 16) {digitalWrite (LED1, hög), Linnea-= 16;} annat {digitalWrite (LED1, låg);}
om (Linnea > = 8) {digitalWrite (LED2, hög), Linnea-= 8.} annat {digitalWrite (LED2, låg);}
om (Linnea > = 4) {digitalWrite (LED3, hög), Linnea-= 4.} annat {digitalWrite (LED3, låg);}
om (Linnea > = 2) {digitalWrite (LED4, hög), Linnea-= 2;} annat {digitalWrite (LED4, låg);}
om (Linnea > = 1) {digitalWrite (LED5, hög), Linnea-= 1;} annat {digitalWrite (LED5, låg);}
}

Detta är den viktigaste delen av koden som förklarar vad alla nummer vi nämnt ovan menar,

Till exempel låt x vara ett heltal. Om x är större än eller lika med 16, sedan LED1 slås på, och vi subtrahera 16 x, nu visar om (x-16) är större än eller lika med 8, LED2 vänder på och tillsammans med LED1 och vi subtrahera 8, nu om (x-24) är större än eller lika med 4, LED3 LED1 och LED2 och så vidare...

Om det är mindre än det angivna antalet i varje instans, sedan att lampan inte lyser och vi går vidare till nästa steg utan att subtrahera något nummer.

Ex: Låter ta 18, nu är större än 16, därför LED1 är på, nu på subtrahera 16 har vi 2, 2 är mindre än 8 så LED2 är avstängd, nu 2 är mindre än 4 så LED3 är avstängd, nu 2 är större än eller lika med 2, LED4 är därför på, och subtrahera 2 har vi 0 som är mindre än 1 , därför LED5 är avstängd.

På så sätt kan vi tilldela olika heltal att slå på och av olika lysdioder som vi kräver.

Kan till exempel ta bokstaven H, heltalen är 31,4,4,4,31;

Så första 31, det visar på alla lysdioder 1 till 5, nästa 4 vänder på bara LED3, sedan 4 vänder igen på LED3 och 4 vänder igen på LED3 då 31 vänder på alla lysdioder 1 till 5. På detta sätt när vi sätter dessa bredvid varandra som visas i steg 2 i detta instructable, ser vi på bokstaven H.

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

Denna del av koden berättar arduino att flytta genom en tid efter den andra med fördröjningen av fördröjningstid samt det cyklar från jag = 0 (tidsram 1) att jag = 4 (tidsram 5) visar varje heltal när den rör sig.

void visningssträngen (char * s)
{
för (int jag = 0; jag < = strlen(s); i ++)
{
displayChar(s[i]);
}
}

Detta säger arduino att visa alla de tecken som vi vill ha en efter en start från jag = 0 tills jag = stränglängd (antal tecken).

void loop()
{
visningssträngen ("hello world");
}

"Hej världen" är vad som visas, kan du ändra det till vad du vill. Se bara till att det inte finns alltför många tecken som POV inte är kunna visa med ett visst varvtal. Om du ökar varvtal och minska förseningen timings kan du Visa fler antal tecken. Med min motor och med fördröjning timings jag använde, kunde jag Visa 12 tecken totalt inklusive mellanslag, så Hej världen var perfekt.

Se Steg
Relaterade Ämnen

RGB POV Display

Detta instructable var inspirerad av den ATtiny85 POV Display av vishalapr. Snart, jag återskapat sitt arbete, men jag ville mer. Det är hur jag beslutat att göra en RGB POV visas.Om du inte vet vad POV är, eller vill veta mer om det, se 's vishalapr...

$10 ATtiny85/45 POV display! (fungerar riktigt bra)

Hey guys! Detta är en Instructable för att göra ditt eget ATtiny85/45 5 LED POV (Persistence Of Vision) skärm!Detta är min andra Instructable, också för elementär LED tävling, så släpp en kommentar och omröstningen upp!Totalt delar kostar för detta P...

Arduino + Android POV Display

POV Visa är ett roligt och intressant sätt att visa text i rymden. Detta är min första Instructables handledning så om du har några frågor inte tveka att skriva dem i en kommentar nedan.Steg 1: Vad du behöverAtt göra POV displayen jag använde:-En Ard...

Hur man gör en fläkt POV Display

I detta projekt kommer jag visa dig hur jag förändrat en vanlig gammal fläkt till en LED POV Display som kan presentera dig lätta mönster, ord, även tiden. Låt oss komma igång!Steg 1: Titta på videon!Videon ger dig alla grundläggande information du b...

Enkla POV Display med POV sköld

POV är awesome skapelser med bara lamporna och lite av kodning. POV displayerna genom att använda Arduino är en av de enklaste och mest spännande saker man kan göra.POV skölden finns på eBay... Klicka här för att köpa enSaker som behövs:1) roterande...

ATtiny85/45/25 LED Tärning (Super enkelt och billigt!)

Om du har tittat på min 5 LED ATtiny85 POV display, vi programmerade ATtiny med Arduino. (Om du inte har sett det, klicka här) Vi kommer att göra samma sak för detta LED Tärning projekt.Totalt delar kostnaden för projektet är om $5-$10. (Inte inklusi...

POV med MSP430 LAUNCHPAD

Hej varje en här jag ge mer i detalj om hur du byggt dettaprojektet POV med MSP430 LAUNCHPAD. för detta projekt skrev jag biblioteksfilen Pov.h att arbeta med Energia programvara. Du kan hämta det och använda det för mer lätt programmering. för göra...

POV (ihållande Vision) uppvisning med IRled

Idag kommer jag att införa POV (Persistence of Vision) uppvisning med WIZwiki-W7500ECO styrelse.Har du någonsin hört talas om POV innan?Du kan kontrollera detaljerna i POV här.(Se steg 1)Det är verkligen roligt projekt.Jag kommer att låta dig veta hu...

MicroView POV

detta är en av de enklaste och enklaste bygger jag har gjort hittills men resultaten är ganska imponerande. Detta är ett bra projekt för nybörjare.Det är en enkel bräde POV visas. Om du inte vet vad en POV display är Google det.När du har slutfört de...

(POV) Ihållande Vision världen

! Uppdatera! Jag har lagt till ett excel-program som gör det mycket lättare att rita och kod nya bilder!En enkel persistens av vision klot. Spela upp VIDEODetta är ett projekt som jag haft i åtanke under en längre tid och "Göra det Glow" tävling...

POV Cylinder med Arduino vederbörlig

POV cylindern visar animerade GIF-bilder på en roterande cylinder. GIF-bilder kan hämtas från en dator via Bluetooth.IntroduktionFörra året bestämde jag mig att börja min första Arduino projekt. Mitt arbete var inspirerad av flera maker projekt som s...

Bokstavera tillgivenhet för din Valentine med choklad, lysdioder, Attiny13 och Arduino IDE

Ja, visst, du kunde ha ställt en post-it lapp med samma budskap inuti choklad rutan :) men det kommer inte att vara nästan lika cool, särskilt om din Valentine har en sweet spot för nördar. Kom att tänka på det: naturligtvis gör hon, annars vad hon g...

Persistens av vision

den ursprungliga idén till projektet kom från David Bjanes som har många projekt i hans Projektkön lysande sinne. Inspirationen kom när David såg en video av en liknande POV display på Youtube.com. Vi kontaktade Bruce Land, vår professor, för att dis...

Arduino persistens av Vision visar

en vision (PoV) display är en rad med lysdioder som flash ut kolumnerna i ett meddelande. När matrisen med lysdioder flyttas, som när monterad på ett cykelhjul, kan meddelandet läsas som om det var många LED hela, i stället för en enda rad.Maskinvaru...

ATTiny85 5 LED POV

Jag har lekt med tanken på att göra en POV leksak för ett tag och jag fick äntligen runt för att göra det. Detta är ett derivat baserade på vishalpar's utmärkta ATTiny85 displayen instructable. De viktigaste skillnaderna med min POV är att den är mon...

ATTiny85 ansluter till I2C OLED-display - bra saker kan vara små

Nyligen kom jag över en liten OLED display som jag också använt för ett annat projekt. Denna gång tänkte jag en liten display kan drivas med en liten processor [AT]:).Visionen är - "skapa en liten gaming maskin"Väl steg den första. Åtminstone nå...

Hur konvertera bitmappsgrafik för OLED SSD1306 display drivs av ATtiny85

Det huvudsakliga målet med denna handledning är att visa hur man konverterar monokromatiska bit karta för HEX filen och kör genom Attiny85 och OLED display SDD1306.På grund av kör kampanj för Attiny25/45/85 PCB små billiga mångsidig Arduino kompatibe...

Stora POV RGB Display byggda för NMMU NDIP

stora POV RGB Display byggd för NMMU NDIP projektet whit 32 RGB LED driften av en 8-bitars PIC micro controller och en Texas instrument TLC 5945 LED driverhttp://youtu.be/O0l3VNwYpdA...

Fristående 16-siffrig display - Arduino & Attiny85

någonsin ville ha en 7-segment display för runt huset? Här är din chans att göra en!Det kan även vara interaktiva baserat på programmering.Delar:($7,60) 16-siffriga TM1640 baserat uppvisningDealExtreme.com SKU: 104311http://www.DealExtreme.com/p/jy-M...