Färgskiftande display (15 / 15 steg)

Steg 15: Huvudprogrammet

/*

Används för egen färg temp visning
November 2013
Ray McQueen

Seriell utgång till 74hc374

Blanks visning
Tom ledande 0
Lägsta Temp är 0
Display temp flera gånger gör sedan ett roligt flash
Temp utjämning för att förhindra att stora temp hopp

*/
//
CONST int blue_data = 13. 74xx374 pin3
CONST int red_data = 12; 74xx374 pin3
CONST int green_data = 11; 74xx374 pin3
CONST int blue_clk3 = 10; blå 3: e siffran
CONST int blue_clk2 = 9; Blå 2: a siffran
CONST int blue_clk1 = 8; Blue 1: a siffran
CONST int red_clk3 = 7. röd 3: e siffran
CONST int red_clk2 = 6; röd 2: a siffran
CONST int red_clk1 = 5; röd 1: a siffran
CONST int green_clk3 = 4; grön 3: e siffran
CONST int green_clk2 = 3; grön 2: a siffran
CONST int green_clk1 = 2; grön 1: a siffran
//
int dig_it1 = 0; Första siffran i displayen
int dig_it2 = 0; Andra siffran i displayen
int dig_it3 = 0; Tredje siffran i displayen
//
int data_1 = 0; / / första data 100 räkna
int data_2 = 0; / / andra data 10 räkna
int data_3 = 0; / / tredje data 1 räkna
//
int test_test = 0; / / butik nummer för testning
int tmprtr = 0; / / för den temperatur behandlingen
int tmprtr_old = 0; / / Last temp behandlingen
int tmprtr_new = 0; / / denna temp behandlingen
flyta tmprtr_read = 0; / / första behandlingen att göra matten
//
//
int siffror [] = {
252, 12, 182, 158, 78, 218, 122, 140, 254, 206, 0
}; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Tom
//
//
int segment [] = {
255, 1, 128, 64, 32, 16, 8, 4, 2, 0
}; Allt på vänster decimalen, Top Center, överst,
Vänster nedre, längst ner i mitten, längst ner till höger, höger överkant,
Middle Center, Blank
//
//
int del_short = 75. / / kort fördröjning för cirkling lysdioder
int del_long = 1000; / / lång fördröjning
int cirkel = 0; / / gånger för cirkling
//
void setup() {
pinMode (blue_data, produktionen); definiera som utdata
pinMode (red_data, produktionen); definiera som utdata
pinMode (green_data, produktionen); definiera som utdata
pinMode (blue_clk3, produktionen); definiera som utdata
pinMode (blue_clk2, produktionen); definiera som utdata
pinMode (blue_clk1, produktionen); definiera som utdata
pinMode (red_clk3, produktionen); definiera som utdata
pinMode (red_clk2, produktionen); definiera som utdata
pinMode (red_clk1, produktionen); definiera som utdata
pinMode (green_clk3, produktionen); definiera som utdata
pinMode (green_clk2, produktionen); definiera som utdata
pinMode (green_clk1, produktionen); definiera som utdata
//
//
TOM ALLA SIFFROR
//
data_1 = 10; / / First data 10 = Blank
data_2 = 10; / / andra data 10 = Blank
data_3 = 10; / / tredje data 10 = Blank
//
blue_shift(); / / när röjning hela display du behöver bara
att kalla ett färg SKIFT eftersom alla färg skiftar klart
någon annan färg innan själva. blue_shift
används här men det kan vara någon av färgskiftningar.
//
//
}
//
void loop() {
//
//
för (cirkel = 0; cirkel < 60; cirkel ++) {
get_tmprtr(); / / läsa LM335 och konvertera till temperatur
temp_lvlr(); / / förhindrar stora temp hopp
Convert (); / / bryta temp ut för korrekt visning
color_2_display(); / / välja vilken färg du vill visa
Delay(del_long); / / fördröjning
}
fun_ky_flash(); / / göra lite kul blinkande innan du gör temp igen.
//
//
** SLUTET AV MAIN LOOP **
//
//
}
//
//
//
void blue_shift() {
//
Clear all annan färg siffror först... justin fallet.
Detta är att skifta ut för blå på hela displayen
//
dig_it1 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it2 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it3 = 0; / / 0 = 0000 0000 inga lysdioder på
//
shiftOut (red_data, red_clk1, LSBFIRST, dig_it1); //
shiftOut (red_data, red_clk2, LSBFIRST, dig_it2); //
shiftOut (red_data, red_clk3, LSBFIRST, dig_it3); //
shiftOut (green_data, green_clk1, LSBFIRST, dig_it1); //
shiftOut (green_data, green_clk2, LSBFIRST, dig_it2); //
shiftOut (green_data, green_clk3, LSBFIRST, dig_it3); //
//
dig_it1 = (digits[data_1]);
dig_it2 = (digits[data_2]);
dig_it3 = (digits[data_3]);
shiftOut (blue_data, blue_clk1, LSBFIRST, dig_it1); //
shiftOut (blue_data, blue_clk2, LSBFIRST, dig_it2); //
shiftOut (blue_data, blue_clk3, LSBFIRST, dig_it3); //
//
}
//
//
void red_shift() {
//
Clear all annan färg siffror först... justin fallet.
Detta är att skifta ut red på hela displayen
//
dig_it1 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it2 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it3 = 0; / / 0 = 0000 0000 inga lysdioder på
//
shiftOut (blue_data, blue_clk1, LSBFIRST, dig_it1); //
shiftOut (blue_data, blue_clk2, LSBFIRST, dig_it2); //
shiftOut (blue_data, blue_clk3, LSBFIRST, dig_it3); //
shiftOut (green_data, green_clk1, LSBFIRST, dig_it1); //
shiftOut (green_data, green_clk2, LSBFIRST, dig_it2); //
shiftOut (green_data, green_clk3, LSBFIRST, dig_it3); //
//
dig_it1 = (digits[data_1]);
dig_it2 = (digits[data_2]);
dig_it3 = (digits[data_3]);
shiftOut (red_data, red_clk1, LSBFIRST, dig_it1); //
shiftOut (red_data, red_clk2, LSBFIRST, dig_it2); //
shiftOut (red_data, red_clk3, LSBFIRST, dig_it3); //
//
}
//
//
void green_shift() {
//
Clear all annan färg siffror först... justin fallet.
Detta är att skifta ut grön på hela displayen
//
dig_it1 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it2 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it3 = 0; / / 0 = 0000 0000 inga lysdioder på
//
shiftOut (red_data, red_clk1, LSBFIRST, dig_it1); //
shiftOut (red_data, red_clk2, LSBFIRST, dig_it2); //
shiftOut (red_data, red_clk3, LSBFIRST, dig_it3); //
shiftOut (blue_data, blue_clk1, LSBFIRST, dig_it1); //
shiftOut (blue_data, blue_clk2, LSBFIRST, dig_it2); //
shiftOut (blue_data, blue_clk3, LSBFIRST, dig_it3); //
//
dig_it1 = (digits[data_1]);
dig_it2 = (digits[data_2]);
dig_it3 = (digits[data_3]);
shiftOut (green_data, green_clk1, LSBFIRST, dig_it1); //
shiftOut (green_data, green_clk2, LSBFIRST, dig_it2); //
shiftOut (green_data, green_clk3, LSBFIRST, dig_it3); //
//
}
//
//
void yellow_shift() {
//
Clear all annan färg siffror först... justin fallet.
Detta är att skifta ut gul på hela displayen
//
dig_it1 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it2 = 0; / / 0 = 0000 0000 inga lysdioder på
dig_it3 = 0; / / 0 = 0000 0000 inga lysdioder på
//
shiftOut (blue_data, blue_clk1, LSBFIRST, dig_it1); //
shiftOut (blue_data, blue_clk2, LSBFIRST, dig_it2); //
shiftOut (blue_data, blue_clk3, LSBFIRST, dig_it3); //
//
dig_it1 = (digits[data_1]);
dig_it2 = (digits[data_2]);
dig_it3 = (digits[data_3]);
shiftOut (green_data, green_clk1, LSBFIRST, dig_it1); //
shiftOut (red_data, red_clk1, LSBFIRST, dig_it1); //
shiftOut (green_data, green_clk2, LSBFIRST, dig_it2); //
shiftOut (red_data, red_clk2, LSBFIRST, dig_it2); //
shiftOut (green_data, green_clk3, LSBFIRST, dig_it3); //
shiftOut (red_data, red_clk3, LSBFIRST, dig_it3); //
//
}
//
//
//
//
void color_2_display() {
//
Sätter upp för färgen som ska visas
//
om (tmprtr < = 49) {
blue_shift(); / / Visa det i blått
}
//
om (tmprtr > = 50 & & tmprtr < = 59) {
yellow_shift(); / / Visa det i gult
}
//
om (tmprtr > = 60 & & tmprtr < = 79) {
green_shift(); / / Visa det i grönt
}
//
om (tmprtr > = 80 & & tmprtr < = 89) {
yellow_shift(); / / Visa det i gult
}
//
om (tmprtr > = 90) {
red_shift(); / / visas i rött
}
//
}
//
//
void get_tmprtr() {
//
Mäta temperatur och göra det användbart
//
tmprtr_read = analogRead(A0);
tmprtr_read = (((tmprtr_read * (5.0/1024.0)) * 100) - 273) * 1,8) + 32);
tmprtr = (tmprtr_read);
//
Om temp är för låg stannar vid 0
om (tmprtr_read < = 0) {
tmprtr = 0;
}
//
}
//
//
//
//
void temp_lvlr() {
//
Planar ut temp avläsningarna lite
En ny behandling är jämfört med den förra behandlingen
Om de är olika det bestäms att den
Temp kan endast ökar eller minskar med 1 grad
per läsning.
Detta kommer att stoppa stora temp hopp
//
tmprtr_new = tmprtr; / / få en kopia av den senaste behandlingen
Kontrollera om temp är högre
om (tmprtr_new > tmprtr_old) {
tmprtr = (tmprtr_old + 1) ;//
tmprtr_old = tmprtr; / /
}
Kontrollera om temp är lägre
om (tmprtr_new < tmprtr_old) {
tmprtr = (tmprtr_old -1) ;//
tmprtr_old = tmprtr; / /
}
Om temp är för låg gör det 0
om (tmprtr < = 0) {
tmprtr = 0;
}
//
}
//
//
//
//
void Convert () {
//
Konvertera behandlingen till något denna display kan använda
//
test_test = tmprtr; //copy innehållet till test_test för att testa
Test 100s
data_1 = 0; / / rensa första siffran 0XX
medan (test_test > = 100) {
test_test = test_test - 100.
data_1 ++; / / första siffran
}
data_2 = 0; / / rensa andra siffran X0X
medan (test_test > = 10) {
test_test = test_test - 10.
data_2 ++; / / andra siffran
}
data_3 = test_test; / / allt lämnat över XX0
Test för att se om ledande 0's och tom.
om (data_1 == 0) {
data_1 = 10; / / 10 = Blank i tabell
}
om (data_2 == 0) {
data_2 = 10; / / 10 = Blank i tabell
}
//
Slutet testning
Lagras i test_test är nu bruten
ut på tre
data_1 / / 100
data_2 / / 10
data_3 / / 1
//
}
//
//
//
//
void fun_ky_flash() {
loop här
Detta är min favorit en :)
för (cirkel = 0; cirkel < 10; cirkel ++) {
//
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]); Topp
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (red_data, red_clk2, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (green_data, green_clk1, LSBFIRST, segments[3]); Vänster högst upp
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[4]); Vänster nedre
shiftOut (red_data, red_clk2, LSBFIRST, segments[4]); Vänster nedre
shiftOut (green_data, green_clk1, LSBFIRST, segments[4]); Vänster nedre
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[5]); Botten
shiftOut (red_data, red_clk2, LSBFIRST, segments[5]); Botten
shiftOut (green_data, green_clk1, LSBFIRST, segments[5]); Botten
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (red_data, red_clk2, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (green_data, green_clk1, LSBFIRST, segments[6]); Längst ner till höger
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[7]); Rätten topp
shiftOut (red_data, red_clk2, LSBFIRST, segments[7]); Rätten topp
shiftOut (green_data, green_clk1, LSBFIRST, segments[7]); Rätten topp
Delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]); Topp
//
//
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]); Topp
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (red_data, red_clk1, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (green_data, green_clk3, LSBFIRST, segments[3]); Vänster högst upp
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[4]); Vänster nedre
shiftOut (red_data, red_clk1, LSBFIRST, segments[4]); Vänster nedre
shiftOut (green_data, green_clk3, LSBFIRST, segments[4]); Vänster nedre
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[5]); Botten
shiftOut (red_data, red_clk1, LSBFIRST, segments[5]); Botten
shiftOut (green_data, green_clk3, LSBFIRST, segments[5]); Botten
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (red_data, red_clk1, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (green_data, green_clk3, LSBFIRST, segments[6]); Längst ner till höger
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[7]); Rätten topp
shiftOut (red_data, red_clk1, LSBFIRST, segments[7]); Rätten topp
shiftOut (green_data, green_clk3, LSBFIRST, segments[7]); Rätten topp
Delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]); Topp
//
//
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]); Topp
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (red_data, red_clk3, LSBFIRST, segments[3]); Vänster högst upp
shiftOut (green_data, green_clk2, LSBFIRST, segments[3]); Vänster högst upp
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[4]); Vänster nedre
shiftOut (red_data, red_clk3, LSBFIRST, segments[4]); Vänster nedre
shiftOut (green_data, green_clk2, LSBFIRST, segments[4]); Vänster nedre
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[5]); Botten
shiftOut (red_data, red_clk3, LSBFIRST, segments[5]); Botten
shiftOut (green_data, green_clk2, LSBFIRST, segments[5]); Botten
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (red_data, red_clk3, LSBFIRST, segments[6]); Längst ner till höger
shiftOut (green_data, green_clk2, LSBFIRST, segments[6]); Längst ner till höger
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[7]); Rätten topp
shiftOut (red_data, red_clk3, LSBFIRST, segments[7]); Rätten topp
shiftOut (green_data, green_clk2, LSBFIRST, segments[7]); Rätten topp
Delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]); Topp
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]); Topp
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]); Topp
//
//
}
//
}
//

Se Steg
Relaterade Ämnen

Färgskiftande LED snö hjärta Valentine

Låt inte den överblivna snö från senaste "Snowzilla" stormen gå till spillo. Visa dina nära och kära hur mycket du bryr sig med jätte alla hjärtans dag Snöhjärta på framsidan. Inte din genomsnittliga Snöhjärta, denna display är jazzed upp av inb...

Färgskiftande RGB remsan med BLEduino

Smart RGB LED Strip är baserad på utvecklingen av våra BLEduino, med hjälp av Bluetooth 4.0, och exempelkoden skriven av EF män, via mobiltelefon APP, att styra växeln RGB LED Strip och RGB LED färgskiftande. Huvudprincipen är att använda BLEduino me...

7 segment Display Clock

I detta outgrundlig jag kommer att visa dig hur man gör en digital klocka!Du behöver:En sun grundare kitSom omfattar en bröd styrelse, hoppare ledningar, knappar, lysdioder och en 7 segment display.Du behöver också en arduinorutan solen grundaretejpU...

Arduino 7-Seg Display Clock

Detta är en Auduino klocka gjorde med Sunfounder kit. Detta är en riktigt cool projekt och lätt att göra!Steg 1: material Endast 9 material krävs för montering av arduino powered klockanSkärbrädaSladdarUSB-kabelTråd-kontakterCardstock boxSju segment...

Arduino VFD Display klocka handledning - en Guide till VFD displayer

... + Lite om VFDsMinns du (fortfarande) visning av din gamla CD-spelare, HiFi system eller bil radio? Har du någonsin märkt displayerna används på din lokala mataffär som visar du skannade objektet och priset för det?Dessa skärmar har en karakterist...

Digital klocka RTC i LED-Display av 4 siffror och 7 segment

Hej, alla!Detta är mitt projekt av en digital klocka med RTC (realtidsklocka) med hjälp av en LED-skärm av 04 siffror och 07 segment, inklusive funktioner för temperatur och luftfuktighet.För att kontrollera displayen jag har använt en Arduino Uno oc...

Färgskiftande Cocktails

blå livsmedel är slående (och sällsynt) alla av sig själva, men lägga till lite limesaft och denna emerald blå elixir kommer * magiskt * ändra till en lysande lila. Jag har döpt min lilla cocktail Indigo rodna. Intensiv färg är helt naturlig (från en...

Bygga en egen display LCD Studio (för G15 tangentbord och LCD-skärmar).

Ok om du har just fått ditt G15 tangentbord och är mycket imponerad med de grundläggande skärmar som kom med det då jag tar dig genom grunderna i att använda LCD Studio för att göra egna.Detta exempel kommer att göra en display som visar bara grundlä...

3D blommor bukett Display

Dekorera ditt utrymme med den antydan av våren och sommaren tack vare dessa underbara blommor och fjärilar prydd på en skum boll! Gör detta för din lilla Flickans sovrum, vardagsrummet, eller lägga till några inslag av blått, rosa, lila och vit till...

Duct Tape Display vägg

Duct Tape Display vägg är praktiskt i våra Makerspace. Vi har massor av färgade band tillgänglig för hantverk. Detta gör den tillgänglig för barnen, och det är trevligt att titta på. Att ha en hjälpare gör stor skillnad i detta projekt, så gör det in...

7 segment Display

7 segmenterar skärmar kommer för att användas överallt där du behöver en visuell visning av siffror. En Timer, nedräkning, klocka, etc är alla exempel på där någon kanske använt 7 Segment Display. De är mycket användbara, och när du förstår hur de fu...

7 segment LED-display med PIC controller och Flowcode V5

Först av allt, om du har några frågor, tveka inte att kommentera! Jag skulle vara mer än glad att svara på din fråga så bra som möjligt!Material som används:-PIC 18F452 mikrokontroller (några PIC mikrokontroller med tillräckligt stift kommer att göra...

Vägg Display för ett myntsamling

detta är min första instructable, så dina synpunkter är välkomna och uppskattade.Flera år sedan, min far lämnade ett myntsamling till min syster och mig själv. Vi diskuterade vad jag ska göra med denna samling och båda överens om att vi ville ta en r...

2015 Halloween gården Display

Vår Halloween gården Displays tema är i år häxor. Medan damerna är köpt, min man gjorde gnome som häxa hyddor i bakgrunden och designade all belysning....

Aliens Halloween Display

efter jag visade bilder på min makt Loader och Alien Queen på en familj grill, min moster (som är mycket aktiv i konst) berättade om en modeeventet promenad i staden för Halloween. Vi kontaktade arrangörerna och de gillade mitt arbete och uppmanade m...

Animerade Halloween display med hjälp av en elmotor och en cykel

här är ett sätt att göra en animerad Halloween display, med mestadels saker du redan runt huset. Jag drivs skärmen med en liten elmotor ansluten till bakhjulet på min cykel, och snören knytet till pedalerna drog armar och ben av naturlig storlek dumm...

Banner Badge Display

tid: 20 minuter varje BannerMina döttrar ville gå flickscouter, men med mycket begränsade alternativ där vi bor, beslöt jag att göra något liknande. Så, för fyra år sedan började vi samla märken och pins när vi gick till nya platser. Jag sätter också...

Kaffekopp Display Rack

Har du en hel del kaffemuggar ta upp din värdefulla kök skåp utrymme? Detta kaffe mugg Display Rack är lätt att göra och du kommer inte tro hur mycket extra skåp utrymme du kommer att vinna. Dessutom gör det en trevlig uppvisning för ditt kök, frukos...

Dell 3137 intelligent display övervintra fix

Dessa är instruktionerna för en workaround till dell "intelligenta" display problem på dell inspiron 3137 laptop där på återuppta från övervintra (och andra gånger förmodligen) intelligent displayen vänder tillbaka även om du har den avstängd i...