Hopp til innhold
Bokmål

Fag

Oppgave

NDLA-boksen: Temperatur- og lysmåler

Temperatur og lysstyrke kan være interessante data. I denne oppgaven skal du lage en værstasjon med akkurat denne informasjonen vist på et display.

Programmering med kunstig intelligens

For å få hjelp til å programmere dette prosjektet ved hjelp av kunstig intelligens må du gi prateroboten klare instruksjoner. Dersom du vil ha et svar som er tilpassa den konkrete oppgaven du jobber med, må du gi prateroboten så omfattende informasjon som mulig om oppgavekonteksten.

Instruks

Først må du fortelle prateroboten hvilken rolle den skal ha, slik at den vet hvordan den skal hjelpe deg.

Forslag til rolleinstruks

Jeg vil at du skal være min digitale veileder og hjelpe meg med oppkopling og programmering av en Arduino Uno R3.

Du skal bruke faguttrykk og ellers et språk og forklaringer som er tilpassa elever i videregående skole. Du skal være engasjerende og motiverende.

Først skal du forklare hvordan systemet jeg spør om, virker.

Så vil jeg ha en oversikt over komponentene jeg kan ha bruk for når jeg bygger dette systemet. Gi meg både navn og bruksmåter.

Jeg trenger også forslag til hvordan systemet skal koples sammen. Gi meg instruksjoner om hvilke pinner som skal benyttes på komponentene og Arduinoen, og om det er behov for resistorer i kretsen.

Du skal så lage en programkode som kan benyttes på systemet. Først forklarer du godt hver enkelt del av programmet. Så skriver du en komplett programkode.

Jeg ønsker at du lager ei liste over eventuelle vanskelige fagbegreper og forklarer dem med et enkelt språk.

Du skal også lage ei liste med praktiske eksempler på bruk av et slikt system i det virkelige liv.

Til slutt skal du lage et sammendrag av de viktigste punktene i svaret ditt.

Programkode

Når du har gitt prateroboten en rolle, er du klar til å fortelle den hva du trenger hjelp til. Du må da informere om hvilke komponenter som skal koples til, og hva du ønsker at prosjektet skal gjøre.

Forslag til instruks om programkode

Du skal lage en programkode for Arduino Uno som skal måle temperatur med en TMP36 temperatursensor, og en vanlig lyssensor. Måleverdiene skal vises på et 16 x 2 display, og på første linje skal teksten være Temperatur: og verdien fra temperaturmåleren, mens på andre linje skal teksten være Lysstyrke: og måleverdien fra lyssensoren.

Verdiene skal oppdatere seg hvert sekund.

Faglig støtte

Prateroboten kan gi deg råd og veiledning om hvordan du skal kople ledninger og sensorer. Den kan også forklare hvordan programkoden er bygd opp, og hva de enkelte programlinjene betyr.

Forslag til instruks om faglig støtte

Gi meg ei god forklaring som beskriver hvordan jeg skal kople opp komponentene og Arduinoen. Jeg vil også at du skal gi meg ei god forklaring på hver enkelt programlinje, slik at det blir enkelt å forstå hvordan dette er programmert.

Bruksområde og utvidelse av prosjektet

Du kan også spørre prateroboten om hva et slikt prosjekt kan brukes til, og hvordan dette kan utvides ved å benytte flere sensorer og systemer.

Forslag til instruks om bruksområde og utvidelse

Gi meg forslag til hva dette prosjektet kan brukes til i det virkelige liv, og hvordan prosjektet kan utvides med flere komponenter.

Instruks til prateroboten

Når du snakker med prateroboten, kan du altså stille mange delspørsmål for å komme fram til riktig svar. Alternativt kan du samle alt som en lang instruks, men da får du også et langt svar og mye informasjon på en gang.

Vil du ha en komplett instruks, kan du bruke denne teksten:

Komplett instruks

Jeg vil at du skal være min digitale veileder og hjelpe meg med oppkopling og programmering av en Arduino Uno R3.

Du skal bruke faguttrykk og ellers et språk og forklaringer som er tilpassa elever i videregående skole. Du skal være engasjerende og motiverende.

Først skal du forklare hvordan systemet jeg spør om, virker.

Så vil jeg ha en oversikt over komponentene jeg kan ha bruk for når jeg bygger dette systemet. Gi meg både navn og bruksmåter.

Jeg trenger også forslag til hvordan systemet skal koples sammen. Gi meg instruksjoner om hvilke pinner som skal benyttes på komponentene og Arduinoen, og om det er behov for resistorer i kretsen.

Du skal så lage en programkode som kan benyttes på systemet. Først forklarer du godt hver enkelt del av programmet. Så skriver du en komplett programkode.

Jeg ønsker at du lager ei liste over eventuelle vanskelige fagbegreper, og forklar dem med et enkelt språk.

Lag ei liste med praktiske eksempler på bruk av et slikt system i det virkelige liv.

Til slutt skal du lage et sammendrag av de viktigste punkta i svaret ditt.

Dette er programmeringsoppgaven du skal løse: Lag en programkode for Arduino Uno som skal måle temperatur med en TMP36 temperatursensor, og en vanlig lyssensor. Måleverdiene skal vises på et 16X2 display, og på første linje skal teksten være Temperatur: og verdien fra temperaturmåleren, mens på andre linje skal teksten være Lysstyrke: og måleverdien fra lyssensoren.

Verdiene skal oppdatere seg hvert sekund.

Gi meg ei god forklaring som beskriver hvordan jeg skal kople opp komponentene og Arduinoen. Jeg vil også at du skal gi meg ei god forklaring på hver enkelt programlinje, slik at det blir enkelt å forstå hvordan dette er programmert.

Gi meg forslag til hva dette prosjektet kan brukes til i det virkelige liv, og hvordan prosjektet kan utvides med flere komponenter.

Illustrasjoner av temperatur- og lysmåleren

Filer

I filene under finner du tegninger for å skrive ut sidevegger og lokk for å montere sensorene og displayet i denne øvelsen.

Du kan også laste ned et ferdig koplingsskjema og en ferdig instruks til bruk på NDLAs egendefinerte praterobot.

Løsningsforslag for programkode

I boksen under er det et løsningsforslag for programmet.

Fungerende programkode

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

// Endre I2C-adressen hvis nødvendig (bruk I2C-skanner)

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int tempSensorPin = A0; // TMP36 tilkopla A0

const int lightSensorPin = A1; // Fotomotstand tilkopla A1

void setup() {

Serial.begin(9600);

// Initialiser LCD

lcd.init(); // Bruk "init()" i stedet for "begin()"

lcd.backlight(); // Slår på bakgrunnsbelysning

lcd.setCursor(0, 0);

lcd.print("Sensor System");

lcd.setCursor(0, 1);

lcd.print("Initializing...");

delay(2000);

}

void loop() {

// Leser temperaturdata fra TMP36

int tempValue = analogRead(tempSensorPin);

float voltage = tempValue * (5.0 / 1023.0);

float temperatureC = (voltage - 0.5) * 100;

// Leser lysnivå fra fotomotstanden

int lightValue = analogRead(lightSensorPin);

// Oppdaterer LCD med måleverdier

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Temperatur: ");

lcd.print(temperatureC);

lcd.print("C");

lcd.setCursor(0, 1);

lcd.print("Lysstyrke: ");

lcd.print(lightValue);

delay(1000);

}

Relatert innhold

NDLA-boksen

NDLA-boksen er spesialdesigna for Arduino-programmering. Her får du mulighet til å lage din egen boks til bruk i programmeringsøvinger.

Skrevet av Roger Rosmo.
Sist oppdatert 21.01.2025