Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int sensorValue = 0;
- int outputValue = 0;
- int rightOutput = 0;
- void setup()
- {
- pinMode(A0, INPUT);
- // right segment
- pinMode(2, OUTPUT); // LSB
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT); // MSB
- // left segment
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- Serial.begin(9600);
- }
- void loop()
- {
- // read the analog in value:
- sensorValue = analogRead(A0);
- // map it to the range of the analog out:
- outputValue = map(sensorValue, 0, 1023, 0, 99);
- // right display
- rightOutput = outputValue%10;
- switch (rightOutput){
- case 1:
- digitalWrite(6, HIGH);
- digitalWrite(7, LOW);
- digitalWrite(8, LOW);
- digitalWrite(9, LOW);
- break;
- case 2:
- digitalWrite(6, LOW);
- digitalWrite(7, HIGH);
- digitalWrite(8, LOW);
- digitalWrite(9, LOW);
- break;
- case 3:
- digitalWrite(6, HIGH);
- digitalWrite(7, HIGH);
- digitalWrite(8, LOW);
- digitalWrite(9, LOW);
- break;
- case 4:
- digitalWrite(6, LOW);
- digitalWrite(7, LOW);
- digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- break;
- case 5:
- digitalWrite(6, HIGH);
- digitalWrite(7, LOW);
- digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- break;
- case 6:
- digitalWrite(6, LOW);
- digitalWrite(7, HIGH);
- digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- break;
- case 7:
- digitalWrite(6, HIGH);
- digitalWrite(7, HIGH);
- digitalWrite(8, HIGH);
- digitalWrite(9, LOW);
- break;
- case 8:
- digitalWrite(6, LOW);
- digitalWrite(7, LOW);
- digitalWrite(8, LOW);
- digitalWrite(9, HIGH);
- break;
- case 9:
- digitalWrite(6, HIGH);
- digitalWrite(7, LOW);
- digitalWrite(8, LOW);
- digitalWrite(9, HIGH);
- break;
- default:
- digitalWrite(6, LOW);
- digitalWrite(7, LOW);
- digitalWrite(8, LOW);
- digitalWrite(9, LOW);
- break;
- }
- // left display
- if (outputValue >= 0 && outputValue <= 9){
- digitalWrite(2, LOW);
- digitalWrite(3, LOW);
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 10 && outputValue <= 19){
- digitalWrite(2, HIGH);
- digitalWrite(3, LOW);
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 20 && outputValue <= 29){
- digitalWrite(2, LOW);
- digitalWrite(3, HIGH);
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 30 && outputValue <= 39){
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 40 && outputValue <= 49){
- digitalWrite(2, LOW);
- digitalWrite(3, LOW);
- digitalWrite(4, HIGH);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 50 && outputValue <= 59){
- digitalWrite(2, HIGH);
- digitalWrite(3, LOW);
- digitalWrite(4, HIGH);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 60 && outputValue <= 69){
- digitalWrite(2, LOW);
- digitalWrite(3, HIGH);
- digitalWrite(4, HIGH);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 70 && outputValue <= 89){
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- digitalWrite(4, HIGH);
- digitalWrite(5, LOW);
- }
- if (outputValue >= 80 && outputValue <= 89){
- digitalWrite(2, LOW);
- digitalWrite(3, LOW);
- digitalWrite(4, LOW);
- digitalWrite(5, HIGH);
- }
- if (outputValue >= 90 && outputValue <= 99){
- digitalWrite(2, HIGH);
- digitalWrite(3, LOW);
- digitalWrite(4, LOW);
- digitalWrite(5, HIGH);
- }
- // print the results to the serial monitor:
- Serial.print("sensor = ");
- Serial.print(sensorValue);
- Serial.print("\t output = ");
- Serial.println(outputValue);
- // wait 2 milliseconds before the next loop for the
- // analog-to-digital converter to settle after the
- // last reading:
- delay(2); // Wait for 2 millisecond(s)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement