Go back

Trafikljuset Download ino file
Diagram of connections for Trafikljuset
//Sätter vilka pins som hör till vilka lampor och knappar
int gron = 11; //grön för bilar
int gul = 10; //gul för bilar
int rod = 9; //röd för bilar
int knapp = 8; //knappen är på pin 8
int gronG = 13; //grön för fotgängare
int red = 12; //röd för fotgängare

void setup() {
//pinMode ställer in om en pin ska vara input eller output
pinMode(gron, OUTPUT);
pinMode(gul, OUTPUT);
pinMode(rod, OUTPUT);
pinMode(gronG, OUTPUT);
pinMode(red, OUTPUT);
pinMode(knapp, INPUT);
//vi testar lamporna genom att tända och släcka alla
digitalWrite(gron, HIGH);
digitalWrite(red, HIGH);
digitalWrite(rod, HIGH);
digitalWrite(gronG, HIGH);
digitalWrite(gul, HIGH);
delay(500);
digitalWrite(gron, LOW);
digitalWrite(red, LOW);
digitalWrite(rod, LOW);
digitalWrite(gronG, LOW);
digitalWrite(gul, LOW);
delay(500);
//när programmet startar så vill vi att den gröna för bilar är tänd och den röda för fotgängare
digitalWrite(gron, HIGH);
digitalWrite(red, HIGH);
}

void loop() {
if (digitalRead(knapp) == HIGH) {
//när knappen trycks in körs följande funktioner i turordning
delay(1000);
stoppaBilar();
passera();
startaBilar();
}
}

void stoppaBilar() {
//vi byter från grönt till gult för bilar
digitalWrite(gron, LOW);
digitalWrite(gul, HIGH);
delay(1000);
//vi byter från gult till rött för bilar
digitalWrite(gul, LOW);
digitalWrite(rod, HIGH);
}
void passera() {
//det blir grönt för fotgängare
delay(1000);
digitalWrite(red, LOW);
digitalWrite(gronG, HIGH);
delay(3000);
//den gröna lampan blinkar 4 gånger
digitalWrite(gronG, LOW);
delay(300);
digitalWrite(gronG, HIGH);
delay(300);
digitalWrite(gronG, LOW);
delay(300);
digitalWrite(gronG, HIGH);
delay(300);
digitalWrite(gronG, LOW);
delay(300);
digitalWrite(gronG, HIGH);
delay(300);
digitalWrite(gronG, LOW);
delay(300);
digitalWrite(gronG, HIGH);
delay(300);
//det blir rött
digitalWrite(red, HIGH);
digitalWrite(gronG, LOW);
delay(2000);
}

void startaBilar() {
//den gula lampan tänds medans den röda fortfarande lyser
digitalWrite(gul, HIGH);
delay(1000);
//den gula och röda lampan släcks och den gröna tänds
digitalWrite(rod, LOW);
digitalWrite(gul, LOW);
digitalWrite(gron, HIGH);
delay(3000);
}

Multicolor LED Download ino file
Diagram of connections for MulticolorLED
/*
* This program turns a multicolor LED on or off using buttons of the respective color.
* There is also a unnamed button which inverts the status of all colors (on turns off and off turns on).
*/
int r = 11; //red led
int g = 12; //green led
int b = 13; //blue led
int rb = 5; //red button
int gb = 4; //green button
int bb = 3; //blue button
int bu = 2; //button

void setup() {
pinMode(r, OUTPUT); //red led is set to output
pinMode(g, OUTPUT); //green led is set to output
pinMode(b, OUTPUT); //blue led is set to output
pinMode(rb, INPUT); //red button is set to input
pinMode(gb, INPUT); //green button is set to input
pinMode(bb, INPUT); //blue button is set to input
pinMode(bu, INPUT); //button is set to input
}

void loop() {
if (digitalRead(rb) == 1) { //Turns red LED on/off
if (digitalRead(r) == 1) {
digitalWrite(r, LOW);
}
else {
digitalWrite(r, HIGH);
}
delay(200);
}
if (digitalRead(gb) == 1) { //Turns green LED on/off
if (digitalRead(g) == 1) {
digitalWrite(g, LOW);
}
else {
digitalWrite(g, HIGH);
}
delay(200);
}
if (digitalRead(bb) == 1) { //Turns blue LED on/off
if (digitalRead(b) == 1) {
digitalWrite(b, LOW);
}
else {
digitalWrite(b, HIGH);
}
delay(200);
}
if (digitalRead(bu) == 1) { //Inverts the status of all the LEDs (on=off)
if (digitalRead(r) == 1) {
digitalWrite(r, LOW);
}
else {
digitalWrite(r, HIGH);
}

if (digitalRead(g) == 1) {
digitalWrite(g, LOW);
}
else {
digitalWrite(g, HIGH);
}

if (digitalRead(b) == 1) {
digitalWrite(b, LOW);
}
else {
digitalWrite(b, HIGH);
}
delay(200);
}
}

Songs Download ino file
Diagram of connections for Songs
/*
* Which line is which note:
* https://www.musicnotes.com/blog/wp-content/uploads/The-C-Scale-on-a-Staff-Final.jpg
*
* Music notes in hertz:
* http://pages.mtu.edu/~suits/notefreqs.html
*
* Notes for Hedwig's Theme:
* https://musescore.com/user/5722626/scores/1726381
*
* Notes for Take on Me:
* https://musescore.com/user/94521/scores/4097211
*
*/

int buzz = 7;

struct MStruct { //Music
int A1 = 220; //integer note A1 to be 220 hertz
int A1S = 233.08;
int C1 = 261.63;
int D1 = 293.66;
int E1 = 329.63;
int F1 = 349.23;
int G1 = 392;
int A = 440;
int AS = 466.16;
int B = 493.88;
int C = 523.25;
int CS = 554.37;
int D = 587.33;
int DS = 622.25;
int E = 659.26;
int F = 698.46;
int FS = 739.99;
int G = 783.99;
int GS = 830.61;
int A2 = 880;
int A2S = 932.33;
int B2 = 987.77;
int C2 = 1046.50;
int C2S = 1108.73;
int D2 = 1174.66;
int C3 =1046.5;
int C3S = 1108.7;
int D3 = 1174.7;
} M;

struct LStruct {//Lenght
float eight = 0.125;
float fourth = 0.25;
float half = 0.5; //settingfloat half to be 0.5
float one = 1.0;
float one_half = 1.5;
float two = 2.0;
float two_half = 2.5;
} L;

int t = 400; //integer time to be 400

void setup() {
pinMode(buzz, OUTPUT); //setting buzzer tooutput
}

void setTone(int note, int duration) {
tone(buzz,note, duration);
delay(duration);
noTone(buzz);
}

void loop() {
takeOnMe();
delay(5000);
hedwigsTheme();
delay(5000);
}

void takeOnMe() {
setTone(M.FS, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.D, t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);

delay(t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.B2, t * L.half);

setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.D, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);

delay(t * L.half);
setTone(M.FS, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.FS, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.D, t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);

delay(t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.B2, t * L.half);

setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.D, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);

delay(t * L.half);
setTone(M.FS, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.FS, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.D, t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.B, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);

delay(t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.E, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.GS, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.B2, t * L.half);

setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.A2, t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.D, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);

delay(t * L.half);
setTone(M.FS, t * L.half);
delay(t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.FS, t * L.half);
setTone(M.E, t * L.half);
}

void hedwigsTheme() {
//tretakt

setTone(M.B, t * L.one);
setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.E, t * L.two);
setTone(M.B2, t * L.one);
setTone(M.A2, t * L.two_half);
setTone(M.FS, t * L.two_half);

setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.DS, t * L.two);
setTone(M.F, t * L.one);
setTone(M.B, t * L.two_half);

delay(t * L.two);
setTone(M.B, t * L.one);
setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.E, t * L.two);
setTone(M.B2, t * L.one);

setTone(M.D2, t * L.two);
setTone(M.C2S, t * L.one);
setTone(M.C2, t * L.two);
setTone(M.GS, t * L.one);
setTone(M.C2, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);

setTone(M.AS, t * L.two);
setTone(M.G, t * L.one);
setTone(M.E, t * L.two_half);
delay(t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);

setTone(M.C2, t * L.two);
setTone(M.B2, t * L.one);
setTone(M.A2S, t * L.two);
setTone(M.FS, t * L.one);
setTone(M.G, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);

setTone(M.AS, t * L.two);
setTone(M.B, t * L.one);
setTone(M.B2, t * L.two);
delay(t * L.one);
delay(t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);

setTone(M.D2, t * L.two);
setTone(M.C2S, t * L.one);
setTone(M.C2, t * L.two);
setTone(M.GS, t * L.one);
setTone(M.C2, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);

setTone(M.AS, t * L.two);
setTone(M.G, t * L.one);
setTone(M.E, t * L.two_half);
delay(t * L.half);
delay(t * L.two);
delay(t * L.one);
setTone(M.E, t * L.two_half);
delay(t * L.half);

delay(t * L.two);
setTone(M.B, t * L.one);
setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.E, t * L.two);
setTone(M.B2, t * L.one);
setTone(M.A2, t * L.two_half);
delay(t * L.half);
setTone(M.FS, t * L.two_half);
delay(t * L.half);

setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.DS, t * L.two);
setTone(M.F, t * L.one);
setTone(M.B, t * L.two_half);
delay(t * L.half);

delay(t * L.two);
setTone(M.B, t * L.one);
setTone(M.E, t * L.one_half);
setTone(M.G, t * L.half);
setTone(M.FS, t * L.one);
setTone(M.E, t * L.two);
setTone(M.B2, t * L.one);
setTone(M.D2, t * L.two);
setTone(M.C2S, t * L.one);

setTone(M.C2, t * L.two);
setTone(M.GS, t * L.one);
setTone(M.C2, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);
setTone(M.AS, t * L.two);
setTone(M.G, t * L.one);
setTone(M.E, t * L.two_half);
delay(t * L.half);

delay(t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);
setTone(M.C2, t * L.two);
setTone(M.B2, t * L.one);
setTone(M.A2S, t * L.two);
setTone(M.FS, t * L.one);

setTone(M.G, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);
setTone(M.AS, t * L.two);
setTone(M.B, t * L.one);

setTone(M.B2, t * L.two);
delay(t * L.one);
delay(t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);
setTone(M.B2, t * L.two);
setTone(M.G, t * L.one);

setTone(M.D2, t * L.two);
setTone(M.C2S, t * L.one);
setTone(M.C2, t * L.two);
setTone(M.GS, t * L.one);
setTone(M.C2, t * L.one_half);
setTone(M.B2, t * L.half);
setTone(M.A2S, t * L.one);

setTone(M.AS, t * L.two);
setTone(M.G, t * L.one);
setTone(M.E, t * L.two_half);
delay(t * L.half);
delay(t * L.two);
delay(t * L.one);

//fyrtakt

setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.F, t * L.one);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.one);
setTone(M.C, t * L.one);
setTone(M.D, t * L.one);
delay(t * L.half);
setTone(M.C, t * L.half);
setTone(M.D, t * L.one);
setTone(M.F, t * L.one);

setTone(M.E1, t * L.one);
setTone(M.A, t * L.half);
setTone(M.C, t * L.half);
setTone(M.DS, t * L.two);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.G, t * L.one);
setTone(M.F, t * L.half);
setTone(M.E, t * L.half);
setTone(M.F, t * L.one);
setTone(M.AS, t * L.one);
setTone(M.F, t * L.one);
setTone(M.E, t * L.half);
setTone(M.D, t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.A1, t * L.one);
setTone(M.C, t * L.two);
setTone(M.B, t * L.one);
delay(t * L.one);

setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.F, t * L.one);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.one);
setTone(M.C, t * L.one);
setTone(M.D, t * L.one);
delay(t * L.half);
setTone(M.C, t * L.half);
setTone(M.D, t * L.one);
setTone(M.F, t * L.one);

setTone(M.E, t * L.one);
setTone(M.A, t * L.half);
setTone(M.C, t * L.half);
setTone(M.DS, t * L.two);

setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.E, t * L.half);
setTone(M.DS, t * L.half);
setTone(M.E, t * L.half);

setTone(M.G, t * L.one);
setTone(M.F, t * L.half);
setTone(M.E, t * L.half);
setTone(M.F, t * L.one);
setTone(M.A1S, t * L.one);
setTone(M.F, t * L.one);
setTone(M.E, t * L.half);
setTone(M.D, t * L.half);
setTone(M.E, t * L.half);
delay(t * L.half);
setTone(M.A1, t * L.one);

setTone(M.C, t * L.two);
setTone(M.B, t * L.one);
delay(t * L.one);
setTone(M.A, t * L.half);
delay(t * L.two);
delay(t * L.one);
delay(t * L.half);
}