Stap 15: Hoofdprogramma
/*Gebruikt voor aangepaste kleur temp display
November 2013
Ray McQueen
Uitgang voor seriële naar 74hc374
Lege cellen weergeven
Eerste 0 leeg
Minimum Temp is 0
Display temp meerdere malen Voer een leuke flash
Temp herverdeling om te voorkomen dat grote temp springt
*/
//
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; blauwe 3e cijfer
Const int blue_clk2 = 9; blauwe 2e cijfer
Const int blue_clk1 = 8; blauwe 1e cijfer
Const int red_clk3 = 7; Rode 3e cijfer
Const int red_clk2 = 6; rode 2e cijfer
Const int red_clk1 = 5; rode 1e cijfer
Const int green_clk3 = 4; groene 3e cijfer
Const int green_clk2 = 3; groene 2e cijfer
Const int green_clk1 = 2; groene 1e cijfer
//
int dig_it1 = 0; Eerste cijfer van display
int dig_it2 = 0; Tweede cijfer in display
int dig_it3 = 0; Derde cijfer van display
//
int data_1 = 0; / / gegevens uit de eerste 100 tellen
int data_2 = 0; / / tweede gegevens 10 tellen
int data_3 = 0; / / derde gegevens 1 count
//
int test_test = 0; / / winkel nummer voor het testen
int tmprtr = 0; / / voor de temperatuurmeting
int tmprtr_old = 0; / / laatste temp lezing
int tmprtr_new = 0; / / dit temp lezen
zweven tmprtr_read = 0; / / eerste lezing de wiskunde te doen
//
//
int cijfers [] {} =
252 12, 182, 158, 78, 218, 122, 140, 254, 206, 0
}; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, leeg
//
//
int segmenten [] {} =
255, 1, 128, 64, 32, 16, 8, 4, 2, 0
}; Allemaal op, links decimaal, Top Center, boven,
Linker onderkant midden onderaan, rechts onderaan, rechts van boven,
Midden centrum, Blank
//
//
int del_short = 75; / / Short vertraging voor het cirkelen van leds
int del_long = 1000; / / lang uitstellen
int cirkel = 0; / / tijden voor het cirkelen
//
VOID Setup {}
pinMode (blue_data, OUTPUT); definiëren als output
pinMode (red_data, OUTPUT); definiëren als output
pinMode (green_data, OUTPUT); definiëren als output
pinMode (blue_clk3, OUTPUT); definiëren als output
pinMode (blue_clk2, OUTPUT); definiëren als output
pinMode (blue_clk1, OUTPUT); definiëren als output
pinMode (red_clk3, OUTPUT); definiëren als output
pinMode (red_clk2, OUTPUT); definiëren als output
pinMode (red_clk1, OUTPUT); definiëren als output
pinMode (green_clk3, OUTPUT); definiëren als output
pinMode (green_clk2, OUTPUT); definiëren als output
pinMode (green_clk1, OUTPUT); definiëren als output
//
//
LEEG VAN ALLE CIJFERS
//
data_1 = 10; / / eerste gegevens 10 = leeg
data_2 = 10; / / gegevens 10 seconde = leeg
data_3 = 10; / / derde gegevens 10 = leeg
//
blue_shift(); / / wanneer clearing hele weergeven u hoeft alleen
Bel een kleurverandering omdat alle kleur duidelijk verschuivingen
een andere kleur voordat zelf wordt weergegeven. blue_shift
Hier wordt gebruikt maar het kan om het even welk van de kleurverschuivingen.
//
//
}
//
void loop {}
//
//
voor (cirkel = 0; cirkel < 60; cirkel ++) {}
get_tmprtr(); / / de LM335 lezen en converteren naar temperatuur
temp_lvlr(); / / Hiermee voorkomt u dat grote temp sprongen
Convert(); / / de temp Break out voor correcte weergave
color_2_display(); / / kiezen welke kleur weer te geven
delay(del_long); / / vertraging
}
fun_ky_flash(); / / Do wat leuks knipperen voordat je temp weer.
//
//
** EIND VAN MAIN LOOP **
//
//
}
//
//
//
ongeldig blue_shift() {}
//
Verwijdert alle andere kleur cijfers eerste... justin geval.
Dit is om te verschuiven uit voor blue op het volledige scherm
//
dig_it1 = 0; / / 0 = 0000 0000 geen leds op
dig_it2 = 0; / / 0 = 0000 0000 geen leds op
dig_it3 = 0; / / 0 = 0000 0000 geen leds op
//
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); //
//
}
//
//
ongeldig red_shift() {}
//
Verwijdert alle andere kleur cijfers eerste... justin geval.
Dit is om te verschuiven uit rood op het volledige scherm
//
dig_it1 = 0; / / 0 = 0000 0000 geen leds op
dig_it2 = 0; / / 0 = 0000 0000 geen leds op
dig_it3 = 0; / / 0 = 0000 0000 geen leds op
//
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); //
//
}
//
//
ongeldig green_shift() {}
//
Verwijdert alle andere kleur cijfers eerste... justin geval.
Dit is om te verschuiven van groen op het volledige scherm
//
dig_it1 = 0; / / 0 = 0000 0000 geen leds op
dig_it2 = 0; / / 0 = 0000 0000 geen leds op
dig_it3 = 0; / / 0 = 0000 0000 geen leds op
//
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); //
//
}
//
//
ongeldig yellow_shift() {}
//
Verwijdert alle andere kleur cijfers eerste... justin geval.
Dit is om te verschuiven uit geel op het gehele display
//
dig_it1 = 0; / / 0 = 0000 0000 geen leds op
dig_it2 = 0; / / 0 = 0000 0000 geen leds op
dig_it3 = 0; / / 0 = 0000 0000 geen leds op
//
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); //
//
}
//
//
//
//
ongeldig color_2_display() {}
//
Stelt voor de kleur die moet worden weergegeven
//
Als (tmprtr < = 49) {}
blue_shift(); / / weergegeven in blauw
}
//
Als (tmprtr > = 50 & & tmprtr < = 59) {}
yellow_shift(); / / weer te geven in geel
}
//
Als (tmprtr > = 60 & & tmprtr < = 79) {}
green_shift(); / / weer te geven in het groen
}
//
Als (tmprtr > = 80 & & tmprtr < = 89) {}
yellow_shift(); / / weer te geven in geel
}
//
Als (tmprtr > = 90) {}
red_shift(); / / weer te geven in het rood
}
//
}
//
//
ongeldig get_tmprtr() {}
//
Meet de temperatuur en het nuttig maken
//
tmprtr_read = analogRead(A0);
tmprtr_read = (((tmprtr_read * (5.0/1024.0)) * 100) - 273) * 1.8) + 32);
tmprtr = (tmprtr_read);
//
Als de temperaturen te laag laat het bij 0
Als (tmprtr_read < = 0) {}
tmprtr = 0;
}
//
}
//
//
//
//
ongeldig temp_lvlr() {}
//
Niveaus uit de temp lezingen een beetje
Een nieuwe lezing wordt vergeleken met de laatste lezing
Als ze verschillen vaststaat dat de
Temp kan alleen vergroten of verkleinen door de 1 graad
per lezing.
Dit stopt grote temp sprongen
//
tmprtr_new = tmprtr; / / krijgen een kopie van de nieuwste lezing
Controleer als de temp hoger is
Als (tmprtr_new > tmprtr_old) {}
tmprtr = (tmprtr_old + 1) ;//
tmprtr_old = tmprtr; / /
}
Controleer als de temp lager is
Als (tmprtr_new < tmprtr_old) {}
tmprtr = ;// (tmprtr_old -1)
tmprtr_old = tmprtr; / /
}
Temp is te laag Controleer het 0
Als (tmprtr < = 0) {}
tmprtr = 0;
}
//
}
//
//
//
//
ongeldig convert() {}
//
De lezing omzetten in iets wat die dit display kan gebruiken
//
test_test = tmprtr; //copy inhoud te test_test voor het testen
Test 100s
data_1 = 0; / / Clear eerste cijfer 0XX
terwijl (test_test > = 100) {}
test_test = test_test - 100;
data_1 ++; / / eerste cijfers
}
data_2 = 0; / / tweede cijfer X0X Clear
terwijl (test_test > = 10) {}
test_test = test_test - 10;
data_2 ++; / / tweede cijfer
}
data_3 = test_test; / / links alles over XX0
Testen om te zien als de 0 voorsprong en leeg.
Als (data_1 == 0) {}
data_1 = 10; / / 10 = leeg in tabel
}
Als (data_2 == 0) {}
data_2 = 10; / / 10 = leeg in tabel
}
//
Einde testen
Het getal dat is opgeslagen in test_test is nu gebroken
uit in drie registers
data_1 / / 100
data_2 / / 10
data_3 / / 1
//
}
//
//
//
//
ongeldig fun_ky_flash() {}
loop hier
Dit is mijn favoriete :)
voor (cirkel = 0; cirkel < 10; cirkel ++) {}
//
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]); Boven
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[3]); Links boven
shiftOut (red_data, red_clk2, LSBFIRST, segments[3]); Links boven
shiftOut (green_data, green_clk1, LSBFIRST, segments[3]); Links boven
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[4]); Linker onderkant
shiftOut (red_data, red_clk2, LSBFIRST, segments[4]); Linker onderkant
shiftOut (green_data, green_clk1, LSBFIRST, segments[4]); Linker onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[5]); Onderkant
shiftOut (red_data, red_clk2, LSBFIRST, segments[5]); Onderkant
shiftOut (green_data, green_clk1, LSBFIRST, segments[5]); Onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (red_data, red_clk2, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (green_data, green_clk1, LSBFIRST, segments[6]); Rechts onderaan
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[7]); Rechts boven
shiftOut (red_data, red_clk2, LSBFIRST, segments[7]); Rechts boven
shiftOut (green_data, green_clk1, LSBFIRST, segments[7]); Rechts boven
delay(del_short); //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]); Boven
//
//
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]); Boven
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[3]); Links boven
shiftOut (red_data, red_clk1, LSBFIRST, segments[3]); Links boven
shiftOut (green_data, green_clk3, LSBFIRST, segments[3]); Links boven
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[4]); Linker onderkant
shiftOut (red_data, red_clk1, LSBFIRST, segments[4]); Linker onderkant
shiftOut (green_data, green_clk3, LSBFIRST, segments[4]); Linker onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[5]); Onderkant
shiftOut (red_data, red_clk1, LSBFIRST, segments[5]); Onderkant
shiftOut (green_data, green_clk3, LSBFIRST, segments[5]); Onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (red_data, red_clk1, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (green_data, green_clk3, LSBFIRST, segments[6]); Rechts onderaan
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[7]); Rechts boven
shiftOut (red_data, red_clk1, LSBFIRST, segments[7]); Rechts boven
shiftOut (green_data, green_clk3, LSBFIRST, segments[7]); Rechts boven
delay(del_short); //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]); Boven
//
//
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]); Boven
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[3]); Links boven
shiftOut (red_data, red_clk3, LSBFIRST, segments[3]); Links boven
shiftOut (green_data, green_clk2, LSBFIRST, segments[3]); Links boven
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[4]); Linker onderkant
shiftOut (red_data, red_clk3, LSBFIRST, segments[4]); Linker onderkant
shiftOut (green_data, green_clk2, LSBFIRST, segments[4]); Linker onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[5]); Onderkant
shiftOut (red_data, red_clk3, LSBFIRST, segments[5]); Onderkant
shiftOut (green_data, green_clk2, LSBFIRST, segments[5]); Onderkant
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (red_data, red_clk3, LSBFIRST, segments[6]); Rechts onderaan
shiftOut (green_data, green_clk2, LSBFIRST, segments[6]); Rechts onderaan
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[7]); Rechts boven
shiftOut (red_data, red_clk3, LSBFIRST, segments[7]); Rechts boven
shiftOut (green_data, green_clk2, LSBFIRST, segments[7]); Rechts boven
delay(del_short); //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]); Boven
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]); Boven
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]); Boven
//
//
}
//
}
//