175346i6kgs62wjwxc3s6h_WPS圖片.jpg (4.41 MB, 下載次數: 47)
下載附件
2019-4-15 11:09 上傳
- int a = 15;//設置端口
- int b = 19;
- int c = 7;
- int d = 5;
- int e = 4;
- int f = 16;
- int g = 8;
- int dp = 6;
- int tempPin = 7;
- int d1 = 14;
- int d2 = 17;
- int d3 = 18;
- int d4 = 9;
- int n = 0;//溫度變量
- int del = 2; //數碼管的亮度
- unsigned long m=0
- byte segs[7] = { a, b, c, d, e, f, g }
- byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 },
- { 0,1,1,0,0,0,0 },
- { 1,1,0,1,1,0,1 },
- { 1,1,1,1,0,0,1 },
- { 0,1,1,0,0,1,1 },
- { 1,0,1,1,0,1,1 },
- { 1,0,1,1,1,1,1 },
- { 1,1,1,0,0,0,0 },
- { 1,1,1,1,1,1,1 },
- { 1,1,1,1,0,1,1 }
- };
- void setup()
- {
- pinMode(d1, OUTPUT);
- pinMode(d2, OUTPUT);
- pinMode(d3, OUTPUT);
- pinMode(d4, OUTPUT);
- pinMode(a, OUTPUT);
- pinMode(b, OUTPUT);
- pinMode(c, OUTPUT);
- pinMode(d, OUTPUT);
- pinMode(e, OUTPUT);
- pinMode(f, OUTPUT);
- pinMode(g, OUTPUT);
- pinMode(dp, OUTPUT);
- pinMode(11, OUTPUT);
- digitalWrite(11, LOW);
- Serial.begin(9600);
- }
- void loop()//運行程序
- {
- float tempval=analogRead(tempPin)* 4.6;
- if (m%30==0) n=int(tempval);
- if (n>300) digitalWrite(11, HIGH);
- if (n<=300) digitalWrite(11, LOW);
- clearLEDs()
- delay(del)
- lightSegments(n/1000%10);
- pickDigit((n/1000%10>0));
- clearLEDs();
- delay(del);
- pickDigit(2);
- lightSegments(n/100%10);
- delay(del+2);
- clearLEDs();
- pickDigit(3);
- lightSegments(n/10%10);
- dispDec(3);
- delay(del+2);
- clearLEDs();
- delay(del);
- pickDigit(4);
- lightSegments(n%10);
- delay(del-1);
- m++;
- Serial.println(analogRead(tempPin));
- Serial.println(n);
- }
- void pickDigit(int x)
- {
- digitalWrite(d1, LOW);
- digitalWrite(d2, LOW);
- digitalWrite(d3, LOW);
- digitalWrite(d4, LOW);
- switch(x)
- {
- case 1:
- digitalWrite(d1, HIGH);
- break;
- case 2:
- digitalWrite(d2, HIGH);
- break;
- case 3:
- digitalWrite(d3, HIGH);
- break;
- case 4:// default:
- digitalWrite(d4, (m%100>=30));
- break;
- }
- }
- void dispDec(int x)
- {
- digitalWrite(dp, LOW);//點亮小數點
- }
- void clearLEDs()
- {
- for (int i = 0; i < 7; i++)
- {
- digitalWrite(segs[ i], HIGH);
- }
- digitalWrite(dp, HIGH);
- }
- void lightSegments(int x)
- {
- for (int i = 0; i < 7; i++)
- {
- digitalWrite(segs[ i], 1-seven_seg_digits[x][ i]);
- }
- }
復制代碼 |