diff --git a/examples/Modulino_Buttons/Basic/Basic.ino b/examples/Modulino_Buttons/Buttons_Basic/Buttons_Basic.ino similarity index 69% rename from examples/Modulino_Buttons/Basic/Basic.ino rename to examples/Modulino_Buttons/Buttons_Basic/Buttons_Basic.ino index 5145f02..d69f13f 100644 --- a/examples/Modulino_Buttons/Basic/Basic.ino +++ b/examples/Modulino_Buttons/Buttons_Basic/Buttons_Basic.ino @@ -8,6 +8,7 @@ #include +// Create a ModulinoButtons object ModulinoButtons buttons; bool button_a = false; @@ -16,15 +17,17 @@ bool button_c = false; void setup() { Serial.begin(9600); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to buttons module buttons.begin(); - //function to control the LEDs on top of each button + // Turn on the LEDs above buttons A, B, and C buttons.setLeds(true, true, true); } void loop() { - //request new data from the Modulino buttons + // Check for new button events, returns true when button state changes if (buttons.update()) { - //Check if the buttons has been pressed + // Check which button was pressed (0=A, 1=B, 2=C) if (buttons.isPressed(0)) { Serial.println("Button A pressed!"); } else if (buttons.isPressed(1)) { diff --git a/examples/Modulino_Buzzer/Basic/Basic.ino b/examples/Modulino_Buzzer/Buzzer_Basic/Buzzer_Basic.ino similarity index 66% rename from examples/Modulino_Buzzer/Basic/Basic.ino rename to examples/Modulino_Buzzer/Buzzer_Basic/Buzzer_Basic.ino index a254115..47ebcf9 100644 --- a/examples/Modulino_Buzzer/Basic/Basic.ino +++ b/examples/Modulino_Buzzer/Buzzer_Basic/Buzzer_Basic.ino @@ -8,20 +8,25 @@ #include +// Create a ModulinoBuzzer object ModulinoBuzzer buzzer; int frequency = 440; int duration = 1000; void setup(){ + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to buzzer module buzzer.begin(); } void loop(){ + // Play tone at specified frequency and duration buzzer.tone(frequency, duration); delay(1000); + // Stop the tone (0 frequency) buzzer.tone(0, duration); delay(1000); diff --git a/examples/Modulino_Buzzer/Simple_melody/Simple_melody.ino b/examples/Modulino_Buzzer/Simple_melody/Simple_melody.ino index fbff626..ba27151 100644 --- a/examples/Modulino_Buzzer/Simple_melody/Simple_melody.ino +++ b/examples/Modulino_Buzzer/Simple_melody/Simple_melody.ino @@ -8,20 +8,25 @@ #include +// Create a ModulinoBuzzer object ModulinoBuzzer buzzer; +// Define melody notes in Hz (C4, G3, G3, A3, G3, rest, B3, C4) int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 }; void setup() { + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to buzzer module buzzer.begin(); } void loop() { - + // Play each note in the melody for (int i = 0; i < 8; i++) { + // Get current note frequency int note = melody[i]; - + // Play the note for 250ms buzzer.tone(note, 250); delay(250); diff --git a/examples/Modulino_Distance/Basic/Basic.ino b/examples/Modulino_Distance/Distance_Basic/Distance_Basic.ino similarity index 63% rename from examples/Modulino_Distance/Basic/Basic.ino rename to examples/Modulino_Distance/Distance_Basic/Distance_Basic.ino index a9622bd..08e298e 100644 --- a/examples/Modulino_Distance/Basic/Basic.ino +++ b/examples/Modulino_Distance/Distance_Basic/Distance_Basic.ino @@ -8,16 +8,21 @@ #include "Modulino.h" +// Create a ModulinoDistance object ModulinoDistance distance; void setup() { Serial.begin(9600); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to distance sensor module distance.begin(); } void loop() { + // Check if new distance measurement is available if (distance.available()) { + // Get the latest distance measurement in millimeters int measure = distance.get(); Serial.println(measure); } diff --git a/examples/Modulino_Knob/EncoderSetter/EncoderSetter.ino b/examples/Modulino_Knob/Encoder_Setter/Encoder_Setter.ino similarity index 60% rename from examples/Modulino_Knob/EncoderSetter/EncoderSetter.ino rename to examples/Modulino_Knob/Encoder_Setter/Encoder_Setter.ino index 8d6299b..9f91112 100644 --- a/examples/Modulino_Knob/EncoderSetter/EncoderSetter.ino +++ b/examples/Modulino_Knob/Encoder_Setter/Encoder_Setter.ino @@ -8,31 +8,43 @@ #include "Modulino.h" +// Create objects for the modules ModulinoKnob encoder; ModulinoPixels leds; ModulinoButtons buttons; void setup() { - // put your setup code here, to run once: Serial.begin(115200); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to modules encoder.begin(); leds.begin(); buttons.begin(); } void loop() { + // Get current encoder position value int value = encoder.get(); - //Reset the position of the encoder with the set function + // Reset encoder position if out of range (0-100) if (value > 100 || value < 0) { encoder.set(0); } + + // Get updated encoder value after possible reset value = encoder.get(); + Serial.println(value); + + // Set LED brightness based on encoder value (0-100) + // Available colors: RED, BLUE, GREEN, VIOLET, WHITE leds.set(1, RED, value); leds.set(2, GREEN, value); leds.set(3, BLUE, value); + // Update LEDs with new settings leds.show(); + // Check button states buttons.update(); + // Set button LEDs to match button press states buttons.setLeds(buttons.isPressed(0), buttons.isPressed(1), buttons.isPressed(2)); } diff --git a/examples/Modulino_Knob/Basic/Basic.ino b/examples/Modulino_Knob/Knob_Basic/Knob_Basic.ino similarity index 68% rename from examples/Modulino_Knob/Basic/Basic.ino rename to examples/Modulino_Knob/Knob_Basic/Knob_Basic.ino index 1272a60..b933002 100644 --- a/examples/Modulino_Knob/Basic/Basic.ino +++ b/examples/Modulino_Knob/Knob_Basic/Knob_Basic.ino @@ -8,16 +8,21 @@ #include +// Create a ModulinoKnob object ModulinoKnob knob; void setup() { Serial.begin(9600); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to knob module knob.begin(); } void loop(){ + // Get the current position value of the knob int position = knob.get(); + // Check if the knob has been pressed (clicked) bool click = knob.isPressed(); Serial.print("Current position is: "); diff --git a/examples/Modulino_Movement/Basic/Basic.ino b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino similarity index 72% rename from examples/Modulino_Movement/Basic/Basic.ino rename to examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino index 4b0c06e..8de9a97 100644 --- a/examples/Modulino_Movement/Basic/Basic.ino +++ b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino @@ -8,6 +8,7 @@ #include "Modulino.h" +// Create a ModulinoMovement ModulinoMovement movement; float x; @@ -16,13 +17,17 @@ float z; void setup() { Serial.begin(9600); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to movement sensor module movement.begin(); } void loop() { + // Read new acceleration data from the sensor movement.update(); + // Get the acceleration values for each axis (in Gs) x = movement.getX(); y = movement.getY(); z = movement.getZ(); diff --git a/examples/Modulino_Pixels/Basic/Basic.ino b/examples/Modulino_Pixels/Pixels_Basic/Pixels_Basic.ino similarity index 54% rename from examples/Modulino_Pixels/Basic/Basic.ino rename to examples/Modulino_Pixels/Pixels_Basic/Pixels_Basic.ino index 63b2fc6..69be734 100644 --- a/examples/Modulino_Pixels/Basic/Basic.ino +++ b/examples/Modulino_Pixels/Pixels_Basic/Pixels_Basic.ino @@ -8,19 +8,25 @@ #include +// Create a ModulinoPixels object ModulinoPixels leds; int brightness = 25; void setup(){ + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to pixels module leds.begin(); } void loop(){ - //Set all LEDs blue + // Set all 8 LEDs to blue color for (int i = 0; i < 8; i++) { + // Set each LED (index, color, brightness) + // Available colors: RED, BLUE, GREEN, VIOLET, WHITE leds.set(i, BLUE, brightness); + // Update the physical LEDs with new settings leds.show(); } } \ No newline at end of file diff --git a/examples/Modulino_Pixels/Simple_Animation/Simple_Animation.ino b/examples/Modulino_Pixels/Simple_Animation/Simple_Animation.ino index 39d7ede..40c1c26 100644 --- a/examples/Modulino_Pixels/Simple_Animation/Simple_Animation.ino +++ b/examples/Modulino_Pixels/Simple_Animation/Simple_Animation.ino @@ -8,19 +8,24 @@ #include +// Create a ModulinoPixels object for the LED array ModulinoPixels leds; +// Define a custom color for turning off LEDs ModulinoColor OFF(0, 0, 0); int brightness = 25; void setup() { + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to pixels module leds.begin(); } void loop() { - + // Light up LEDs in different colors + // Available colors: RED, BLUE, GREEN, VIOLET, WHITE for (int i = 0; i < 8; i++) { if (i == 0 || i == 1) { setPixel(i, RED); @@ -37,7 +42,8 @@ void loop() { delay(25); } - + + // Turn off all LEDs one by one for (int i = 0; i < 8; i++) { setPixel(i, OFF); delay(25); diff --git a/examples/Modulino_Thermo/TemperatureHumidityMatrix/TemperatureHumidityMatrix.ino b/examples/Modulino_Thermo/Temperature_Humidity_Matrix/Temperature_Humidity_Matrix.ino similarity index 85% rename from examples/Modulino_Thermo/TemperatureHumidityMatrix/TemperatureHumidityMatrix.ino rename to examples/Modulino_Thermo/Temperature_Humidity_Matrix/Temperature_Humidity_Matrix.ino index eab6001..57de8de 100644 --- a/examples/Modulino_Thermo/TemperatureHumidityMatrix/TemperatureHumidityMatrix.ino +++ b/examples/Modulino_Thermo/Temperature_Humidity_Matrix/Temperature_Humidity_Matrix.ino @@ -10,7 +10,9 @@ #include "ArduinoGraphics.h" #include "Arduino_LED_Matrix.h" +// Create a ModulinoThermo object ModulinoThermo thermo; +// Create an object to control the LED matrix on UNO R4 WiFi ArduinoLEDMatrix matrix; float temperature = -273.15; @@ -19,9 +21,12 @@ float humidity = 0.0; void setup() { Serial.begin(9600); + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to temperature/humidity sensor module thermo.begin(); + // Initialize the LED matrix matrix.begin(); delay(100); } diff --git a/examples/Modulino_Thermo/Basic/Basic.ino b/examples/Modulino_Thermo/Thermo_Basic/Thermo_Basic.ino similarity index 73% rename from examples/Modulino_Thermo/Basic/Basic.ino rename to examples/Modulino_Thermo/Thermo_Basic/Thermo_Basic.ino index e98afd5..d219fce 100644 --- a/examples/Modulino_Thermo/Basic/Basic.ino +++ b/examples/Modulino_Thermo/Thermo_Basic/Thermo_Basic.ino @@ -14,17 +14,20 @@ ModulinoThermo thermo; void setup(){ Serial.begin(9600); - // Call all necessary .begin() function + // Initialize Modulino I2C communication Modulino.begin(); + // Detect and connect to temperature/humidity sensor module thermo.begin(); } void loop(){ - + // Read temperature in Celsius from the sensor float celsius = thermo.getTemperature(); + // Convert Celsius to Fahrenheit float fahrenheit = (celsius * 9 / 5) + 32; + // Read humidity percentage from the sensor float humidity = thermo.getHumidity(); Serial.print("Temperature (C) is: "); diff --git a/examples/Utilities/Modulino_PlugNPlay/Modulino_PlugNPlay.ino b/examples/Utilities/Modulino_PlugNPlay/Modulino_PlugNPlay.ino index 60368a3..5fcc7cf 100644 --- a/examples/Utilities/Modulino_PlugNPlay/Modulino_PlugNPlay.ino +++ b/examples/Utilities/Modulino_PlugNPlay/Modulino_PlugNPlay.ino @@ -8,6 +8,7 @@ #include "Modulino.h" +// Create objects for all Modulino modules ModulinoButtons buttons; ModulinoBuzzer buzzer; ModulinoPixels leds; @@ -19,15 +20,14 @@ ModulinoThermo thermo; void setup() { Serial.begin(115200); + // Initialize Modulino I2C communication Modulino.begin(); - + // Detect and connect to all modules distance.begin(); - buttons.begin(); encoder.begin(); buzzer.begin(); leds.begin(); - imu.begin(); thermo.begin(); } @@ -43,14 +43,17 @@ void loop() { float x; float y; float z; - + // Cycle through LED patterns when encoder is pressed if (encoder.isPressed()) { skip = (skip + 1) % 5; } + // Calculate pitch by combining encoder position and distance sensor value pitch = encoder.get() + (distance.available() ? distance.get() : 0); + // When 's' is received over serial, report sensor data if (Serial.available() && Serial.read() == 's') { + // Update and report accelerometer values imu.update(); Serial.print("IMU: x "); Serial.print(imu.getX(), 3); @@ -59,29 +62,35 @@ void loop() { Serial.print("\tz "); Serial.println(imu.getZ(), 3); + // Report temperature and humidity values Serial.print("Humidity: " + String(thermo.getHumidity())); Serial.println("\tTemperature: " + String(thermo.getTemperature())); } + // Check for button presses if (buttons.update()) { + // Button A: Red LED and 440Hz tone if (buttons.isPressed(0)) { leds.set(1 + skip, RED, 100); buzzer.tone(440 + pitch, 1000); } else { leds.clear(1 + skip); } + // Button B: Blue LED and 880Hz tone if (buttons.isPressed(1)) { leds.set(2 + skip, BLUE, 100); buzzer.tone(880 + pitch, 1000); } else { leds.clear(2 + skip); } + // Button C: Green LED and 1240Hz tone if (buttons.isPressed(2)) { leds.set(3 + skip, GREEN, 100); buzzer.tone(1240 + pitch, 1000); } else { leds.clear(3 + skip); } + // Update the LEDs leds.show(); } }