Hopp til innhold
Fagartikkel

Praktisk bruk av KI ved programmering

Her skal du få informasjon om hvordan du kan benytte en praterobot til å hjelpe deg med programmeringa.

Bruk av prateroboter ved programmering

Svaret du får fra en praterobot, er avhengig av hvilke instrukser du gir den, altså hvilken rolle den skal ha, og hva du ønsker svar på.

Jo bedre instruksjoner du gir prateroboten, jo bedre og mer korrekte svar får du tilbake.

Du skal her få noen eksempler på slike roller og spørsmål og noen eksempler på hvilke svar du får tilbake fra ulike prateroboter. Som du ser, er svarene litt ulike når det gjelder innhold og form, og du kan også oppleve å få ulike svar fra samme praterobot hvis du spør om det samme flere ganger.

Det er derfor viktig å være kritisk til svarene du får.

Eksempel 1: Lysdiode som blinker (LED Blink)

Dette er en av de mest grunnleggende Arduino-øvelsene og gir en god introduksjon til programmering. Kretsen og koden er enkel å forstå, men konseptet kan utvides til mer komplekse oppgaver.

Forslag til ledetekst:

"Du skal være min digitale hjelper når jeg skal programmere min Arduino. Jeg skal få en lysdiode til å blinke, og den skal skru seg av og på hvert sekund. Jeg ønsker å kople lysdioden til pinne 13. Kan du gi meg et eksempel på kode, hvilke komponenter jeg trenger for å kople en slik krets, og hvordan jeg skal kople kretsen?"

Her gir du altså prateroboten gode instruksjoner som beskriver:

  • hvilken rolle prateroboten skal ha: Den skal være din digitale hjelper.

  • hva du ønsker at Arduinoen skal gjøre: Den skal få en lysdiode til å slå seg av og på hvert sekund.

  • hvilken pinne Arduinoen skal benytte: Du forteller prateroboten at den skal lage en programkode som benytter pinne 13.

  • at du ønsker eksempel på programkode basert på de faktaopplysninger du har skrevet

  • at du ønsker eksempel på hvilke komponenter en slik krets bør inneholde

  • at du ønsker forslag til oppkopling av komponentene

I boksene under kan du se et eksempel på svar fra tre ulike prateroboter.

Eksempelsvar fra NDLAs praterobot

Absolutt! Først og fremst, her er et eksempel på hvordan du kan programmere din Arduino for å få lysdioden til å blinke på pinne 13:

void setup() {

pinMode(13, OUTPUT); // Setter pinne 13 som en utgang

}

void loop() {

digitalWrite(13, HIGH); // Slår på lysdioden

delay(1000); // Venter i ett sekund

digitalWrite(13, LOW); // Slår av lysdioden

delay(1000); // Venter i ett sekund

}

Når det gjelder komponentene du trenger, vil du trenge

  • en Arduino

  • en lysdiode

  • en motstand

  • noen ledninger.

Motstanden er viktig for å beskytte lysdioden mot å brenne ut. En motstand med en verdi på 220 ohm vil være passende for dette prosjektet.

For å koble kretsen, kan du følge disse trinnene:

  1. Koble en ledning fra GND-pinnen på Arduinoen til en av de to hullene på breadboardet.

  2. Koble motstanden fra samme hull som ledningen fra GND til et annet hull.

  3. Koble den lange benet på lysdioden til samme hull som motstanden.

  4. Koble en ledning fra det andre benet på lysdioden til et annet hull.

  5. Koble en ledning fra dette hullet til pinne 13 på Arduinoen.

Når du har koblet kretsen og lastet opp koden til Arduinoen, vil du se at lysdioden blinker av og på hvert sekund. Lykke til!

Svar generert 1. oktober 2024

Eksempelsvar fra ChatGPT 4.o

For å få en lysdiode til å blinke hvert sekund på Arduino, kan vi sette opp en enkel krets med noen få komponenter og bruke en grunnleggende kode.

Komponenter:

  • Arduino (f.eks. Arduino Uno)

  • Lysdiode (LED)

  • Motstand (220 ohm)

  • Koblingsbrett og ledninger

Kobling:

  1. Koble den lange beinet (anoden) på lysdioden til pinne 13 på Arduino.

  2. Koble den korte beinet (katoden) på lysdioden til en 220 ohm motstand.

  3. Koble den andre enden av motstanden til GND (jord) på Arduino.

Kodeeksempel:

Her er et enkelt Arduino-program (sketch) som får lysdioden til å blinke hvert sekund:

void setup() {

// Sett pinne 13 som utgang

pinMode(13, OUTPUT);

}

void loop() {

// Skru på lysdioden

digitalWrite(13, HIGH);

delay(1000); // Vent i ett sekund

// Skru av lysdioden

digitalWrite(13, LOW);

delay(1000); // Vent i ett sekund

}

Forklaring:

pinMode(13, OUTPUT); setter pinne 13 som en utgang, slik at vi kan styre lysdioden.

digitalWrite(13, HIGH); skrur på lysdioden (setter pinne 13 til høy spenning).

delay(1000); venter i 1000 millisekunder (1 sekund).

digitalWrite(13, LOW); skrur av lysdioden (setter pinne 13 til lav spenning).

delay(1000); venter i ytterligere 1 sekund før det hele gjentas.

Dette oppsettet vil få lysdioden til å blinke hvert sekund.

Svar generert 1. oktober 2024

Eksempelsvar fra Copilot

Selvfølgelig!

Jeg kan hjelpe deg med det. For å få en lysdiode til å blinke med Arduino, trenger du følgende komponenter:

Komponenter:

  • Arduino Uno (eller en annen kompatibel Arduino)

  • Lysdiode (LED)

  • Motstand (220 ohm anbefales)

  • Koblingskabler (jumper wires)

  • Breadboard (valgfritt, men nyttig for å organisere kretsen)

Koblingsskjema:

Koble lysdioden: Den lange pinnen (anoden) på lysdioden kobles til pinne 13 på Arduinoen.

Koble motstanden: Koble en 220 ohm motstand mellom den korte pinnen (katoden) på lysdioden og GND (jord) på Arduinoen.

Koble til strøm: Sørg for at Arduinoen er koblet til en strømkilde via USB eller en ekstern strømkilde.

Eksempel på kode:

Her er et enkelt program som får lysdioden til å blinke hvert sekund:

// Definer pinne 13 som LED-pinne

const int ledPin = 13;

void setup() {

// Sett LED-pinnen som utgang

pinMode(ledPin, OUTPUT);

}

void loop() {

// Slå på LED

digitalWrite(ledPin, HIGH);

// Vent i 1 sekund (1000 millisekunder)

delay(1000);

// Slå av LED

digitalWrite(ledPin, LOW);

// Vent i 1 sekund

delay(1000);

}

Slik kobler du kretsen:

  1. Plasser lysdioden på breadboardet (hvis du bruker et).

  2. Koble den lange pinnen (anoden) til pinne 13 på Arduinoen med en jumperkabel.

  3. Koble den korte pinnen (katoden) til en av motstandens ender.

  4. Koble den andre enden av motstanden til GND på Arduinoen.

Når du har koblet alt sammen og lastet opp koden til Arduinoen, skal lysdioden begynne å blinke hvert sekund.

Lykke til med prosjektet ditt! Har du flere spørsmål eller trenger mer hjelp? 😊

Svar generert 1. oktober 2024

Eksempel 2: Trafikklys-simulering

Dette er en utvidelse av LED Blink-prosjektet i eksempel 1 som nå skal simulere et trafikklys med tre lysdioder (grønn, gul og rød). Lysene skal her lyse i et bestemt mønster, noe som kalles sekvensiell programmering.

Forslag til ledetekst:

"Du skal være min digitale hjelper når jeg skal programmere min Arduino. Jeg skal få tre lysdioder til å blinke i et bestemt mønster, som et trafikklys. Lysdiodene skal ha fargen grønn, gul og rød.

Jeg ønsker at lysdiodene skal lyse etter følgende rekkefølge:

  • rød lysdiode lyser i to sekunder og slukker

  • gul lysdiode lyser i et halvt sekund før den slukker

  • grønn lysdiode lyser i to sekunder før den slukker

  • gul lysdiode lyser igjen i et halvt sekund før den slukker.

Dette ønsker jeg at skal gjentas.

Jeg ønsker å kople grønn lysdiode til pinne 13, gul lysdiode til pinne 12 og rød lysdiode til pinne 11.

Kan du gi meg et eksempel på kode, hvilke komponenter jeg trenger for å kople en slik krets og hvordan jeg skal kople kretsen."

Forklaring av ledeteksten

Du gir også her prateroboten en rolle, den skal være din digitale hjelper. Du gir også en kort beskrivelse av hva som er hensikten med prosjektet, nemlig å få tre dioder med bestemte farger til å blinke i et bestemt mønster.

Du beskriver så hvilket mønster du ønsker at lysdiodene skal blinke i, i tillegg til at du angir hvor lenge hver lysdiode skal lyse. Du beskriver også at dette skal gjentas.

Til slutt angir du hvordan du ønsker at kretsen skal koples, og hvilken informasjon du ønsker at svaret skal inneholde, som komponenter og oppkopling.

Eksempelsvar fra NDLAs praterobot

Absolutt!

Først trenger du å koble lysdiodene til riktig pinne på Arduinoen. Du kan gjøre dette ved å koble den positive enden av lysdioden til pinnen og den negative enden til jord (GND) på Arduinoen.

Du kan bruke en motstand på 220 ohm for å begrense strømmen som går gjennom lysdiodene og beskytte dem mot skade.

Så her er et eksempel på kode du kan bruke for å få lysdiodene til å blinke i ønsket rekkefølge:

int greenLED = 13;

int yellowLED = 12;

int redLED = 11;

void setup() {

pinMode(greenLED, OUTPUT);

pinMode(yellowLED, OUTPUT);

pinMode(redLED, OUTPUT);

}

void loop() {

digitalWrite(redLED, HIGH); //rød lysdiode lyser i to sekunder

delay(2000);

digitalWrite(redLED, LOW); //rød lysdiode slukker

digitalWrite(yellowLED, HIGH); //gul lysdiode lyser i et halvt sekund

delay(500);

digitalWrite(yellowLED, LOW); //gul lysdiode slukker

digitalWrite(greenLED, HIGH); //grønn lysdiode lyser i to sekunder

delay(2000);

digitalWrite(greenLED, LOW); //grønn lysdiode slukker

digitalWrite(yellowLED, HIGH); //gul lysdiode lyser i et halvt sekund igjen

delay(500);

digitalWrite(yellowLED, LOW); //gul lysdiode slukker

}

Dette er en enkel kode som vil gjøre det du ønsker. Du kan justere tidsintervallet for lysdiodene ved å endre delay-verdiene i koden.

Lykke til med kretsen din!

Svar generert 1. oktober 2024

Eksempelsvar fra ChatGPT 4.o


For å sette opp tre lysdioder som blinker i et trafikklysmønster, trenger du følgende komponenter og koblinger.

Komponenter:

  • Arduino (f.eks. Arduino Uno)

  • Tre lysdioder (grønn, gul og rød)

  • Tre motstander (220 ohm, én for hver lysdiode)

  • Koblingsbrett og ledninger

Koblinger:

Grønn lysdiode: Koble den lange beinet (anoden) på grønn lysdiode til pinne 13 på Arduino. Koble den korte beinet (katoden) til en 220 ohm motstand, og koble motstanden til GND (jord).

Gul lysdiode: Koble den lange beinet (anoden) på gul lysdiode til pinne 12. Koble den korte beinet (katoden) til en 220 ohm motstand, og koble motstanden til GND.

Rød lysdiode: Koble den lange beinet (anoden) på rød lysdiode til pinne 11. Koble den korte beinet (katoden) til en 220 ohm motstand, og koble motstanden til GND.

Kodeeksempel:

Her er koden som vil styre lysdiodene slik at de blinker som et trafikklys:

void setup() {

// Sett pinnene som utganger

pinMode(13, OUTPUT); // Grønn LED

pinMode(12, OUTPUT); // Gul LED

pinMode(11, OUTPUT); // Rød LED

}

void loop() {

// Rød LED på i 2 sekunder

digitalWrite(11, HIGH);

delay(2000); // Vent 2 sekunder

digitalWrite(11, LOW);

// Gul LED på i 0.5 sekund

digitalWrite(12, HIGH);

delay(500); // Vent 0.5 sekund

digitalWrite(12, LOW);

// Grønn LED på i 2 sekunder

digitalWrite(13, HIGH);

delay(2000); // Vent 2 sekunder

digitalWrite(13, LOW);

// Gul LED på i 0.5 sekund

digitalWrite(12, HIGH);

delay(500); // Vent 0.5 sekund

digitalWrite(12, LOW);

}

Forklaring:

pinMode(13, OUTPUT); setter grønn LED (pinne 13) som utgang.

digitalWrite(11, HIGH); skrur på rød LED (pinne 11), og delay(2000); venter i 2 sekunder før den slukker.

Samme logikk gjelder for gul og grønn LED med de angitte tidsforsinkelsene.

Dette mønsteret gjentas kontinuerlig, akkurat som et trafikklys.

Svar generert 1. oktober 2024

Eksempelsvar fra Copilot


Selvfølgelig!

La oss starte med komponentene du trenger og hvordan du kobler kretsen:

Komponenter:

  • Arduino Uno (eller en annen kompatibel Arduino)

  • 3 lysdioder (grønn, gul og rød)

  • 3 motstander (220 ohm anbefales for å beskytte lysdiodene)

  • Koblingsbrett (breadboard)

  • Koblingskabler (jumper wires)

Koblingsskjema:

Grønn lysdiode:

Anode (langt ben) til pinne 13 på Arduino.

Katode (kort ben) til en motstand, og deretter til jord (GND) på Arduino.

Gul lysdiode:

Anode til pinne 12 på Arduino.

Katode til en motstand, og deretter til jord (GND).

Rød lysdiode:

Anode til pinne 11 på Arduino.

Katode til en motstand, og deretter til jord (GND).

Eksempel på kode:

// Definerer pinnene for lysdiodene

const int redLED = 11;

const int yellowLED = 12;

const int greenLED = 13;

void setup() {

// Setter pinnene som utganger

pinMode(redLED, OUTPUT);

pinMode(yellowLED, OUTPUT);

pinMode(greenLED, OUTPUT);

}

void loop() {

// Rød lysdiode lyser i 2 sekunder

digitalWrite(redLED, HIGH);

delay(2000);

digitalWrite(redLED, LOW);

// Gul lysdiode lyser i 0.5 sekunder

digitalWrite(yellowLED, HIGH);

delay(500);

digitalWrite(yellowLED, LOW);

// Grønn lysdiode lyser i 2 sekunder

digitalWrite(greenLED, HIGH);

delay(2000);

digitalWrite(greenLED, LOW);

// Gul lysdiode lyser igjen i 0.5 sekunder

digitalWrite(yellowLED, HIGH);

delay(500);

digitalWrite(yellowLED, LOW);

}

Forklaring:

setup(): Her setter vi opp pinnene som utganger.

loop(): Her definerer vi sekvensen for lysdiodene. Hver lysdiode tennes og slukkes i henhold til ønsket tidsintervall, og dette gjentas kontinuerlig.

Med denne koden og koblingsskjemaet skal du kunne få lysdiodene til å blinke i det ønskede mønsteret.

Lykke til med prosjektet ditt! Hvis du har flere spørsmål, er det bare å spørre. 😊

Svar generert 1. oktober 2024

Forslag til utvidelse av prosjektet

Når du har fått svar fra prateroboten og har fått dette svaret til å fungere, kan du stille prateroboten mer avanserte spørsmål for å videreutvikle prosjektet ditt.

Eksempler på dette kan være:

  • Jeg ønsker at denne lyssekvensen kun skal gjentas 10 ganger. Kan du hjelpe meg med en programkode for det?

  • Jeg ønsker at det skal være en pause på ett sekund mellom hver gang lyssekvensen kjører. Kan du hjelpe meg med det?

  • Jeg ønsker å kunne starte lyssekvensen med en trykknapp og at sekvensen kjører en gang når knappen blir trykket. Kan du hjelpe meg med å utvide programmet slik at jeg får til det?

Eksempel 3: Knapp for å styre lysdiode (Button Control LED)

I dette prosjektet skal du benytte en trykknapp til å styre lyset fra en lysdiode. Du må da benytte en digital inngang, og ikke bare utganger som i forrige eksempel.

Bruk av digitale innganger gir muligheten til å programmere logikk for å lese signaler fra en knapp og styre en lysdiode.

Forslag til ledetekst:

"Du skal være min digitale hjelper når jeg skal programmere min Arduino. Jeg skal få en lysdiode til å lyse når jeg holder en trykknapp nede.

Jeg ønsker å kople lysdioden til pinne 8 og trykknappen til pinne 3.

Kan du gi meg et eksempel på kode, hvilke komponenter jeg trenger for å kople en slik krets, og hvordan jeg skal kople kretsen."

Eksempelsvar fra NDLAs praterobot

Absolutt! Først trenger du en Arduino, en LED-lysdiode, en trykknapp, en 220 ohms motstand og noen ledninger.

Her er koden du trenger for å få lysdioden til å lyse når du holder trykknappen nede:

int ledPin = 8; // LED pin

int buttonPin = 3; // Button pin

int buttonState = 0; // Button state

void setup() {

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

}

void loop() {

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

Når det gjelder kretsen, kan du koble den opp på følgende måte:

  • Koble en ledning fra pinne 8 på Arduinoen til den lange benet på lysdioden.

  • Koble en annen ledning fra den korte benet på lysdioden til en motstand på 220 ohms.

  • Koble den andre enden av motstanden til jord (GND) på Arduinoen.

  • Koble en ledning fra pinne 3 på Arduinoen til den ene siden av trykknappen.

  • Koble en annen ledning fra den andre siden av trykknappen til jord (GND) på Arduinoen.

Det er viktig å merke seg at når trykknappen ikke er trykket ned, vil den gi en verdi på LOW, og når den er trykket ned, vil den gi en verdi på HIGH. Koden vår sjekker for denne verdien og endrer tilstanden til lysdioden deretter.

Håper dette hjelper deg med å komme i gang med å programmere din Arduino! Lykke til!

Svar generert 1. oktober 2024

Eksempelsvar fra ChatGPT 4.o

Her er hvordan du kan programmere Arduinoen for å få en lysdiode til å lyse når du holder en trykknapp nede. Jeg går gjennom komponentene, hvordan du kobler kretsen, og et kodeeksempel.

Komponenter du trenger:

  • Arduino (f.eks. Arduino Uno)

  • En lysdiode (LED)

  • En motstand (220 ohm) for å beskytte LED-en

  • En trykknapp

  • En motstand (10k ohm) for pull-down på knappen

  • Koblingskabler

  • Et koblingsbrett (breadboard)

Koblingsskjema:

Lysdiode:
  1. Koble den positive terminalen (den lange pinnen) på lysdioden til pinne 8 på Arduino.

  2. Koble den negative terminalen (den korte pinnen) på lysdioden til en 220 ohm motstand, og koble motstanden videre til GND på Arduino.

Trykknapp:
  1. Koble den ene siden av trykknappen til pinne 3 på Arduino.

  2. Koble den andre siden av trykknappen til 5V.

  3. Koble en 10k ohm motstand mellom pinne 3 og GND for å lage en pull-down motstand.

Eksempel på kode:

// Definerer pinnene

const int ledPin = 8; // Lysdiode tilkoblet pinne 8

const int buttonPin = 3; // Trykknapp tilkoblet pinne 3

int buttonState = 0; // Variabel for å lagre tilstanden til knappen

void setup() {

// Setter LED-pinnen som utgang

pinMode(ledPin, OUTPUT);

// Setter knapp-pinnen som inngang

pinMode(buttonPin, INPUT);

}

void loop() {

// Leser trykknappens tilstand

buttonState = digitalRead(buttonPin);

// Sjekker om knappen er trykket ned

if (buttonState == HIGH) {

// Hvis knappen er trykket ned, tenn lysdioden

digitalWrite(ledPin, HIGH);

} else {

// Hvis knappen ikke er trykket ned, slukk lysdioden

digitalWrite(ledPin, LOW);

}

}

Forklaring:

digitalRead(buttonPin) leser tilstanden til trykknappen (HIGH når trykket ned, LOW ellers).

Når knappen holdes nede (HIGH), tennes lysdioden med digitalWrite(ledPin, HIGH).

Når knappen ikke holdes nede (LOW), slukkes lysdioden med digitalWrite(ledPin, LOW).

Kretsoppkobling:

  1. Koble lysdioden til pinne 8 via en 220 ohm motstand og til GND.

  2. Koble trykknappen til pinne 3 og 5V, og koble en 10k ohm motstand mellom pinne 3 og GND.

Med dette oppsettet vil lysdioden tennes når du holder trykknappen nede, og den vil slukkes når knappen slippes.

Svar generert 1. oktober 2024

Eksempelsvar fra Copilot

Selvfølgelig!

La oss starte med komponentene du trenger og hvordan du kobler kretsen:

Komponenter

Arduino (f.eks. Arduino Uno)

Lysdiode (LED)

Motstand (220 ohm)

Trykknapp

Motstand (10k ohm)

Koblingsbrett og ledninger

Koblingsskjema

Lysdiode (LED):

Koble den positive pinnen (anoden, lengre pinne) til pinne 8 på Arduino.

Koble den negative pinnen (katoden, kortere pinne) til en 220 ohm motstand, og deretter til jord (GND) på Arduino.

Trykknapp:

Koble en side av trykknappen til pinne 3 på Arduino.

Koble den andre siden av trykknappen til 5V på Arduino.

Koble en 10k ohm motstand mellom pinne 3 og jord (GND) på Arduino (pull-down motstand).

Eksempel på kode

Her er et enkelt kodeeksempel som får lysdioden til å lyse når trykknappen holdes nede:

const int buttonPin = 3; // Pinne for trykknappen

const int ledPin = 8; // Pinne for lysdioden

void setup() {

pinMode(buttonPin, INPUT); // Sett trykknappen som input

pinMode(ledPin, OUTPUT); // Sett lysdioden som output

}

void loop() {

int buttonState = digitalRead(buttonPin); // Les statusen til trykknappen

if (buttonState == HIGH) { // Hvis trykknappen er trykket ned

digitalWrite(ledPin, HIGH); // Slå på lysdioden

} else {

digitalWrite(ledPin, LOW); // Slå av lysdioden

}

}

Hvordan koble kretsen

Lysdiode:
  1. Koble den positive pinnen til pinne 8 på Arduino.

  2. Koble den negative pinnen til en 220 ohm motstand, og deretter til GND.

Trykknapp:
  1. Koble en side av trykknappen til pinne 3 på Arduino.

  2. Koble den andre siden av trykknappen til 5V.

  3. Koble en 10k ohm motstand mellom pinne 3 og GND.

Dette oppsettet vil gjøre at lysdioden lyser når du holder trykknappen nede.

Hvis du har noen spørsmål eller trenger mer hjelp, bare si ifra! 😊

Svar generert 1. oktober 2024

Forslag til utvidelse

For å gjøre endringer eller gjøre dette prosjektet mer avansert kan du spørre prateroboten om hvordan dette kan gjøres. Eksempler på dette kan være:

  • Jeg ønsker ikke å bruke pull-down-funksjonen på trykknappen. Kan du gi meg forslag til en annen løsning?

  • Jeg ønsker at lysdioden skal skru seg på og lyse kontinuerlig når jeg trykker på knappen en gang, for så å slå seg av når jeg trykker på knappen neste gang. Kan du hjelpe meg med det?

  • Jeg ønsker å kunne styre to lysdioder, der den ene lysdioden tenner når jeg trykker på knappen en gang, og den andre lysdioden tenner når jeg trykker på knappen neste gang. Det er kun en lysdiode som skal lyse om gangen.

Eksempel 4: Potensiometer for å styre LED-lys

Du har kanskje justert taklyset hjemme ved hjelp av en vribar bryter, en såkalt dimmer.

I dette prosjektet skal du bruke en analog inngang for å styre lysstyrken på en lysdiode ved hjelp av et potensiometer. Dette er en enkel innføring i bruk av analog inngang og PWM utgang (Pulse Width Modulation).

Forslag til ledetekst:

"Du skal være min digitale hjelper når jeg skal programmere min Arduino. Jeg skal få en lysdiode til å endre lysstyrke når jeg vrir på en variabel motstand, altså et potensiometer. Jeg ønsker å kople lysdioden til pinne 10 og potensiometeret til pinne A2. Kan du gi meg et eksempel på kode, hvilke komponenter jeg trenger for å kople en slik krets, og hvordan jeg skal kople kretsen?"

Eksempelsvar fra NDLAs praterobot

Absolutt!

For å koble en lysdiode til pinne 10 og et potensiometer til pinne A2 på Arduino, trenger du følgende komponenter:

  • En Arduino

  • En lysdiode

  • En motstand på 220 ohm

  • Et potensiometer

  • Breadboard

  • Jumper wires

For å koble kretsen, følger du disse trinnene:

  1. Sett opp breadboardet ved å koble strømkilden (5V og GND) til breadboardet.

  2. Koble en jumper wire fra pinne 10 på Arduino til et hull på breadboardet.

  3. Koble en jumper wire fra GND på Arduino til et hull på breadboardet.

  4. Koble en motstand på 220 ohm til breadboardet og koble den ene enden til den jumper wiren som er koblet til pinne 10 på Arduino.

  5. Koble lysdioden til breadboardet og koble den ene enden til den andre enden av motstanden.

  6. Koble en jumper wire fra pinne A2 på Arduino til et hull på breadboardet.

  7. Koble potensiometeret til breadboardet og koble den ene enden til GND på breadboardet, og den andre enden til 5V på breadboardet.

  8. Koble midtpinnen på potensiometeret til det samme hullet som jumper wiren som er koblet til pinne A2 på Arduino.

Når du har koblet kretsen, kan du bruke følgende kode for å få lysdioden til å endre lysstyrke når du vrir på potensiometeret:

Programkode:

int potPin = A2; // Pinne for potensiometeret

int ledPin = 10; // Pinne for lysdioden

int potVal; // Variabel for å lagre verdien fra potensiometeret

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

potVal = analogRead(potPin); // Les verdien fra potensiometeret

int ledVal = map(potVal, 0, 1023, 0, 255); // Konverter verdien til en verdi mellom 0 og 255

analogWrite(ledPin, ledVal); // Sett lysstyrken til lysdioden til den konverterte verdien

}

Husk å laste opp koden til Arduinoen din og justere potensiometeret for å se endringene i lysstyrken til lysdioden.

Lykke til!

Svar generert 1. oktober 2024

Eksempelsvar fra ChatGPT 4.o


For å hjelpe deg med dette Arduino-prosjektet, skal jeg gå gjennom komponentene du trenger, hvordan du kan koble kretsen, og gi deg et kodeeksempel.

Komponenter du trenger:

  • Arduino (for eksempel Arduino Uno)

  • En lysdiode (LED)

  • En motstand (220 ohm) for å beskytte LED-en

  • Et potensiometer (variabel motstand)

  • Koblingskabler

  • Et koblingsbrett (breadboard)

Koblingsskjema:

Lysdiode:
  1. Koble den positive terminalen (den lange pinnen) på lysdioden til pinne 10 på Arduino.

  2. Koble den negative terminalen (den korte pinnen) på lysdioden til en 220 ohm motstand, og koble motstanden videre til GND på Arduino.

Potensiometer:
  1. Koble en av de ytre pinnene på potensiometeret til 5V på Arduino.

  2. Koble den andre ytre pinnen til GND.

  3. Koble den midterste pinnen (signal) til A2 på Arduino.

Eksempel på kode:

// Definerer pinnene

const int ledPin = 10; // Lysdiode tilkoblet pinne 10

const int potPin = A2; // Potensiometer tilkoblet pinne A2

void setup() {

// Setter LED-pinnen som utgang

pinMode(ledPin, OUTPUT);

}

void loop() {

// Leser potensiometerets verdi (0-1023)

int potValue = analogRead(potPin);

// Konverterer potensiometerets verdi til PWM (0-255)

int ledBrightness = map(potValue, 0, 1023, 0, 255);

// Setter lysstyrken til LED-en

analogWrite(ledPin, ledBrightness);

// Litt forsinkelse for stabilitet

delay(10);

}

Forklaring:

analogRead(potPin) leser verdien fra potensiometeret (fra 0 til 1023).

map()-funksjonen konverterer verdien fra potensiometeret til et passende område for PWM (fra 0 til 255).

analogWrite(ledPin, ledBrightness) setter lysstyrken på lysdioden basert på potensiometerets posisjon.

Kretsoppkobling:

  1. Koble lysdioden til pinne 10 via en 220 ohm motstand og til GND.

  2. Koble potensiometeret til 5V og GND, og midterste pinne til A2 på Arduino.

Dette oppsettet vil justere lysstyrken på lysdioden basert på potensiometerets posisjon.

Svar generert 1. oktober 2024

Eksempelsvar fra Copilot

Selvfølgelig!

Jeg kan hjelpe deg med det. Her er en oversikt over hva du trenger, hvordan du kobler kretsen, og et eksempel på kode for Arduino.

Komponenter du trenger:

  • Arduino Uno (eller en annen kompatibel Arduino)

  • Lysdiode (LED)

  • Motstand (f.eks. 220 ohm for å beskytte lysdioden)

  • Potensiometer

  • Koblingsbrett (breadboard)

  • Koblingsledninger (jumper wires)

Kobling av kretsen:

Lysdiode:

Koble den positive pinnen (anoden, lengre pinne) til pinne 10 på Arduino gjennom en 220 ohm motstand.

Koble den negative pinnen (katoden, kortere pinne) til GND på Arduino.

Potensiometer:

Koble den ene enden av potensiometeret til 5V på Arduino.

Koble den andre enden til GND på Arduino.

Koble midt-pinnen (wiper) til analog pinne A2 på Arduino.

Eksempel på kode:

const int ledPin = 10; // Pinne for LED

const int potPin = A2; // Pinne for potensiometer

int potValue = 0; // Variabel for å lagre potensiometerverdien

int ledBrightness = 0; // Variabel for å lagre lysstyrken på LED

void setup() {

pinMode(ledPin, OUTPUT); // Sett LED-pinnen som utgang

}

void loop() {

potValue = analogRead(potPin); // Les verdien fra potensiometeret

ledBrightness = map(potValue, 0, 1023, 0, 255); // Konverter verdien til 0-255

analogWrite(ledPin, ledBrightness); // Sett lysstyrken på LED

delay(10); // Kort forsinkelse for stabilitet

}

Forklaring av koden:

analogRead(potPin) leser verdien fra potensiometeret (0-1023).

map(potValue, 0, 1023, 0, 255) konverterer denne verdien til et område som passer for PWM (0-255).

analogWrite(ledPin, ledBrightness) setter lysstyrken på LED basert på den konverterte verdien.

Svar generert 1. oktober 2024

Forslag til utvidelse

For å utvide prosjektet ditt kan du for eksempel spørre prateroboten om det følgende:

  • Jeg ønsker å kunne styre to lysdioder, der lysstyrken blir sterkere på den ene lysdioden og lysstyrken på den andre lysdioden blir svakere når jeg vrir på potensiometeret. Kan du hjelpe meg med det?

  • Jeg ønsker å bytte ut potensiometeret med en lysfølsom sensor som justerer lysstyrken fra lysdioden ut fra hvor lyst eller mørkt det er i rommet. Når det er mørkt, vil jeg ha sterkt lys, og når det er lyst, vil jeg ha svakt lys. Kan du hjelpe meg med det?

  • Jeg ønsker å kunne lese av potensiometeret (eller lysdiodens) verdi på et display. Kan du hjelpe meg med det?

Hvilke svar er mest korrekte?

Som du ser fra eksemplene, svarer praterobotene litt forskjellig. En praterobot vet aldri det eksakte svaret på spørsmålene dine, men gir deg det svaret den tror er mest sannsynlig.

Det er derfor viktig at du prøver ut ulike prateroboter og stiller oppfølgingsspørsmål hvis det er noe som er uklart eller ikke fungerer.

Dette kan være spørsmål som:

  • Jeg skjønte ikke helt forklaringa di om potensiometer, kan du utdype dette?

  • Kan du gi meg en bedre forklaring med et enklere språk?

  • Kan du utdype hvordan en trykknapp fungerer?

  • Dette programmet fungerte ikke helt. Kan du analysere programkoden og se om du finner noen feil i koden?

  • Dette er en lang kode. Kan du gi meg noen eksempler på hvordan jeg kan skrive koden på en mer effektiv måte?

  • Kan du gi meg en forklaring av denne programkoden? Gi meg detaljert informasjon om hver kodelinje.

Som du kanskje har funnet ut, går ikke prateroboten lei og blir sur, uansett hvor mange oppfølgingsspørsmål du stiller.


Lykke til med bruk av kunstig intelligens i form av prateroboter i din programmering.