Øvingsoppgaver: for
This commit is contained in:
parent
d6edf2f3f9
commit
5437d8f85c
@ -0,0 +1,40 @@
|
|||||||
|
unsigned long time;
|
||||||
|
int lysstyrke = 255;
|
||||||
|
int ledPIN = 3;
|
||||||
|
int bryterPINpluss = 12;
|
||||||
|
int bryterPINminus = 8;
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(9600);
|
||||||
|
pinMode(3, OUTPUT); // Seter pinne 3 til å være output
|
||||||
|
pinMode(bryterPINminus, INPUT_PULLUP); // Seter pinne 1 til å være input
|
||||||
|
pinMode(12, INPUT_PULLUP); // Setter pinne 12 til å være input
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (digitalRead(bryterPINminus) == LOW) {
|
||||||
|
lysstyrke--; // HVIS(If)knappen på pinne 1 er trykket på skal lyset reduseres
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lysstyrke < 0) {
|
||||||
|
lysstyrke = 0; //Gjør så lyset ikke går under 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if (digitalRead(bryterPINpluss) == LOW) {
|
||||||
|
lysstyrke++; //HVIS(If)knappen på pinne 12 er trykket på skal lyset økes
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lysstyrke > 255) {
|
||||||
|
lysstyrke = 255; // Gjør så lysstyrken ikke går høyere enn 255, over 255 blir den regnet som 0
|
||||||
|
}
|
||||||
|
|
||||||
|
analogWrite(ledPIN, lysstyrke); // Setter pinne 3 til den oppgitte lysstyrken=100
|
||||||
|
|
||||||
|
Serial.print("Time: ");
|
||||||
|
time = millis();
|
||||||
|
|
||||||
|
Serial.println(time);
|
||||||
|
delay(10);
|
||||||
|
}
|
17
Sketches/sketch_nov01b-millis/sketch_nov01b-millis.ino
Normal file
17
Sketches/sketch_nov01b-millis/sketch_nov01b-millis.ino
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
unsigned long timeNow;
|
||||||
|
unsigned long timeLast = millis();
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
timeNow = millis();
|
||||||
|
|
||||||
|
if ((timeLast + 1000) <= timeNow) {
|
||||||
|
Serial.println(timeNow);
|
||||||
|
timeLast = timeNow;
|
||||||
|
}
|
||||||
|
}
|
5
Sketches/sketch_nov08a-ForArraysStuff/.vscode/arduino.json
vendored
Normal file
5
Sketches/sketch_nov08a-ForArraysStuff/.vscode/arduino.json
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"board": "arduino:avr:uno",
|
||||||
|
"port": "COM7",
|
||||||
|
"sketch": "sketch_nov08a-ForArraysStuff.ino"
|
||||||
|
}
|
16
Sketches/sketch_nov08a-ForArraysStuff/.vscode/c_cpp_properties.json
vendored
Normal file
16
Sketches/sketch_nov08a-ForArraysStuff/.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Win32",
|
||||||
|
"includePath": [
|
||||||
|
"C:\\Program Files (x86)\\Arduino\\tools\\**",
|
||||||
|
"C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**"
|
||||||
|
],
|
||||||
|
"forcedInclude": [
|
||||||
|
"C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h"
|
||||||
|
],
|
||||||
|
"intelliSenseMode": "msvc-x64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
@ -0,0 +1,191 @@
|
|||||||
|
// Basic for loop
|
||||||
|
void forLoop()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
Serial.println(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Oppgave 1
|
||||||
|
*
|
||||||
|
* • Lag et array der elementene har startverdiene 10, 3, 6, 100, 251, 228, -3, 50
|
||||||
|
* • På egen linje og ved bruk av arrayen skal du skriv verdiene 3 og 228 til «seriell overvåker» vinduet, deretter skal det 5. elementet i arrayen skrives ut på en ny linje.
|
||||||
|
*/
|
||||||
|
void setArray()
|
||||||
|
{
|
||||||
|
int list[] = {10, 3, 6, 100, 251, 228, -3, 50};
|
||||||
|
|
||||||
|
Serial.print(list[1]);
|
||||||
|
Serial.print(" ");
|
||||||
|
Serial.println(list[5]);
|
||||||
|
|
||||||
|
Serial.println(list[4]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Oppgave 3
|
||||||
|
*
|
||||||
|
* • Opprett en array for 10 elementer.
|
||||||
|
* • Tilordne verdier til alle elementene, gjør dette i setup-rutinen. (Du velger verdier selv)
|
||||||
|
* • Bruk FOR-utrykket for å skrive ut verdiene til alle elementene i arrayen på en linje, neste «runde» skal skrives ut på en ny linje.
|
||||||
|
*/
|
||||||
|
void tiElementer() {
|
||||||
|
int tiElementer[10] = {10, 3, 6, 100, 251, 228, -3, 50, 64378, 45645};
|
||||||
|
|
||||||
|
for (int i = 0; i < (sizeof(tiElementer) / sizeof(int)); i++)
|
||||||
|
{
|
||||||
|
Serial.println(tiElementer[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Oppgave 4
|
||||||
|
*
|
||||||
|
* • Opprett en array for 10 elementer som gis følgende verdier ved deklarasjonen 10, 50, 70, -10, 15, 132, 5, -32, 87, 3
|
||||||
|
* • Bruk arrayen, FOR-uttrykk og IF til å sjekke om verdien i arrayen er større enn 25, hvis den er større enn 25 skal verdien skrives ut på «seriell overvåking» vinduet. En verdi pr.linje.
|
||||||
|
*
|
||||||
|
* Oppgave 5
|
||||||
|
* • Bruke arrayen fra oppgave 4.
|
||||||
|
* • Regn ut gjennomsnittetsverdien m/desimaler og skriv denne ut på «seriell overvåker» vinduet EN gang.
|
||||||
|
*
|
||||||
|
* Oppgave 6
|
||||||
|
* • Bruke arrayen fra oppgave 4.
|
||||||
|
* • Bruke FOR og skriv ut verdiene i omvendt rekkefølge på en linje i «seriell overvåker» vinduet, neste «runde» skal skrives ut på en ny linje.
|
||||||
|
Omvendtrekkefølge vil si at du starter med det siste elementet i arrayen.
|
||||||
|
*/
|
||||||
|
void arrayForIf() {
|
||||||
|
int elements[10] = {10, 50, 70, -10, 15, 132, 5, -32, 87, 3};
|
||||||
|
float total = 0;
|
||||||
|
int elemLength = (sizeof(elements) / sizeof(int));
|
||||||
|
|
||||||
|
// Serial.println("Tall mer enn 25: ");
|
||||||
|
// for (int i = 0; i < (elemLength); i++)
|
||||||
|
// {
|
||||||
|
// int value = elements[i];
|
||||||
|
// total += value;
|
||||||
|
|
||||||
|
// if (value < 25) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Serial.println(value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Serial.print("Gjennomsnitt: ");
|
||||||
|
// Serial.println((total / elemLength));
|
||||||
|
|
||||||
|
for (int i = (elemLength - 1); i > -1; i--) {
|
||||||
|
int value = elements[i];
|
||||||
|
|
||||||
|
if (i != (elemLength - 1)) {
|
||||||
|
Serial.print(", ");
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.print(value);
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Oppgave 7
|
||||||
|
*
|
||||||
|
* • Lag et array der elementene har startverdiene 10, -10, 18, 17, 200, 51, 33, 73
|
||||||
|
* • Hent verdien fra arrayen og skriv ut til «seriell overvåker» vinduet i henhold til følgende regler. Dette skal bare «skrives ut» EN gang.
|
||||||
|
*
|
||||||
|
* Når elementnr. er Skriv ut på egen linje etter følgende regler
|
||||||
|
* All utregning skal gjøres av Uno.
|
||||||
|
* 0 verdien ganges 3
|
||||||
|
* 1 absoluttverdien av verdien
|
||||||
|
* 2 verdien ganges først med 5 for så å deles på 4
|
||||||
|
* 3 verdien opphøyd i 3.
|
||||||
|
* 4 kvadratroten av verdien
|
||||||
|
* 5 Rest etter en heltallsdivisjon, del på 4.
|
||||||
|
* 6 Finn den største verdien i arrayen.
|
||||||
|
* 7 verdien deles på 2
|
||||||
|
*
|
||||||
|
* • Til slutt: Verifiser virkemåte med å gi elementene i arrayen andre startverdier.
|
||||||
|
*/
|
||||||
|
void arraySwitch() {
|
||||||
|
int xD[] = {10, -10, 18, 17, 200, 51, 33, 73};
|
||||||
|
// Antall elementer i array
|
||||||
|
int listLength = (sizeof(xD) / sizeof(int));
|
||||||
|
|
||||||
|
// Hent ut høyeste verdi fra array
|
||||||
|
int maxValue = 0;
|
||||||
|
for (int bleh = 0; bleh < listLength; bleh++)
|
||||||
|
{
|
||||||
|
maxValue = max(maxValue, xD[bleh]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Switch case
|
||||||
|
for (int i = 0; i < listLength; i++)
|
||||||
|
{
|
||||||
|
float element = xD[i];
|
||||||
|
float value = 0.0;
|
||||||
|
|
||||||
|
Serial.print("Index: ");
|
||||||
|
Serial.println(i);
|
||||||
|
|
||||||
|
Serial.print("Element: ");
|
||||||
|
Serial.println(element);
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
// Gang med 3
|
||||||
|
value = element * 3;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
// Absolutt tall
|
||||||
|
value = abs(element);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
// Gang med 5, del på 4.
|
||||||
|
value = ((element * 5) / 4);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// "power of", opphøyd i
|
||||||
|
value = pow(element, 3);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
// "square root", kvadratroot
|
||||||
|
value = sqrt(element);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// "Modulo", differansen mellom nærmeste tallet som kan deles på 4.
|
||||||
|
value = (int) element % 4;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// Høyeste verdi i array, se forrige for loop
|
||||||
|
value = maxValue;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
// delt på 2
|
||||||
|
value = (element / 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
// forLoop();
|
||||||
|
// setArray();
|
||||||
|
|
||||||
|
// tiElementer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
// arrayForIf();
|
||||||
|
arraySwitch();
|
||||||
|
delay(30000000);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user