Skip to content

Instantly share code, notes, and snippets.

@sj82516
Created July 21, 2014 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sj82516/90cc040fdaa44a4a1117 to your computer and use it in GitHub Desktop.
Save sj82516/90cc040fdaa44a4a1117 to your computer and use it in GitHub Desktop.
Arduino_Lab7_extends
// 七段顯示器製作倒數功能 (v1)
int potPin=3;
byte seven_seg_digits[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,0,0,1,1 } // = 9
};
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(9, 0); // 關閉小數點
}
void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte seg = 0; seg < 7; ++seg) {
digitalWrite(pin, seven_seg_digits[digit][seg]);
++pin;
}
}
void loop() {
int sensorValue=analogRead(potPin);
Serial.println(sensorValue,DEC);
// 顯示數字 '9'
int level=0;
for(;sensorValue>0;level++){
sensorValue-=114;
}
switch(level){
case 0 :sevenSegWrite(0);
break;
case 1 :sevenSegWrite(1);
break;
case 2 :sevenSegWrite(2);
break;
case 3 :sevenSegWrite(3);
break;
case 4 :sevenSegWrite(4);
break;
case 5 :sevenSegWrite(5);
break;
case 6 :sevenSegWrite(6);
break;
case 7 :sevenSegWrite(7);
break;
case 8:sevenSegWrite(8);
break;
default:sevenSegWrite(9);
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment