diff options
-rw-r--r-- | mussel3/mussel3.ino | 46 | ||||
-rw-r--r-- | mussel4/mussel4.ino | 32 | ||||
-rw-r--r-- | mussel5/mussel5.ino | 64 | ||||
-rw-r--r-- | report.qmd | 15 |
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; + } +} @@ -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"} +``` |