Hopp til innhold
Bokmål
Oppgave

NDLA-boksen: RGB-lysdioder

RGB-dioder er dioder som kan lyse med alle farger du kan lage med utgangspunkt i fargene rødt, grønt og blått, derav navnet RGB. Ved å justere mengden av hver enkelt farge kan du lage mange spennende farger. Tar du utfordringa?

Hva er RGB?

RGB (rødt, grønt, blått) er en fargemodell som brukes ved additiv fargeblanding, det vil si farger som oppstår som resultat av utsendt lys med ulike bølgelengder. Her blander vi altså de tre fargene, og øyet ser en ny farge basert på sammensetninga av de tre fargene.

RGB-dioden benytter en utgang (kanal) for hver av de tre primærfargene rødt, grønt og blått.

Dette systemet lar deg styre fargene på en RGB-LED ved hjelp av tre potensiometre. Hvert potensiometer regulerer én fargekanal:

  • rødt (R)

  • grønt (G)

  • blått (B)

Ved å vri på potensiometrene kan du blande fargene og skape ulike lysnyanser.

Arduino leser verdiene fra potensiometrene, omgjør dem til PWM-signaler og sender dem til LED-dioden for å justere lysstyrken for hver farge.

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

Du må først 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 disse 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 styre fargene på en RGB-diode basert på verdiene fra tre potensiometer. Potensiometrene skal angi lysmengde for hver av de tre fargene rødt, grønt og blått.

Verdiene skal oppdatere seg ti ganger hvert sekund.

Tenk over

Det kan også være smart å fortelle prateroboten hvilke betegnelser komponentene du bruker, har, og hvilke tilkoplingspinner de har.

Eksempel: "RGB-stripa er en AdaFruit NeoPixel Strip 6 med tilkoplingene 5V, GND og DIN".

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 lage en programkode for Arduino Uno som skal styre fargene på en RGB-diode basert på verdiene fra tre potensiometer. Potensiometrene skal angi lysmengde for hver av de tre fargene rødt, grønt og blått.

Verdiene skal oppdatere seg ti ganger 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 NDLA-boksen med RGB-lysdioder

Filer

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

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

Løsningsforslag for programkode

I boksen under ser du et forslag til fasit for programmet ditt. Håper du klarer å lage ditt eget før du ser på fasiten.

Programkode

// Definer pinner for RGB LED

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

// Definer pinner 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); // Setter RGB-LED-pinnene som utganger

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

void loop() {

// Les verdier fra potensiometrene (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 verdier til LED

analogWrite(redPin, redValue);

analogWrite(greenPin, greenValue);

analogWrite(bluePin, blueValue);

// Vent 100 ms (10 oppdateringer per sekund)

delay(100);

}

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.

RGB-dioder

I RGB-dioder er tre dioder satt sammen til en enhet, noe som gir oss spennende fargevalg.

Skrevet av Roger Rosmo.
Sist oppdatert 30.01.2025