Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //arduino 4 digit 7 segment project
- #define DIGIT_ON HIGH
- #define DIGIT_OFF LOW
- int time = 10;
- int x=100;
- int a = 1;
- int b = 2;
- int c = 3;
- int d = 4;
- int e = 5;
- int f = 6;
- int g = 7;
- //segments
- char seg[]= {a,b,c,d,e,f,g};
- //numbers and others
- int num[10][7] = {{1,1,1,1,1,1,0}, //0
- {0,0,1,1,0,0,0}, //1
- {1,1,0,1,1,0,1}, //2
- {0,1,1,1,1,0,1}, //3
- {0,0,1,1,0,1,1}, //4
- {0,1,1,0,1,1,1}, //5
- {1,1,1,0,1,1,1}, //6
- {0,0,1,1,1,0,0}, //7
- {1,1,1,1,1,1,1}, //8
- {0,0,1,1,1,1,1}};//9
- int hifen[] = {0,0,0,0,0,0,1}; //-
- int o[] = {1,1,1,0,0,0,1}; //o
- long t,t2; //time of numbers
- void setup(){
- pinMode(13, OUTPUT);// 4 digit
- pinMode(12, OUTPUT);// 3 digit
- pinMode(11, OUTPUT);// 2 digit
- pinMode(10, OUTPUT);// 1 digit
- pinMode(g, OUTPUT);
- pinMode(f, OUTPUT);
- pinMode(e, OUTPUT);
- pinMode(d, OUTPUT);
- pinMode(c, OUTPUT);
- pinMode(b, OUTPUT);
- pinMode(a, OUTPUT);
- }
- void loop(){
- //counter
- for(int i=0; i<10; i++){
- for(int j=0; j<10; j++){
- for(int k=0; k<10; k++){
- for(int l=0; l<10; l++){
- t=millis();
- while(t2<(t+1000)){ //1s, podem colocar o contador a correr à velocidade que quiserem
- printNumber(i,3);
- delayMicroseconds(time);
- printNumber(j,2);
- delayMicroseconds(time);
- printNumber(k,1);
- delayMicroseconds(time);
- printNumber(l,0);
- delayMicroseconds(time);
- t2=millis();
- }
- }
- }
- }
- }
- //loop
- /*
- for(int i =0 ; i<8 ; i++){
- lightNumber(o);
- digitalWrite((10),LOW);
- delay(200);
- lightNumber(hifen);
- digitalWrite((11),LOW);
- delay(200);
- lightNumber(hifen);
- digitalWrite((12),LOW);
- delay(200);
- lightNumber(o);
- digitalWrite((13),LOW);
- delay(200);
- lightNumber(hifen);
- digitalWrite((12),LOW);
- delay(200);
- lightNumber(hifen);
- digitalWrite((11),LOW);
- delay(200);
- } */
- }
- void lightNumber(int c[]){
- clearLeds();
- for(int i=0; i<7; i++){
- if(c[i]==1){
- digitalWrite(seg[i], HIGH);
- }
- }
- }
- void printNumber(int n, int index){
- clearLeds();
- if(n>=0 && n<=9){
- lightNumber(num[n]);
- }
- digitalWrite((10+index),LOW);
- }
- void clearLeds(){
- for(int i=0; i<7; i++){
- digitalWrite(seg[i], LOW);
- }
- digitalWrite(13, HIGH);
- digitalWrite(12, HIGH);
- digitalWrite(11, HIGH);
- digitalWrite(10, HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment