Étape 15 : Programme principal
/*Utilisée pour l’affichage temp couleur personnalisée
Novembre 2013
Ray McQueen
Sortie série à 74hc374
Affichage des ébauches
Vierges de 0 devant
Température minimale est de 0
Affichage temp plusieurs fois puis créer un fun flash
Mise à niveau afin d’éviter les grands sauts temporaires de Temp
*/
//
const int blue_data = 13 ; broche 3 74xx374
const int red_data = 12 ; broche 3 74xx374
const int green_data = 11 ; broche 3 74xx374
const int blue_clk3 = 10 ; bleu à 3 chiffres
const int blue_clk2 = 9 ; bleu 2e chiffre
const int blue_clk1 = 8 ; chiffres 1er bleu
const int red_clk3 = 7 ; chiffres 3 rouge
const int red_clk2 = 6 ; rouge 2e chiffre
const int red_clk1 = 5 ; chiffres 1er rouge
const int green_clk3 = 4 ; vert à 3 chiffres
const int green_clk2 = 3 ; vert 2e chiffre
const int green_clk1 = 2 ; chiffres 1er vert
//
int dig_it1 = 0 ; Premier chiffre de l’affichage
int dig_it2 = 0 ; Deuxième chiffre de l’affichage
int dig_it3 = 0 ; Troisième chiffre d’affichage
//
int données_1 = 0; / / nombre de premières données 100
data_2 int = 0; / / deuxième données 10 count
int data_3 = 0; / / nombre de données tiers 1
//
int test_test = 0; / / Numéro de magasin pour tester
int tmprtr = 0; / / pour la lecture de la température
int tmprtr_old = 0; / / dernier temp lecture
int tmprtr_new = 0; / / cette temp lecture
float tmprtr_read = 0; / / Initial de lecture à faire les maths
//
//
int [] les chiffres = {}
252, 12, 182, 158, 78, 218, 122, 140, 254, 206, 0
}; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, blanc
//
//
segments d’int [] = {}
255, 1, 128, 64, 32, 16, 8, 4, 2, 0
}; Tout de suite, décimale, haut, gauche haut,
Bas au centre, en bas à droite, en bas à gauche, supérieur droit,
Centre de moyen, blanc
//
//
int del_short = 75; / / court délai pour encerclant leds
int del_long = 1000; / / retard
cercle int = 0; / / fois pour encerclant
//
void setup() {}
pinMode (blue_data, sortie) ; définir comme sortie
pinMode (red_data, sortie) ; définir comme sortie
pinMode (green_data, sortie) ; définir comme sortie
pinMode (blue_clk3, sortie) ; définir comme sortie
pinMode (blue_clk2, sortie) ; définir comme sortie
pinMode (blue_clk1, sortie) ; définir comme sortie
pinMode (red_clk3, sortie) ; définir comme sortie
pinMode (red_clk2, sortie) ; définir comme sortie
pinMode (red_clk1, sortie) ; définir comme sortie
pinMode (green_clk3, sortie) ; définir comme sortie
pinMode (green_clk2, sortie) ; définir comme sortie
pinMode (green_clk1, sortie) ; définir comme sortie
//
//
EFFACER TOUS LES CHIFFRES
//
données_1 = 10; / / premières données 10 = blanc
data_2 = 10; / / seconde de données 10 = blanc
data_3 = 10; / / troisième données 10 = blanc
//
blue_shift(); / / Quelle compensation toute affichage vous suffit
pour appeler un changement de couleur, parce que toutes les couleurs se déplace clairement
toute autre couleur avant d’afficher eux-mêmes. blue_shift
est utilisé ici, mais il peut s’agir de l’évolution de la couleur.
//
//
}
//
void loop() {}
//
//
pour (cercle = 0; cercle < 60 ; cercle ++) {}
get_tmprtr(); / / lire le LM335 et convertir en température
temp_lvlr(); / / empêche les grands sauts temporaires
Convert(); / / sortir le temp pour un affichage approprié
color_2_display(); / / choisir quelle couleur à afficher
Delay(del_long); / / Delay
}
fun_ky_flash(); / / faire clignoter avant de refaire le temp s’amuser.
//
//
** FIN DE LA BOUCLE PRINCIPALE **
//
//
}
//
//
//
void blue_shift() {}
//
Efface toutes les autres couleurs chiffres tout d’abord... cas de justin.
Il s’agit de déplacer des bleu sur la totalité de l’écran
//
dig_it1 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it2 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it3 = 0; / / 0 ne = 0000 0000 aucune del sur
//
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() {}
//
Efface toutes les autres couleurs chiffres tout d’abord... cas de justin.
Il s’agit de déplacer lumière rouge sur la totalité de l’écran
//
dig_it1 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it2 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it3 = 0; / / 0 ne = 0000 0000 aucune del sur
//
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() {}
//
Efface toutes les autres couleurs chiffres tout d’abord... cas de justin.
Il s’agit de passer en vert sur la totalité de l’écran
//
dig_it1 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it2 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it3 = 0; / / 0 ne = 0000 0000 aucune del sur
//
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() {}
//
Efface toutes les autres couleurs chiffres tout d’abord... cas de justin.
Il s’agit de passer sur le jaune sur la totalité de l’écran
//
dig_it1 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it2 = 0; / / 0 ne = 0000 0000 aucune del sur
dig_it3 = 0; / / 0 ne = 0000 0000 aucune del sur
//
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() {}
//
Met en place pour la couleur à afficher
//
Si (tmprtr < = 49) {}
blue_shift(); / / afficher en bleu
}
//
Si (tmprtr > = 50 & & tmprtr < = 59) {}
yellow_shift(); / / afficher en jaune
}
//
Si (tmprtr > = 60 & & tmprtr < = 79) {}
green_shift(); / / afficher en vert
}
//
Si (tmprtr > = 80 & & tmprtr < = 89) {}
yellow_shift(); / / afficher en jaune
}
//
Si (tmprtr > = 90) {}
red_shift(); / / on affiche en rouge
}
//
}
//
//
void get_tmprtr() {}
//
Mesurer la température et rendre utile
//
tmprtr_read = analogRead(A0) ;
tmprtr_read = (((tmprtr_read * (5.0/1024.0)) * 100) - 273) * 1,8) + 32) ;
tmprtr = (tmprtr_read) ;
//
Si la température est trop basse, laissez-le à 0
Si (tmprtr_read < = 0) {}
tmprtr = 0 ;
}
//
}
//
//
//
//
void temp_lvlr() {}
//
Aplanit les lectures de température un peu
Une nouvelle lecture est comparée à la dernière lecture
S’ils sont différents, il est établi que la
Temp peut seulement augmenter ou diminuer de 1 degré
par la lecture.
Ceci arrêtera de grands sauts temporaires
//
tmprtr_new = tmprtr; / / obtenir une copie de la dernière lecture
Vérifiez si la température est plus élevée
Si (tmprtr_new > tmprtr_old) {}
tmprtr = (tmprtr_old + 1);//
tmprtr_old = tmprtr; / /
}
Vérifiez si la température est inférieure
Si (tmprtr_new < tmprtr_old) {}
tmprtr = (tmprtr_old -1);//
tmprtr_old = tmprtr; / /
}
Si la température est trop basse rend 0
Si (tmprtr < = 0) {}
tmprtr = 0 ;
}
//
}
//
//
//
//
convert() Sub {}
//
Convertir la lecture en quelque chose de que cet affichage peut consommer
//
test_test = tmprtr ; contenu de //copy à test_test pour l’essai
Test 100 s
données_1 = 0; / / efface le premier chiffre 0XX
tandis que (test_test > = 100) {}
test_test = test_test - 100 ;
données_1 ++; / / premier chiffre
}
data_2 = 0; / / efface le deuxième chiffre X0X
tandis que (test_test > = 10) {}
test_test = test_test - 10 ;
data_2 ++; / / Second chiffre
}
data_3 = test_test; / / tout en survolant XX0
Un test pour voir si la tête de 0 et vierges.
Si (données_1 == 0) {}
données_1 = 10; / / 10 = blanc de table
}
Si (data_2 == 0) {}
data_2 = 10; / / 10 = blanc de table
}
//
Essai en bout
Le numéro stocké dans test_test est maintenant cassé
dans trois registres
données_1 / / 100
data_2 / / 10
data_3 / / 1
//
}
//
//
//
//
void fun_ky_flash() {}
boucle ici
Ceci est mon préféré:)
pour (cercle = 0; cercle < 10 ; cercle ++) {}
//
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]) ; Retour au début
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (red_data, red_clk2, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (green_data, green_clk1, LSBFIRST, segments[3]) ; Haut gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (red_data, red_clk2, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (green_data, green_clk1, LSBFIRST, segments[4]) ; En bas à gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[5]) ; Bas
shiftOut (red_data, red_clk2, LSBFIRST, segments[5]) ; Bas
shiftOut (green_data, green_clk1, LSBFIRST, segments[5]) ; Bas
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (red_data, red_clk2, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (green_data, green_clk1, LSBFIRST, segments[6]) ; En bas à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (red_data, red_clk2, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (green_data, green_clk1, LSBFIRST, segments[7]) ; Haut à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk3, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk2, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk1, LSBFIRST, segments[2]) ; Retour au début
//
//
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]) ; Retour au début
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (red_data, red_clk1, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (green_data, green_clk3, LSBFIRST, segments[3]) ; Haut gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (red_data, red_clk1, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (green_data, green_clk3, LSBFIRST, segments[4]) ; En bas à gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[5]) ; Bas
shiftOut (red_data, red_clk1, LSBFIRST, segments[5]) ; Bas
shiftOut (green_data, green_clk3, LSBFIRST, segments[5]) ; Bas
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (red_data, red_clk1, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (green_data, green_clk3, LSBFIRST, segments[6]) ; En bas à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (red_data, red_clk1, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (green_data, green_clk3, LSBFIRST, segments[7]) ; Haut à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk2, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk1, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk3, LSBFIRST, segments[2]) ; Retour au début
//
//
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]) ; Retour au début
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (red_data, red_clk3, LSBFIRST, segments[3]) ; Haut gauche
shiftOut (green_data, green_clk2, LSBFIRST, segments[3]) ; Haut gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (red_data, red_clk3, LSBFIRST, segments[4]) ; En bas à gauche
shiftOut (green_data, green_clk2, LSBFIRST, segments[4]) ; En bas à gauche
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[5]) ; Bas
shiftOut (red_data, red_clk3, LSBFIRST, segments[5]) ; Bas
shiftOut (green_data, green_clk2, LSBFIRST, segments[5]) ; Bas
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (red_data, red_clk3, LSBFIRST, segments[6]) ; En bas à droite
shiftOut (green_data, green_clk2, LSBFIRST, segments[6]) ; En bas à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (red_data, red_clk3, LSBFIRST, segments[7]) ; Haut à droite
shiftOut (green_data, green_clk2, LSBFIRST, segments[7]) ; Haut à droite
Delay(del_short) ; //
shiftOut (blue_data, blue_clk1, LSBFIRST, segments[2]) ; Retour au début
shiftOut (red_data, red_clk3, LSBFIRST, segments[2]) ; Retour au début
shiftOut (green_data, green_clk2, LSBFIRST, segments[2]) ; Retour au début
//
//
}
//
}