Skip to content

Instantly share code, notes, and snippets.

@sj82516
Created March 11, 2015 12:22
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/c1f6f53beef4e0971bee to your computer and use it in GitHub Desktop.
Save sj82516/c1f6f53beef4e0971bee to your computer and use it in GitHub Desktop.
// Lab01
// LM35 + 4*7 segment Display
// 七段顯示器 reference: Cooper Maa
// define the LED digit patterns, from 0 - 9
// 1 = LED on, 0 = LED off, in this order:
// Arduino pin: 2,3,4,5,6,7,8 (Mapping a,b,c,d,e,f,g of Seven-Segment LED)
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() {
// 7-segment
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
//十位數 7 個位數
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
digitalWrite(9, 0); // 關閉小數點
Serial.begin(9600);
}
// 在七段顯示器上顯示指定的一個數字
void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte seg = 0; seg < 7; ++seg) {
digitalWrite(pin, seven_seg_digits[digit][seg]);
++pin;
}
}
void loop() {
float reading;
int temp;
reading = analogRead(A5);
temp = (500 * reading) / 1024;
//十位數輸出
digitalWrite(10,LOW);
sevenSegWrite(temp/10);
delay(5);
digitalWrite(10,HIGH);
//個位數輸出
digitalWrite(11,LOW);
sevenSegWrite(temp%10);
delay(5);
digitalWrite(11,HIGH);
//電腦顯示debug用
Serial.println(temp);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment