Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Code for 3 7-segment displays (approx. 1 second timer)
- // Are there better ways to do this? Yes.
- int seg[] = {6, 7, 8, 9, 10, 11, 12};
- int sel[] = {3, 4, 5};
- int a = 0;
- int b = 0;
- int c = 0;
- int n = 0;
- void setup() {
- pinMode(seg[0], OUTPUT);
- pinMode(seg[1], OUTPUT);
- pinMode(seg[2], OUTPUT);
- pinMode(seg[3], OUTPUT);
- pinMode(seg[4], OUTPUT);
- pinMode(seg[5], OUTPUT);
- pinMode(seg[6], OUTPUT);
- pinMode(sel[0], OUTPUT);
- pinMode(sel[1], OUTPUT);
- pinMode(sel[2], OUTPUT);
- }
- void writeDigit(int pos, int val) {
- digitalWrite(sel[0], (pos==0)?HIGH:LOW);
- digitalWrite(sel[1], (pos==1)?HIGH:LOW);
- digitalWrite(sel[2], (pos==2)?HIGH:LOW);
- digitalWrite(seg[0], (val==0||val==2||val==6||val==8)?LOW:HIGH);
- digitalWrite(seg[1], (val==1||val==4||val==7||val==9)?HIGH:LOW);
- digitalWrite(seg[2], (val==2)?HIGH:LOW);
- digitalWrite(seg[3], (val==5||val==6)?HIGH:LOW);
- digitalWrite(seg[4], (val==1||val==4)?HIGH:LOW);
- digitalWrite(seg[5], (val==1||val==2||val==3||val==7)?HIGH:LOW);
- digitalWrite(seg[6], (val==0||val==1||val==7)?HIGH:LOW);
- }
- void loop() {
- writeDigit(0, a);
- delay(3);
- writeDigit(1, b);
- delay(3);
- writeDigit(2, c);
- delay(4);
- n++;
- if (n == 100) {
- n = 0;
- c++;
- if (c == 10) { c = 0; b++; }
- if (b == 10) { b = 0; a++; }
- if (a == 10) { a = 0; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement