Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display

Onderdelen en Benodigdheden

OnderdeelAantal
Breadboard (generiek)1
Draadjes (generiek)1
SparkFun 7-Segment Serial Display - Rood1
USB-A naar Mini-USB Kabel1
Arduino Mega 25601

Apps en Online Services

  • Arduino IDE

Over dit Project

Dit project is ontworpen omdat ik geen timer bij de hand had. Je uploadt de code naar je Arduino (elk type werkt) en de aftelling start automatisch. Wil je de totale tijd wijzigen? Pas dan deze regel in de code aan:

long n = 60000; // starttijd → KAN VERANDERD WORDEN IN ELKE GEWENSTE TIJD

Let op! 1000 = 1 seconde. Dus 60000 = 60 seconden. De formule (SECONDEN x 1000) geeft het getal dat je invult bij 60000. Druk je op de reset-knop, dan start de teller opnieuw.

Code

Gebruik deze code voor je afteltimer:

// 7-segment pin nummers - 7-segment licht - Arduino pin nummers
// pin 11 - A = 12
// pin 7  - B = 10
// pin 4  - C = 8
// pin 2  - D = 7
// pin 1  - E = 6
// pin 10 - F = 11
// pin 5  - G = 9
// pin 3 is decimaal

/* 12 11 10 9 8 7
   |  |  | | | |
   A --- F
   |  B | G | ---
   E | | C | |
   --- . dec D
   |  |  | | | |
   1  2  3  4  5  6 */

// pin 12 - eerste digit = 1
// pin 9  - tweede digit = 2
// pin 8  - derde digit = 3
// pin 6  - vierde digit = 4

const int a = 12;
const int b = 10;
const int c = 8;
const int d = 7;
const int e = 6;
const int f = 11;
const int g = 9;
int p = 0;
int startStopReset = 13;
const int d1 = 1;
const int d2 = 2;
const int d3 = 3;
const int d4 = 4;
long n = 60000; // starttijd → KAN VERANDERD WORDEN IN ELKE GEWENSTE TIJD
int x = 100;
int del = 55; // delay waarde

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(p, OUTPUT);
  pinMode(startStopReset, INPUT);
  digitalWrite(startStopReset, HIGH);
}

void loop() {
  digitalWrite(p, HIGH);
  clearLEDs();
  pickDigit(1);
  pickNumber((n/x/1000)%10);
  delayMicroseconds(del);
  clearLEDs();
  pickDigit(2);
  pickNumber((n/x/100)%10);
  delayMicroseconds(del);
  clearLEDs();
  pickDigit(3);
  dispDec(3);
  pickNumber((n/x/10)%10);
  delayMicroseconds(del);
  clearLEDs();
  pickDigit(4);
  pickNumber(n/x%10);
  delayMicroseconds(del);
  n--; // 'n++' voor stopwatch
  if (digitalRead(13) == LOW) {
    n = 60000; // herstart-tijd → VERANDER NAAR OORSPRONKELIJKE STARTTIJD
  }
}

void pickDigit(int x) { // verandert digit
  digitalWrite(d1, HIGH);
  digitalWrite(d2, HIGH);
  digitalWrite(d3, HIGH);
  digitalWrite(d4, HIGH);
  switch(x) {
    case 1: digitalWrite(d1, LOW); break;
    case 2: digitalWrite(d2, LOW); break;
    case 3: digitalWrite(d3, LOW); digitalWrite(p, HIGH); break;
    default: digitalWrite(d4, LOW); break;
  }
}

void pickNumber(int x) { // verandert waarde van nummer
  switch(x) {
    default: zero(); break;
    case 1: one(); break;
    case 2: two(); break;
    case 3: three(); break;
    case 4: four(); break;
    case 5: five(); break;
    case 6: six(); break;
    case 7: seven(); break;
    case 8: eight(); break;
    case 9: nine(); break;
  }
}

void dispDec(int x) {
  digitalWrite(p, LOW);
}

void clearLEDs() {
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(p, LOW);
}

void zero() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW);
}

void one() {
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
}

void two() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
}

void three() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
}

void four() {
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
}

void five() {
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
}

void six() {
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
}

void seven() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
}

void eight() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
}

void nine() {
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
}

Schema

Gebruik dit verbindingsschema om je 4-digit display met je Arduino te verbinden:

Bouw een Betrouwbare Arduino Afteltimer met SparkFun 7‑Segment Display

Productieproces

  1. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  2. Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
  3. Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
  4. Bouw Je Eigen Arduino Tamagotchi: Een Digitale Huisdier DIY Project
  5. Slimme Draadloze Lichtschakelaar Controller: Arduino-gebaseerde Remote Switch Manipulator
  6. Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
  7. Slimme beweegactiverde waterpistool gebouwd met Arduino Nano
  8. Arduino Handwastimer: Simpele DIY-tool om COVID‑19 te bestrijden
  9. Arduino Zonnebloem: Bouw een elektronische zon-volgende zonnebloem
  10. Bouw je eigen RC Porsche-auto met Arduino: Stap-voor-stap handleiding
  11. Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding