Code 1: Serial Monitor Increment and Decrement
This uses a loop to display numbers from 1 to 10 and then from 10 to 1 on
the serial monitor with a delay of 0.5 seconds.
void setup() {
Serial.begin(9600);
}
void loop() {
// Increment from 1 to 10
for (int i = 1; i <= 10; i++) {
Serial.println(i);5
delay(500); // 0.5 second delay
}
// Decrement from 10 to 1
for (int i = 10; i >= 1; i--) {
Serial.println(i);
delay(500); // 0.5 second delay
}
}
Circuit and Code 2: Fading LEDs Using PWM
This fades two LEDs in opposite directions using PWM pins.
const int led1 = 9; // First LED connected to PWM pin 9
const int led2 = 10; // Second LED connected to PWM pin 10
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
// Fade in and out
for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(led1, brightness);
analogWrite(led2, 255 - brightness); // Opposite fade
delay(10); // Adjust for smoothness
}
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(led1, brightness);
analogWrite(led2, 255 - brightness); // Opposite fade
delay(10); // Adjust for smoothness
}
}
Circuit and Code 3: 12 LED Display with Different Patterns
This handles a 12-LED display with various patterns. You’ll need to adjust
LED pins as per your setup.
const int leds[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // LED pins
const int numLeds = 12;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(leds[i], OUTPUT);
}
}
void loop() {
pattern0();
pattern1();
pattern2();
pattern3();
pattern4();
pattern5();
}
void pattern0() { // Pattern 0: LED 1 to 12 sequentially
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(100); // Adjust delay as needed
digitalWrite(leds[i], LOW);
}
}
void pattern1() { // Pattern 1: One by one and reverse
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(100);
digitalWrite(leds[i], LOW);
}
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(100);
digitalWrite(leds[i], LOW);
}
}
void pattern2() { // Pattern 2: Blink all LEDs at once
for (int i = 0; i < 3; i++) {
for (int j = 0; j < numLeds; j++) {
digitalWrite(leds[j], HIGH);
}
delay(300);
for (int j = 0; j < numLeds; j++) {
digitalWrite(leds[j], LOW);
}
delay(300);
}
}
void pattern3() { // Pattern 3: Alternate LEDs
for (int i = 0; i < numLeds; i += 2) {
digitalWrite(leds[i], HIGH);
}
delay(300);
for (int i = 1; i < numLeds; i += 2) {
digitalWrite(leds[i], HIGH);
}
delay(300);
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], LOW);
}
}
void pattern4() { // Pattern 4: One at a time
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(300);
digitalWrite(leds[i], LOW);
}
}
void pattern5() { // Pattern 5: Meet at the center
int mid = numLeds / 2;
for (int i = 0; i < mid; i++) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[numLeds - 1 - i], HIGH);
delay(300);
digitalWrite(leds[i], LOW);
digitalWrite(leds[numLeds - 1 - i], LOW);
}
}
Circuit and Code 4: Potentiometer-Based Pattern Selection
This uses a potentiometer to select between the above patterns based on
voltage levels.
const int potPin = A0; // Potentiometer connected to analog pin A0
void loop() {
int potValue = analogRead(potPin);
float voltage = potValue * (5.0 / 1023.0);
if (voltage < 1.0) {
pattern0();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 0 is
running.");
} else if (voltage < 2.0) {
pattern1();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 1 is
running.");
} else if (voltage < 3.0) {
pattern2();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 2 is
running.");
} else if (voltage < 4.0) {
pattern3();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 3 is
running.");
} else if (voltage < 5.0) {
pattern4();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 4 is
running.");
} else {
pattern5();
Serial.println("Potentiometer voltage is " + String(voltage) + ", Pattern 5 is
running.");
}
delay(500); // Adjust delay as needed
}