Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Subiect 1
- //Rarinca Camelia EE 2/2
- int cifre[10][7] = {
- {1,1,1,1,1,1,0}, //0
- {0,1,1,0,0,0,0}, //1
- {1,1,0,1,1,0,1}, //2
- {1,1,1,1,0,0,1}, //3
- {0,1,1,0,0,1,1}, //4
- {1,0,1,1,0,1,1}, //5
- {1,0,1,1,1,1,1}, //6
- {1,1,1,0,0,0,0}, //7
- {1,1,1,1,1,1,1}, //8
- {1,1,1,1,0,1,1} //9
- };
- int pin[7]={2,3,4,5,6,7,8};//a,b,c,d,e,f,g
- int enable[4] = {9, 10, 11, 12};//tranzistorii
- void setup() {
- //initializam pinii folositi
- for(int i=0;i<7;i++){
- pinMode(pin[i], OUTPUT);
- }
- for(int i=0;i<4;i++){
- pinMode(enable[i], OUTPUT);
- digitalWrite(enable[i], HIGH);
- }
- //resetam pinii
- clear();
- //initializam pinii cu butonul si sliderul
- pinMode(0, INPUT);
- pinMode(13, INPUT);
- }
- int nr=0;
- int bt, prev;
- void loop() {
- prev=bt;
- bt=digitalRead(13);//citim butonul
- //detectam un front crescator pe pinul cu buton
- if(bt==1 && prev ==0){
- if(digitalRead(0))//daca sliderul este inchis
- nr+=10;//numaram din 10 in 10
- else//daca sliderul e deschis
- nr++;//numaram din 1 in 1
- if(nr>=10000)
- nr=0;
- }
- //afisam numarul pe display
- afisare(nr);
- }
- //functie care afiseaza nu numar
- void afisare(int nr){
- cifra(3, nr%10);//afisam unitatile
- nr=nr/10;//eliminam unitatile
- cifra(2, nr%10);//afisam zecile
- nr=nr/10;//eliminam zecile
- cifra(1, nr%10);//afisam sutele
- nr=nr/10;//eliminam sutele
- cifra(0, nr%10);//afisam miile
- }
- //functie care reseteaza pinii
- void clear(){
- for(int i=0;i<7;i++){
- digitalWrite(pin[i], HIGH);
- }
- }
- //functie care afiseaza o cifra(nr) pe display-ul n
- void cifra(int n, int nr){
- //resetam pinii
- clear();
- //activam tranzistorul
- digitalWrite(enable[n], LOW);
- //setam pinii conform matricii
- for(int i=0;i<7;i++){
- digitalWrite(pin[i], !cifre[nr][i]);
- }
- delay(1);
- //dezactivam tranzistorul
- digitalWrite(enable[n], HIGH);
- delay(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment