Hopp til innhald
Nynorsk

Fag

Oppgåve

NDLA-boksen: Temperatur- og lysmålar

Temperatur og lysstyrke kan vere interessante data. I denne oppgåva skal du lage ein vêrstasjon med akkurat denne informasjonen vist på eit display.

Programmering med kunstig intelligens

For å få hjelp til å programmere dette prosjektet ved hjelp av kunstig intelligens må du gi prateroboten klare instruksjonar. Dersom du vil ha eit svar som er tilpassa den konkrete oppgåva du jobbar med, må du gi prateroboten så omfattande informasjon som mogleg om oppgåvekonteksten.

Instruks

Først må du fortelje prateroboten kva rolle han skal ha, slik at han veit korleis han skal hjelpe deg.

Forslag til rolleinstruks

Eg vil at du skal vere den digitale rettleiaren min og hjelpe meg med oppkopling og programmering av ein Arduino Uno R3.

Du skal bruke faguttrykk og elles eit språk og forklaringar som er tilpassa elevar i vidaregåande skule. Du skal vere engasjerande og motiverande.

Først skal du forklare korleis systemet eg spør om, verkar.

Så vil eg ha ei oversikt over komponentane eg kan ha bruk for når eg bygger dette systemet. Gi meg både namn og bruksmåtar.

Eg treng òg forslag til korleis systemet skal koplast saman. Gi meg instruksjonar om kva pinnar som skal nyttast på komponentane og Arduinoen, og om det er behov for resistorar i kretsen.

Du skal så lage ein programkode som kan nyttast på systemet. Først forklarer du godt kvar enkelt del av programmet. Så skriv du ein komplett programkode.

Eg ønsker at du lagar ei liste over eventuelle vanskelege fagomgrep og forklarer dei med eit enkelt språk.

Du skal òg lage ei liste med praktiske døme på bruk av eit slikt system i det verkelege livet.

Til slutt skal du lage eit samandrag av dei viktigaste punkta i svaret ditt.

Programkode

Når du har gitt prateroboten ei rolle, er du klar til å fortelje han kva du treng hjelp til. Du må då informere om kva komponentar som skal koplast til, og kva du ønsker at prosjektet skal gjere.

Forslag til instruks om programkode

Du skal lage ein programkode for Arduino Uno som skal måle temperatur med ein TMP36 temperatursensor, og ein vanleg lyssensor. Måleverdiane skal visast på eit 16 x 2 display, og på første linje skal teksten vere Temperatur: og verdien frå temperaturmålaren, mens på andre linje skal teksten vere Lysstyrke: og måleverdien frå lyssensoren.

Verdiane skal oppdatere seg kvart sekund.

Fagleg støtte

Prateroboten kan gi deg råd og rettleiing om korleis du skal kople leidningar og sensorar. Han kan òg forklare korleis programkoden er bygd opp, og kva kvar enkelt programlinje betyr.

Forslag til instruks om fagleg støtte

Gi meg ei god forklaring som beskriv korleis eg skal kople opp komponentane og Arduinoen. Eg vil òg at du skal gi meg ei god forklaring på kvar enkelt programlinje, slik at det blir lett å forstå korleis dette er programmert.

Bruksområde og utviding av prosjektet

Du kan òg spørje prateroboten om kva eit slikt prosjekt kan brukast til, og korleis dette kan utvidast ved å nytte fleire sensorar og system.

Forslag til instruks om bruksområde og utviding

Gi meg forslag til kva dette prosjektet kan brukast til i det verkelege livet, og korleis prosjektet kan utvidast med fleire komponentar.

Instruks til prateroboten

Når du snakkar med prateroboten, kan du altså stille mange delspørsmål for å komme fram til rett svar. Alternativt kan du samle alt som ein lang instruks, men då får du òg eit langt svar og mykje informasjon på ein gong.

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

Komplett instruks

Eg vil at du skal vere den digitale rettleiaren min og hjelpe meg med oppkopling og programmering av ein Arduino Uno R3.

Du skal bruke faguttrykk og elles eit språk og forklaringar som er tilpassa elevar i vidaregåande skule. Du skal vere engasjerande og motiverande.

Først skal du forklare korleis systemet eg spør om, verkar.

Så vil eg ha ei oversikt over komponentane eg kan ha bruk for når eg bygger dette systemet. Gi meg både namn og bruksmåtar.

Eg treng òg forslag til korleis systemet skal koplast saman. Gi meg instruksjonar om kva pinnar som skal nyttast på komponentane og Arduinoen, og om det er behov for resistorar i kretsen.

Du skal så lage ein programkode som kan nyttast på systemet. Først forklarer du godt kvar enkelt del av programmet. Så skriv du ein komplett programkode.

Eg ønsker at du lagar ei liste over eventuelle vanskelege fagomgrep, og forklar dei med eit enkelt språk.

Lag ei liste med praktiske døme på bruk av eit slikt system i det verkelege livet.

Til slutt skal du lage eit samandrag av dei viktigaste punkta i svaret ditt.

Dette er programmeringsoppgåva du skal løyse: Lag ein programkode for Arduino Uno som skal måle temperatur med ein TMP36 temperatursensor, og ein vanleg lyssensor. Måleverdiane skal visast på eit 16X2 display, og på første linje skal teksten vere Temperatur: og verdien frå temperaturmålaren, mens på andre linje skal teksten vere Lysstyrke: og måleverdien frå lyssensoren.

Verdiane skal oppdatere seg kvart sekund.

Gi meg ei god forklaring som beskriv korleis eg skal kople opp komponentane og Arduinoen. Eg vil òg at du skal gi meg ei god forklaring på kvar enkelt programlinje, slik at det blir lett å forstå korleis dette er programmert.

Gi meg forslag til kva dette prosjektet kan brukast til i det verkelege livet, og korleis prosjektet kan utvidast med fleire komponentar.

Illustrasjonar av temperatur- og lysmålaren

Filer

I filene under finn du teikningar for å skrive ut sidevegger og lokk for å montere sensorane og displayet i denne øvinga.

Du kan òg laste ned eit ferdig koplingsskjema og ein ferdig instruks til bruk på NDLAs eigendefinerte praterobot.

Løysingsforslag for programkode

I boksen under er det eit løysingsforslag for programmet.

Fungerande programkode

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

// Endre I2C-adressa om nødvendig (bruk I2C-skannar)

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 stedaden 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() {

// Les temperaturdata frå TMP36

int tempValue = analogRead(tempSensorPin);

float voltage = tempValue * (5.0 / 1023.0);

float temperatureC = (voltage - 0.5) * 100;

// Les lysnivå frå fotomotstanden

int lightValue = analogRead(lightSensorPin);

// Oppdaterer LCD med måleverdiar

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 innhald

NDLA-boksen

NDLA-boksen er spesialdesigna for Arduino-programmering. Her får du høve til å lage din eigen boks til bruk i programmeringsøvingar.

Skrive av Roger Rosmo.
Sist oppdatert 21.01.2025