Arduino kóði fyrir Viðmótino
Completion requirements
//********************************* // Prufuforrit fyrir Viðmótino // V1 - 18.02.22 // Ari Baldursson //********************************* int A_inn_1 = A0; int A_inn_2 = A1; int A_inn_3 = A2; int A_inn_4 = A3; int A_inn_5 = A4; int D_inn_1 = 2; int D_inn_2 = 4; int D_inn_3 = 7; int D_inn_4 = 8; int D_inn_5 = 12; int pwm_pin_1 = 10; int pwm_pin_2 = 5; int pwm_pin_3 = 6; int pwm_pin_4 = 9; int buzzer_pin = 13; //int pwm_pin_5 = 10; int pot_val_1, pot_val_2, pot_val_3, pot_val_4, pot_val_5; int sw_val_1, sw_val_2, sw_val_3, sw_val_4, sw_val_5; int FF; int melody[] = {262, 196, 196, 220, 196, 0, 247, 262, 0}; int noteDurations[] = {4, 8, 8, 4, 4, 4, 4, 4, 4}; void setup() { pinMode(D_inn_1, INPUT); pinMode(D_inn_2, INPUT); pinMode(D_inn_3, INPUT); pinMode(D_inn_4, INPUT); pinMode(D_inn_5, INPUT); pinMode(buzzer_pin, OUTPUT); pinMode(pwm_pin_1, OUTPUT); pinMode(pwm_pin_2, OUTPUT); pinMode(pwm_pin_3, OUTPUT); pinMode(pwm_pin_4, OUTPUT); //pinMode(pwm_pin_5, OUTPUT); } void readInput() { // read digital input from switches sw_val_1 = digitalRead(D_inn_1); sw_val_2 = digitalRead(D_inn_2); sw_val_3 = digitalRead(D_inn_3); sw_val_4 = digitalRead(D_inn_4); sw_val_5 = digitalRead(D_inn_5); // read analog input from potentiometers pot_val_1 = analogRead(A_inn_1); pot_val_2 = analogRead(A_inn_2); pot_val_3 = analogRead(A_inn_3); pot_val_4 = analogRead(A_inn_4); pot_val_5 = analogRead(A_inn_5); } void writeOutput() { if (sw_val_1) digitalWrite(pwm_pin_1, sw_val_1); else analogWrite(pwm_pin_1, pot_val_1 / 4); if (sw_val_2) digitalWrite(pwm_pin_2, sw_val_2); else analogWrite(pwm_pin_2, pot_val_2 / 4); if (sw_val_3) digitalWrite(pwm_pin_3, sw_val_3); else analogWrite(pwm_pin_3, pot_val_3 / 4); if (sw_val_4) digitalWrite(pwm_pin_4, sw_val_4); else analogWrite(pwm_pin_4, pot_val_4 / 4); } void PlayMelody() { for (int thisNote = 0; thisNote < 9; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(buzzer_pin, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(buzzer_pin); } } void buzzer() { FF = !FF; digitalWrite(buzzer_pin, FF); delay(map(pot_val_5, 0, 1023, 0, 10)); } void loop() { readInput(); writeOutput(); if (sw_val_5) PlayMelody(); else buzzer(); }
Last modified: Wednesday, 15 October 2025, 7:13 PM