const int photoresistor = 0; const int button = 1; const int ch1 = 2; const int ch2 = 3; const int ch3 = 4; const int ch4 = 5; const int aa = 6; const int bb = 7; const int cc = 8; const int dd = 9; const int ee = 10; const int ff = 11; const int gg = 12; const int dot = 13; const int delay1=3; const float radius = 0.04; //enter it in meters const double pi = 3.14159265; long double periodtime; double speedt; int frequency; int slide = 0; void setup() { Serial.begin(9600); pinMode(ch1, OUTPUT); pinMode(ch2, OUTPUT); pinMode(ch3, OUTPUT); pinMode(ch4, OUTPUT); pinMode(aa, OUTPUT); pinMode(bb, OUTPUT); pinMode(cc, OUTPUT); pinMode(dd, OUTPUT); pinMode(ee, OUTPUT); pinMode(ff, OUTPUT); pinMode(gg, OUTPUT); pinMode(dot, OUTPUT); } long long period() { long long time1; long long time2; long PeriodTime; while(analogRead(photoresistor) >= 40); while(analogRead(photoresistor) < 40) { changeSlide(); } time1 = micros(); while(analogRead(photoresistor) >= 40); while(analogRead(photoresistor) < 40); time2 = micros(); PeriodTime = (time2 - time1)*3; if (PeriodTime < 2000) { return 0; } else { return PeriodTime; } } void loop() { periodtime = period(); if (periodtime > 0) { speedt = 2 * radius * pi / periodtime * 1000000; for (int x = 0; x < 100; x++) { changeSlide(); switch(slide) { case 0: //speed m/s printNumber(speedt*100,2); break; case 1: //speed km/h printNumber(speedt*360,2); break; case 2: //frequency 1/s frequency = 1 / periodtime * 100000000; printNumber(frequency,2); break; case 3: //period Time T printNumber(periodtime/1000,0); break; } } } } void changeSlide() { if (analogRead(button) > 900) { slide++; delay(300); if(slide > 3) { slide = 0; } digitalWrite(ch1,0); digitalWrite(ch2,0); digitalWrite(ch3,0); digitalWrite(ch4,0); switch(slide) { case 0: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 1: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 2: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } } } void printNumber(long number,int place) { int num1 = number / 1000; int num2 = number / 100 - num1 * 10; int num3 = number / 10 - num1 * 100 - num2 * 10; int num4 = number - num1 * 1000- num2 * 100 - num3 * 10; //charachter 1 digitalWrite(ch1,0); digitalWrite(ch2,1); digitalWrite(ch3,1); digitalWrite(ch4,1); if(place==1) { digitalWrite(dot,1); } switch(num1) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 2 digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); digitalWrite(ch1,1); digitalWrite(ch2,0); digitalWrite(ch3,1); digitalWrite(ch4,1); if(place==2) { digitalWrite(dot,1); } switch(num2) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 3 digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); digitalWrite(ch1,1); digitalWrite(ch2,1); digitalWrite(ch3,0); digitalWrite(ch4,1); if(place==3) { digitalWrite(dot,1); } switch(num3) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); //charachter 4 digitalWrite(dot,0); digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(ch1,1); digitalWrite(ch2,1); digitalWrite(ch3,1); digitalWrite(ch4,0); if(place==4) { digitalWrite(dot,1); } switch(num4) { case 0: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,0); break; case 1: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 2: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,0); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,0); digitalWrite(gg,1); break; case 3: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,1); break; case 4: digitalWrite(aa,0); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 5: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; case 6: digitalWrite(aa,1); digitalWrite(bb,0); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 7: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; case 8: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,1); digitalWrite(ff,1); digitalWrite(gg,1); break; case 9: digitalWrite(aa,1); digitalWrite(bb,1); digitalWrite(cc,1); digitalWrite(dd,1); digitalWrite(ee,0); digitalWrite(ff,1); digitalWrite(gg,1); break; default: digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); break; } delay(delay1); digitalWrite(aa,0); digitalWrite(bb,0); digitalWrite(cc,0); digitalWrite(dd,0); digitalWrite(ee,0); digitalWrite(ff,0); digitalWrite(gg,0); digitalWrite(dot,0); }