int pin_pot=A0; int AD_value=0; int brzina; int nDelayMicroseconds = 50; int d1 = 8; int d2 = 9; int d3 = 10; int d4 = 11; int data; int segData; void setup() { DDRD= B11111111; DDRB= B11111111; pinMode(pin_pot,INPUT); } void loop() { int d1, d2, d3, d4; d1 = data / 1000 % 10; //Znamenka tisućice d2 = data / 100 % 10; //Znamenka stotice d3 = data / 10 % 10; //Znamenka desetice d4 = data % 10; data=analogRead(pin_pot); for (int m = 0; m<80; m++) { segData = DigitTo7SegEncoder(d1, 1); pickDigit(1); //Selection of a digital display PORTD = segData; delayMicroseconds(nDelayMicroseconds); segData = DigitTo7SegEncoder(d2, 1); pickDigit(2); //Select the first two digital display PORTD = segData; delayMicroseconds(nDelayMicroseconds); segData = DigitTo7SegEncoder(d3, 1); pickDigit(3); //Select the first three digital display PORTD = segData; delayMicroseconds(nDelayMicroseconds); segData = DigitTo7SegEncoder(d4, 1); pickDigit(4); //Select the first four digital display PORTD = segData; delayMicroseconds(nDelayMicroseconds); } } void pickDigit(int x) //Defined pickDigit (x), whose role is to open the port dx { digitalWrite(d1, HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); switch (x) { case 1: digitalWrite(d1, LOW); break; case 2: digitalWrite(d2, LOW); break; case 3: digitalWrite(d3, LOW); break; default: digitalWrite(d4, LOW); break; } } unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common) { unsigned char SegVal; switch (digit) { case 0: if (comm 1) SegVal = 0b00111111; // broj 0 else SegVal = ~0b00111111; break; case 1: if (comm 1) SegVal = 0b00000110; // broj 1 else SegVal = ~0b00000110; break; case 2: if (comm 1) SegVal = 0b01011011; // broj 2 else SegVal = ~0b01011011; break; case 3: if (comm 1) SegVal = 0b01001111; // broj 3 else SegVal = ~0b01001111; break; case 4: if (comm 1) SegVal = 0b01100110; // broj 4 else SegVal = ~0b01100110; break; case 5: if (comm 1) SegVal = 0b01101101; // broj 5 else SegVal = ~0b01101101; break; case 6: if (comm 1) SegVal = 0b01111101; // broj 6 else SegVal = ~0b01111101; break; case 7: if (comm 1) SegVal = 0b00000111; // broj 7 else SegVal = ~0b00000111; break; case 8: if (comm 1) SegVal = 0b01111111; // broj 8 else SegVal = ~0b01111111; break; case 9: if (comm 1) SegVal = 0b01101111; // broj 9 else SegVal = ~0b01101111; } return SegVal; }