aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mussel3/mussel3.ino46
-rw-r--r--mussel4/mussel4.ino32
-rw-r--r--mussel5/mussel5.ino64
-rw-r--r--report.qmd15
4 files changed, 157 insertions, 0 deletions
diff --git a/mussel3/mussel3.ino b/mussel3/mussel3.ino
new file mode 100644
index 0000000..0777b01
--- /dev/null
+++ b/mussel3/mussel3.ino
@@ -0,0 +1,46 @@
+/// mussel3 - mussel voter influenced by Humidity
+///
+/// SPDX-License-Identifier: GPL-3.0-or-later
+/// SPDX-FileCopyrightText: 2025 Noor Ahmad <noora@ruc.dk>
+
+
+#include <DHT.h>
+#include <Arduino.h>
+
+
+#define DHTPIN 15 // Digital pin connected to the DHT sensor - red
+#define DHTTYPE DHT11
+#define ESC_SIGNAL_PIN 19 //white
+DHT dht(DHTPIN, DHTTYPE);
+
+
+void setup() {
+ Serial.begin(9600);
+ dht.begin();
+}
+
+void loop() {
+ // Wait a few seconds between measurements
+ delay(1000);
+
+ vote();
+
+
+
+ delay(1000); // Delay between sensor readings
+}
+void vote() {
+
+ float temperature = dht.readTemperature(); // Read temperature as Celsius
+
+ // Print temperature
+ Serial.print("Temperature: ");
+ Serial.print(temperature);
+ Serial.println("°C");
+
+ int lightValue = analogRead(34); // GPIO34 (analog pin) - blue
+
+ // Print the light sensor value to Serial Monitor
+ Serial.print("Light Sensor Value: ");
+ Serial.println(lightValue);
+} \ No newline at end of file
diff --git a/mussel4/mussel4.ino b/mussel4/mussel4.ino
new file mode 100644
index 0000000..c84f19b
--- /dev/null
+++ b/mussel4/mussel4.ino
@@ -0,0 +1,32 @@
+// I've been inspired by this page and the accompanying yt-video (among other videos), but unfortunatly i felt like bits of it were off https://roboticsbackend.com/arduino-push-button-tutorial/
+// So therefore I've tried to incoorporate more from my earlier p5 programs, but i'm unsure if this is right/wrong as well, as i'm having trouble with getting my arduionoboard to react to anything.
+// the idea is, that when the button is pushed down, it symbolizes thtat the mussel has closed it's mouth
+
+
+const int button = 4; // jeg har oprettet en konstant variabel, som har værdien 4 fordi den er forbundet til GPIO4 på arduinoboardet.
+ //Den er konstant, fordi værdien ikke skal ændres mens programmet er i brug/kører
+void setup() { //den her del har jeg valgt bare at acceptere - den initialisere "serial commuication" og konfigurere(opsætter) de forskellige komponenter,
+ //der bruges i programmet https://arduinofactory.com/arduino-ide/ , med andre ord, kridter den banen op.
+ Serial.begin(9600); // starter kommunikationen mellem ard.boardet og computeren. tallet er baudraten, som data sendes med (hastigheden)
+ pinMode(buttonPin, INPUT_PULLDOWN); // pinMode bestemmer hvilken GPIO-pin, som arduionoB. bruger.
+ // input_pulldown er det, som sørger for, at programmet kun reagere når knappen bliver trykket ned. Altså at knappen som standard LOW.
+ //det her har jeg valgt fremfor yt-tutorialsenes opfordring om, at bruge PULLUP, for så kommer der et svar *efter, og ikke imens brugeren trykker.
+}
+
+void loop(){ // void loop er en funktion, hvor alt indeni gentages så længe ard.boardet er tændt.
+ int buttonState = digitalRead(buttonPIn); // læser knappens tilstand
+
+ if (buttonState == HIGH) {
+ Serial.println("Mussel has closed. Water might be contaminated.")
+ } else {
+ Serial.println("Mussel remains open. No detection made.");
+ }
+ delay(100); //her venter programmet 100 millisekunder, før den gentager loopet (altså går tilbage til standard, not contaminated)
+ // jeg ved ikke helt om det er for kort tid, fordi min ard.board er i udu (eller jeg har svært ved at bruge det i guess)
+
+}
+
+
+
+
+
diff --git a/mussel5/mussel5.ino b/mussel5/mussel5.ino
new file mode 100644
index 0000000..f44c907
--- /dev/null
+++ b/mussel5/mussel5.ino
@@ -0,0 +1,64 @@
+const int buttonPin = 9;
+const int redLED = 3;
+const int greenLED = 4;
+const int yellowLED = 5;
+
+int buttonState = HIGH;
+int lastButtonState = HIGH;
+int clickCount = 0;
+unsigned long lastDebounceTime = 0;
+const unsigned long debounceDelay = 50;
+
+void setup() {
+ pinMode(buttonPin, INPUT_PULLUP);
+ pinMode(redLED, OUTPUT);
+ pinMode(greenLED, OUTPUT);
+ pinMode(yellowLED, OUTPUT);
+ Serial.begin(9600);
+}
+
+void loop() {
+ int reading = digitalRead(buttonPin);
+
+ // Debounce logic
+ if (reading != lastButtonState) {
+ lastDebounceTime = millis();
+ }
+
+ if ((millis() - lastDebounceTime) > debounceDelay) {
+ if (reading == LOW && lastButtonState == HIGH) {
+ clickCount++;
+ if (clickCount > 3) {
+ clickCount = 0; // Reset cycle after 3 clicks
+ }
+ updateLEDs();
+ }
+ }
+
+ lastButtonState = reading;
+}
+
+void updateLEDs() {
+ // Turn off all LEDs first
+ digitalWrite(redLED, LOW);
+ digitalWrite(greenLED, LOW);
+ digitalWrite(yellowLED, LOW);
+
+ switch (clickCount) {
+ case 1:
+ digitalWrite(redLED, HIGH);
+ Serial.println("State: Angry (Red LED ON)");
+ break;
+ case 2:
+ digitalWrite(greenLED, HIGH);
+ Serial.println("State: Happy (Green LED ON)");
+ break;
+ case 3:
+ digitalWrite(yellowLED, HIGH);
+ Serial.println("State: Unsure (Yellow LED ON)");
+ break;
+ case 0:
+ Serial.println("State: Off (All LEDs OFF)");
+ break;
+ }
+}
diff --git a/report.qmd b/report.qmd
index 5d7eeca..2f27ebb 100644
--- a/report.qmd
+++ b/report.qmd
@@ -98,3 +98,18 @@ TODO
```{.c include="mussel2/mussel2.ino" code-line-numbers="true"}
```
+
+## mussel 3
+
+```{.c include="mussel3/mussel3.ino" code-line-numbers="true"}
+```
+
+## mussel 4
+
+```{.c include="mussel4/mussel4.ino" code-line-numbers="true"}
+```
+
+## mussel 5
+
+```{.c include="mussel5/mussel5.ino" code-line-numbers="true"}
+```