Level 2Lærerveiledning - 7-Segment Display

Skrevet av: Martin Ertsås, Morten Minde Neergaard og Susanne Rynning Seip

Kurs: Arduino
Tema: Elektronikk, Tekstbasert
Fag: Naturfag, Teknologi
Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole
Til oppgave

Om oppgaven

I denne oppgaven skal elevene få et display til å telle.

checkOppgaven passer til:

Fag: Naturfag, Teknologi og Design, Teknologi og forskningslære

Anbefalte trinn: 5. trinn - VG3

Tema: Arduino, Kretser, Funksjoner, Switch

Tidsbruk: Dobbelttime

Kompetansemål

Forslag til læringsmål

Forslag til vurderingskriterier

Oppgaven er grunnleggende, og kan ikke brukes alene for vurdering av kompetansemålet.

Forutsetninger og utstyr

    utstyr

Fremgangsmåte

Her kommer tips, erfaring og utfordringer til de ulike stegene i den faktiske oppgaven. Klikk her for å se oppgaveteksten.

Merk

Denne oppgaven krever at elevene holder styr på en god del ledninger, og sluttresultatet vil se noe kaotisk ut.

kaotisk

Løsningsforslag

Display som teller opp og ned med to knapper

Kobling:

Kobling

Kode:

void blank() {
  for (int led = 6; led <= 13; led++) {
    digitalWrite(led, LOW);
  }
}

void tegn_0() {
  blank();
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
}

void tegn_1() {
  blank();
  digitalWrite(9, HIGH);
  digitalWrite(12, HIGH);
}

void tegn_2() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
}

void tegn_3() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
}

void tegn_4() {
  blank();
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(12, HIGH);
}

void tegn_5() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
}

void tegn_6() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(6, HIGH);
}

void tegn_7() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(12, HIGH);
}

void tegn_8() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(9, HIGH);
}

void tegn_9() {
  blank();
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(12, HIGH);
}

int minus = 5;
int pluss = 4;
int tall = 0;

void setup() {
  for (int led = 6; led <= 13; led++) {
    pinMode(led, OUTPUT);
  }
  pinMode(pluss, INPUT_PULLUP);
  pinMode(minus, INPUT_PULLUP);
  tegn_0();
}

void oppdater() {
  switch (tall) {
    case 1:
      tegn_1();
      break;
    case 2:
      tegn_2();
      break;
    case 3:
      tegn_3();
      break;
    case 4:
      tegn_4();
      break;
    case 5:
      tegn_5();
      break;
    case 6:
      tegn_6();
      break;
    case 7:
      tegn_7();
      break;
    case 8:
      tegn_8();
      break;
    case 9:
      tegn_9();
      break;
    case 10:
      tall = 9;
      break;
    default:
      tegn_0();
      tall = 0;
      break;
  }
  digitalWrite(13, HIGH);
  delay(150);
  digitalWrite(13, LOW);
  delay(150);
}

void loop() {
  if (digitalRead(pluss) == LOW) {
    tall += 1;
    oppdater();
  }
  if (digitalRead(minus) == LOW) {
    tall -= 1;
    oppdater();
  }
}

Variasjoner

Eksterne ressurser

Lisens: CC BY-SA 4.0

Forbedre denne siden

Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!