Arduino first commit

Litt rydding i kode
This commit is contained in:
Stian Larsen 2018-12-13 13:17:09 +01:00
parent 492d8d7c3a
commit 312919eecb
19 changed files with 518 additions and 0 deletions

3
.vscode/.vscode/arduino.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"board": "arduino:avr:unowifi"
}

19
.vscode/.vscode/c_cpp_properties.json vendored Normal file
View File

@ -0,0 +1,19 @@
{
"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",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}

6
.vscode/arduino.json vendored Normal file
View File

@ -0,0 +1,6 @@
{
"board": "arduino:avr:uno",
"sketch": "sketch_dec13a_ledsequence\\sketch_dec13a_ledsequence.ino",
"port": "COM9",
"programmer": "Atmel-ICE (AVR)"
}

19
.vscode/c_cpp_properties.json vendored Normal file
View File

@ -0,0 +1,19 @@
{
"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",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}

View File

@ -0,0 +1,28 @@
/* Finne gjennomsnittet av 4 tall og finne de 2 største tallene
*
*/
int num1 =3000 ;
int num2 =1337 ;
int num3 =173 ;
int num4 =256 ;
int sum;
void setup() {
Serial.begin(9600);
}
void loop() {
if (num1 > num2) {
Serial.println (num1);
}
else (num2 > num1){
Serial.println (num2);
}
sum = (num1 + num2 + num3 + num4) /4;
Serial.println (sum);
Serial.end();
}

View File

@ -0,0 +1,18 @@
/* Finne kvadratrot av et tall. Bruker sqrt (sum)
*
*/
int num1 =256;
int sum;
void setup() {
Serial.begin(9600);
}
void loop() {
sqrt(sum);
Serial.println (sum);
Serial.end();
}

View File

@ -0,0 +1,49 @@
/**
* Input ledpin og buttonPin.
*
*/
int buttonPin = 2;
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
int buttonState = 0;
int lastButtonState = 0;
int ledState = 0;
void loop()
{
buttonState = digitalRead(buttonPin);
/**
* "Toggle"-funksjon med LED.
*
*
* Sjekker om knappen "lastButtonState" er "toggled" til enten HIGH/LOW. Snur Ledstate til omvendt
*
*/
if (buttonState == HIGH && buttonState != lastButtonState) {
ledState = ledState == HIGH ? LOW : HIGH;
Serial.print("LED state: ");
Serial.println(ledState == HIGH ? "HIGH" : "LOW");
digitalWrite(ledPin, ledState);
}
/**
*
* Sjekker om buttonState avviker fra lastButtonState.
* Oppdaterer lastButtonState og logger til terminal.
*/
if (buttonState != lastButtonState) {
Serial.print("Button state changed: ");
Serial.println(buttonState == HIGH ? "HIGH" : "LOW");
lastButtonState = buttonState;
}
}

View File

@ -0,0 +1,24 @@
int LED1 = 9;
int analogPin = 2;
int analogPin = 3;
Int start = 0;
int val = 0;
void setup() {
// put your setup code here, to run once:
pinMode(LED1, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
val = analogRead(analogPin) // Variabel for å lese og holde valuer
analogWrite(3, 25)
analogWrite(3, 77);
analogWrite(3, 128);
analogWrite(3, 230);
}

View File

@ -0,0 +1,3 @@
{
"board": "arduino:avr:unowifi"
}

View File

@ -0,0 +1,19 @@
{
"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",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}

View File

@ -0,0 +1,119 @@
/** Innlevering Led med knapp og dimming.
* Oppgave 1 og 2.
* Stian Larsen - 18IT-D
* Har fått noe hjelp, tips / råd fra andre klassekamerater. :)
*/
int LED_PIN = 3; // Angir hvilken PIN som kobles til LED */
int MINUS_BTN = 1; // Knapp for å regulere lys ned når man har en dimmefunksjon.
int PLUS_BTN = 12; // Knapp som regulerer lys "på" når man oppnår dimmefunksjon.
/**
* Setter hvor mye lyset skal lyslevel "dimmes". Her er plusminusval = 10 det vil si at den øker med 10 eller minsker med 10 når man trykker inn knappene
* Når Arduinoen starter begynner lyslevel 0 ettersom vi har satt en "int" lyslevel = 0.
*/
int lyslevel = 0;
int plusminusval = 10;
unsigned long lyspa = millis(); // Når vi trykker ned knappen
unsigned long lysav = millis(); // Når vi slipper vi knappen
void setup(){
pinMode(LED_PIN, OUTPUT); // Setter LED-output til PIN 3.
pinMode(MINUS_BTN, INPUT_PULLUP); // Setter minusknapp som input. Default er HIGH state.
pinMode(PLUS_BTN, INPUT_PULLUP); // Setter plussknapp som input. Default er HIGH state.
}
bool btnON = false; // Setter value til "false" på knapp på. Bool gjør så verdien blir "omvendt" av det som "veksles".
bool btnOFF = false; // Setter value til "false" på knapp av.
/**
* Setter en maxtid som det er tillatt at vi skal knappen til å dimmes eller skrus .
* Hvis knappen trykkes lenger enn 300ms vil den over til dimmefunksjon.
*/
int tid = 300;
// Koden som kjører i loop
void loop(){
analogWrite(LED_PIN, lyslevel); // Setter LED til lysverdi. Denne settes fra 0 - 255.
unsigned long currentTime = millis(); // Setter unsigned long som starter å telle når koden føres over. Måles i millisekunder.
if (digitalRead(PLUS_BTN) == LOW) // Sjekker om knappen er trykket ned. Hvis den er det vil state være "LOW".
{
if (!btnON) // Sjekker om btnON er trykket ned. Hvis den er trykket vil den sette "currentTime" til å telle ms.
{
lyspa = currentTime;
btnON = true;
}
/**
* Lyslevel + plusminusval setter value som å øke med 10 når man holder inne knappen.
* Dette gjøres ved at den husker "lyslevel" variabelen og plusser 10 hver gang når den holdes inne.
* Dette gir en dimmefunksjon. Denne stopper value "255" for det er satt nederst i koden.
*/
if (lyslevel < 255) {
lyslevel = lyslevel + plusminusval;
delay(50); // En liten delay på lyset så man ser at det dimmes på LED.
lysav = millis();
}
}
/**
* Sjekker om knappen blir sluppet mindre enn 300ms.
* Hvis knappen er trykket ned mer enn det blir lyslevel satt til 255.
*/
else {
if ((currentTime - lysav) < tid){
lyslevel = 255;
}
lysav = false; // Knappen blir sluppet opp eller ikke trykket inn.
}
if (digitalRead(MINUS_BTN) == LOW) // Sjekker om knappen er trykket ned igjen. Hvis den er det vil state være "LOW".
{
if (!btnOFF)
{
lysav = currentTime;
btnOFF = true;
}
/**
* Danner en dimmefunksjon for å minske lyslevelet.
* Denne sjekker / husker den gamle verdien og trekker ifra i "plusminusval" for å oppnå en dimmefunksjon.
* Stoppes value "0".
*/
if (lyslevel > 0)
{
lyslevel = lyslevel - plusminusval; // "lyslevel" - "plusminusval" trekker ifra 10 når vi holder inne knappen.
delay(50); // En liten delay for å se at det dimmes på LED.
lyspa = millis();
}
}
/**
* Sjekker om knappen blir sluppet mindre enn 300ms.
* Hvis knappen blir det vil den tilbake til lyslevel 0.
*/
else
{
if ((currentTime - lyspa) < tid)
{
lyslevel = 0;
}
lyspa = false; // Knappen blir sluppet opp eller ikke trykket inn.
}
// Passer på at lysverdi ikke går høyere enn 255, eller lavere enn 0.
// Setter verdi til 255 som er det høyeste.
if (lyslevel > 255)
{
lyslevel = 255;
}
// Setter verdi til 0.
if (lyslevel < 0)
{
lyslevel = 0;
}
} // Loop

18
millistest/millistest.ino Normal file
View File

@ -0,0 +1,18 @@
unsigned long tidnaa;
unsigned long tidforrige = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
tidnaa = millis();
if ((tidnaa - tidforrige)>999) //
{
tidforrige = tidnaa; // Sier at forrige registrerte tid skal printes som tidnaa
Serial.println(tidnaa); // Printer tidnaa hvert sekund
}
} // loop

View File

@ -0,0 +1,65 @@
/**Oppgaveinnlevering Programmerbar LED-kontroller.
* Stian Larsen - 18IT-D
* 13.12.2018
*/
/**
* Setter pins og hvor kablene skal være.
* Rekkelys setter et "array" som har "LedBlu, LedGre, LedYel og LedRed" i seg.
*/
int LedGre = 11;
int LedBlu = 10;
int LedYel = 9;
int LedRed = 8;
int rekkelys[] = {LedBlu, LedGre, LedYel, LedRed}; // Rød, Gul, Blå og Grønt lys
int Valgpin = 0;
// Setup for arduinokortet.
void setup()
{
// Sier at for valgpin = 0 så går denne opp til 4 og øker med 1 hver gang.
for (int Valgpin = 0; Valgpin < 4; Valgpin++)
{
pinMode(rekkelys[Valgpin], OUTPUT);
}
Serial.begin(9600);
}
// loop
void loop()
{
// Rekkefølge 1
int sekvens [] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
// Eventuelt rekkefølge 2;
// int sekvens2 [] = {3, 6, 8, 5, 15, 0};
for (byte Valgpin = 0; Valgpin <= 15; Valgpin++)
{
DisplayBinary(sekvens2[Valgpin]);
delay(1000); // Litta delay på 1000ms (1s)
}
}
// Void som beskriver hva som skal være i "DisplayBinary".
void DisplayBinary(byte numbers)
{
for (int Valgpin =0; Valgpin<4; Valgpin++)
{
// Sjekker bit av "value" du henter inn. Hvis tallet er satt til 1, slår den på LED.
if (bitRead(numbers, Valgpin)==1)
{
digitalWrite(rekkelys[Valgpin], HIGH);
}
// Sjekker om bi er lav,
else
{
digitalWrite(rekkelys[Valgpin], LOW);
}
}
/* Skrur av alle LEDs
for (int Valgpin = 0; Valgpin < 4; Valgpin++)
{
digitalWrite(Valgpin, LOW);
}*/
}

View File

@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

View File

@ -0,0 +1,6 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}

BIN
test array/.vs/slnx.sqlite Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,119 @@
int liste[] = {10, -10, 18, 17, 200, 51, 33, 73}; // Tall i et array (liste)
// float total = 330; // Defineres i oppgave 5
// int average = 0; // Defineres i oppgave 5.
void setup() {
Serial.begin(9600);
}
void loop() { // Kjøres i loop
/** Oppgave i timen
* for(int i=0 ; i < 10; i++){
* Serial.println(i);
* delay(500);}
/** Oppgave 3
* Definerer tall en rekke, samtidig som den printer ut tall 4 en egen rekke
* Serial.print(Liste[2]); // Printer ut tall 2 i liste
* Serial.print(" ")
* Serial.println(liste[7]);
* delay(1000);
* Serial.println(liste[4]);
/** Oppgave 4 ARRAY, FOR, IF
* for (int i = 0; i < 10; i++){ // Skriver ut alle elementene som har tall over 25.
* Serial.println(liste[i]); // Skriver ut linje Liste og array [i]
* if ( i <= 25){ Serial.println(i); // Sjekker om i er større en eller lik 25. er den større printer den ut verdiene i Serial monitor.
}
}
*/
/** Oppgave 5 - Finne gjennomsnitt av array liste
* for (int i=0; i < 10; i++){
* average = total / 10;
* Serial.println(average);
* delay(50);
* Serial.end(); // Skriver ut linja bare en gang
* } */
/** Oppgave 6 - Finne tall i omvendt rekkefølge
for (int i = 9; i > -1; i--) {
int value = liste[i];
if (i < 9) {
Serial.print(", ");
}
Serial.print(value);
if (i == 0) {
Serial.println();
}
}*/
/** Oppgave 7 - Switch case
*/
int lengde = (sizeof(liste) / sizeof(int)); // Setter antall elementer i lista (array)
int maxval = 0; // Setter maxval til 0
// Definerer høyeste verdi for array
for (int hei = 0; hei < lengde; hei++){
maxval = max(maxval, liste[hei]);
}
for (int i = 0; i < lengde; i++) // Definerer i = 0 og om lengde er høyere enn variabelen "lengde"
{
float kjottkake = liste[i]; // Float definerer liste + 1
float value = 0.0; // Setter value til desimaltall som skrives ut når det kjøres.
Serial.print("Index:"); // Skriver ut "Index" som settes sammen med "i" når det skrives ut.
Serial.println(i);
Serial.print("Case:"); // Setter sammen Ordet "Case" og "kjottkake" verdi.
Serial.println(kjottkake);
// Switchcase
switch(i){
case 0: // Ganger med 3
value = kjottkake * 3;
break;
case 1:
// Absolutt tall
value = abs(kjottkake);
break;
case 2:
// Ganger med 5 og deler på 4.
value = ((kjottkake *5) / 4);
break;
case 3:
// Opphøyes med 3.
value = pow(kjottkake, 3);
break;
case 4:
// Kvadratrot av variabelen kjøttkake
value = sqrt(kjottkake);
break;
case 5:
// Differanse mellom tall som deles på 4
value = (int) kjottkake % 4;
break;
case 6:
// Høyeste verdi i listen
value = maxval;
break;
case 7:
// Deling på 2
value = (kjottkake / 2);
break;
}
Serial.println(value);
delay(2000);
}
Serial.end();
}