Hopp til innhald
Nynorsk
Oppgåve

NDLA-boksen: RGB-lysdiodar

RGB-diodar er diodar som kan lyse med alle fargar du kan lage med utgangspunkt i fargane raudt, grønt og blått, derav namnet RGB. Ved å justere mengda av kvar enkelt farge kan du lage mange spennande fargar. Tek du utfordringa?

Kva er RGB?

RGB (raudt, grønt, blått) er ein fargemodell som blir brukt ved additiv fargeblanding, det vil seie fargar som oppstår som resultat av utsendt lys med ulike bølgelengder. Her blandar vi altså dei tre fargane, og auget ser ein ny farge basert på samansetjinga av dei tre fargane.

RGB-dioden nyttar ein utgang (kanal) for kvar av dei tre primærfargane raudt, grønt og blått.

Dette systemet let deg styre fargane på ein RGB-LED ved hjelp av tre potensiometer. Kvart potensiometer regulerer éin fargekanal:

  • raudt (R)

  • grønt (G)

  • blått (B)

Ved å vri på potensiometera kan du blande fargane og skape ulike lysnyansar.

Arduino les verdiane frå potensiometera, gjer om dei til PWM-signal og sender dei til LED-dioden for å justere lysstyrken for kvar farge.

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

Du må først 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 desse 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 styre fargane på ein RGB-diode basert på verdiane frå tre potensiometer. Potensiometera skal angi lysmengde for kvar av dei tre fargane raudt, grønt og blått.

Verdiane skal oppdatere seg ti gonger kvart sekund.

Tenk over

Det kan òg vere smart å fortelje prateroboten kva nemningar komponentane du bruker, har, og kva tilkoplingspinnar dei har.

Døme: "RGB-stripa er ein AdaFruit NeoPixel Strip 6 med tilkoplingane 5V, GND og DIN".

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 lage ein programkode for Arduino Uno som skal styre fargane på ein RGB-diode basert på verdiane frå tre potensiometer. Potensiometera skal angi lysmengde for kvar av dei tre fargane raudt, grønt og blått.

Verdiane skal oppdatere seg ti gonger 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 NDLA-boksen med RGB-lysdiodar

Filer

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

Du kan òg laste ned eit ferdig koplingsskjema og ein ferdig instruks for NDLAs eigendefinerte praterobot.

Løysingsforslag for programkode

I boksen under ser du eit forslag til fasit for programmet ditt. Håpar du klarer å lage ditt eige før du ser på fasiten.

Programkode

// Definer pinnar for RGB LED

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

// Definer pinnar for potensiometer

const int potRed = A0;

const int potGreen = A1;

const int potBlue = A2;

// Variabler for lagring av verdier

int redValue, greenValue, blueValue;

void setup() {

pinMode(redPin, OUTPUT); // Set RGB-LED-pinnane som utgangar

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

void loop() {

// Les verdiar frå potensiometra (0-1023)

int rawRed = analogRead(potRed);

int rawGreen = analogRead(potGreen);

int rawBlue = analogRead(potBlue);

// Konverter til PWM (0-255)

redValue = map(rawRed, 0, 1023, 0, 255);

greenValue = map(rawGreen, 0, 1023, 0, 255);

blueValue = map(rawBlue, 0, 1023, 0, 255);

// Skriv verdiar til LED

analogWrite(redPin, redValue);

analogWrite(greenPin, greenValue);

analogWrite(bluePin, blueValue);

// Vent 100 ms (10 oppdateringar per sekund)

delay(100);

}

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.

RGB-diodar

I RGB-diodar er tre diodar sette saman til ei eining, noko som gir oss spennande fargeval.

Skrive av Roger Rosmo.
Sist oppdatert 30.01.2025