Need Talented Programmer

Hi I need the support of a talented programmer, I have been working on this for weeks now with no working results, I even tried someone on Fiverr and no working results, I just can't get the animations as required in the combined code. I require them to combine their animations all running simultaneously with the required output. I have no idea what the going rate is.
for one WS2812 I can not get the full animation to run in one shetct. so I need to combine the 2 together for one strip of 12, and then add 15 LEDs on a different strip of WS2812 and then possibly add a third segment of 26 LEDs on a strip of WS2812B. Arduino Nano.

Im not even sure if the sketches are compatible, but each section gives an out-put I an looking for.

Section 1 Part A to combine with Part B to run simultaneously but inherently with Part B

// Led 11 and 0 Strobe Red to White with incresed brightness.
// Paart 1 A

// Including the FastLED library
#include <FastLED.h>

// Define constants for the LED strip setup
#define NUM_LEDS_1 12 // Total number of LEDs in the strip
#define DATA_PIN_1 7 // Data pin where the LED strip is connected
#define COLOR_ORDER GRB // Color order of the LEDs (Green, Red, Blue)
#define CHIPSET_1 WS2812 // LED chipset used (WS2812)
#define BRIGHTNESS_2 1 // Brightness level (1 out of maximum brightness)
#define VOLTS 5 // Operating voltage for the LED strip (5V)
#define MAX_AMPS 500 // Maximum current consumption in milliamps (500 mA)

// Creating an array to store LED colors
CRGB leds[NUM_LEDS_1];

// Variables to track time intervals
unsigned long previousMillisLed0 = 0;
unsigned long currentMillis; // Variable to hold the current time

// Time intervals for different LED animations
const long interval1 = 60;
const long interval0 = 500;
const long interval5 = 500;

// State variables for LEDs
bool stateLed0 = true;
bool stateLed11 = true;

// Setup function runs once at the beginning
void setup() {
// Adding LED strip configuration
FastLED.addLeds<CHIPSET_1, DATA_PIN_1, COLOR_ORDER>(leds, NUM_LEDS_1);

// Setting maximum power consumption for LEDs
FastLED.setMaxPowerInVoltsAndMilliamps(VOLTS, MAX_AMPS);

// Setting LED brightness
FastLED.setBrightness(BRIGHTNESS_2);

// Clearing all LEDs
FastLED.clear();
}

// Main loop that runs repeatedly
void loop() {

// Animation for turning off LED 10 after 400 ms
if (stateLed0 && (millis() - previousMillisLed0 >= 400)) {
leds[10] = CRGB::Black; // Turn off LED 10 by setting its color to black
FastLED.show(); // Update the LED strip
stateLed0 = false; // Update the state variable for LED 10
}

// Updating currentMillis to track time
currentMillis = millis();

// Loop for animating LEDs from index 10 to 1
for (int i = 10; i > 1; i--) {
leds[i] = CRGB(255, 255, 255); // Set the color of the LED at index i to white
FastLED.show(); // Update the LED strip with the new colors

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
  // This loop ensures that the LED remains white for 'interval1' milliseconds
}
currentMillis = millis();       // Update the current time marker

}

// Setting LED 1 color to orange and showing it
leds[1] = CRGB(255, 120, 0); // Set LED 1 color to orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
// This loop ensures that the orange color remains for 'interval1' milliseconds
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to red and showing it
leds[1] = CRGB(255, 0, 0); // Set LED 1 color to red
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the red color remains for approximately 250 ms
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to a different shade of orange and showing it
leds[1] = CRGB(255, 70, 0); // Set LED 1 color to a different shade of orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the new shade of orange color remains for approximately 250 ms
}

// Clearing all LEDs
FastLED.clear(); // Turn off all LEDs
}

Part B

// Led 11 and 0 Strbe red to White
Section 1 Part B

// Including the FastLED library
#include <FastLED.h>

// Define constants for the LED strip setup
#define NUM_LEDS_1 12 // Total number of LEDs in the strip
#define DATA_PIN_1 7 // Data pin where the LED strip is connected
#define COLOR_ORDER GRB // Color order of the LEDs (Green, Red, Blue)
#define CHIPSET_1 WS2812 // LED chipset used (WS2812)
#define BRIGHTNESS_2 1 // Brightness level (1 out of maximum brightness)
#define VOLTS 5 // Operating voltage for the LED strip (5V)
#define MAX_AMPS 500 // Maximum current consumption in milliamps (500 mA)

// Creating an array to store LED colors
CRGB leds[NUM_LEDS_1];

// Variables to track time intervals
unsigned long previousMillisLed0 = 0;
unsigned long currentMillis; // Variable to hold the current time

// Time intervals for different LED animations
const long interval1 = 60;
const long interval0 = 500;
const long interval5 = 500;

// State variables for LEDs
bool stateLed0 = true;
bool stateLed11 = true;

// Setup function runs once at the beginning
void setup() {
// Adding LED strip configuration
FastLED.addLeds<CHIPSET_1, DATA_PIN_1, COLOR_ORDER>(leds, NUM_LEDS_1);

// Setting maximum power consumption for LEDs
FastLED.setMaxPowerInVoltsAndMilliamps(VOLTS, MAX_AMPS);

// Setting LED brightness
FastLED.setBrightness(BRIGHTNESS_2);

// Clearing all LEDs
FastLED.clear();
}

// Main loop that runs repeatedly
void loop() {

// Animation for turning off LED 10 after 400 ms
if (stateLed0 && (millis() - previousMillisLed0 >= 400)) {
leds[10] = CRGB::Black; // Turn off LED 10 by setting its color to black
FastLED.show(); // Update the LED strip
stateLed0 = false; // Update the state variable for LED 10
}

// Updating currentMillis to track time
currentMillis = millis();

// Loop for animating LEDs from index 10 to 1
for (int i = 10; i > 1; i--) {
leds[i] = CRGB(255, 255, 255); // Set the color of the LED at index i to white
FastLED.show(); // Update the LED strip with the new colors

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
  // This loop ensures that the LED remains white for 'interval1' milliseconds
}
currentMillis = millis();  // Update the current time marker

}

// Setting LED 1 color to orange and showing it
leds[1] = CRGB(255, 120, 0); // Set LED 1 color to orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
// This loop ensures that the orange color remains for 'interval1' milliseconds
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to red and showing it
leds[1] = CRGB(255, 0, 0); // Set LED 1 color to red
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the red color remains for approximately 250 ms
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to a different shade of orange and showing it
leds[1] = CRGB(255, 70, 0); // Set LED 1 color to a different shade of orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the new shade of orange color remains for approximately 250 ms
}

// Clearing all LEDs
FastLED.clear(); // Turn off all LEDs
}

Other WS2812 15 LEDs, to have different pin

// Flip Flop Code modified code from youtube
// leds 15 to 0

// Including the FastLED library
#include <FastLED.h>

// Define constants for the LED strip setup
#define NUM_LEDS_1 12 // Total number of LEDs in the strip
#define DATA_PIN_1 7 // Data pin where the LED strip is connected
#define COLOR_ORDER GRB // Color order of the LEDs (Green, Red, Blue)
#define CHIPSET_1 WS2812 // LED chipset used (WS2812)
#define BRIGHTNESS_2 1 // Brightness level (1 out of maximum brightness)
#define VOLTS 5 // Operating voltage for the LED strip (5V)
#define MAX_AMPS 500 // Maximum current consumption in milliamps (500 mA)

// Creating an array to store LED colors
CRGB leds[NUM_LEDS_1]; // Array to store colors for each LED

// Variables to track time intervals
unsigned long previousMillisLed0 = 0; // Previous time marker for LED 10 animation
unsigned long currentMillis; // Variable to hold the current time

// Time intervals for different LED animations
const long interval1 = 60; // Interval for various animations
const long interval0 = 500; // Longer interval
const long interval5 = 500; // Another interval

// State variables for LEDs
bool stateLed0 = true; // State of LED 10 (on or off)
bool stateLed11 = true; // State of LED 11 (not used in this code)

// Setup function runs once at the beginning
void setup() {
// Adding LED strip configuration
FastLED.addLeds<CHIPSET_1, DATA_PIN_1, COLOR_ORDER>(leds, NUM_LEDS_1);

// Setting maximum power consumption for LEDs
FastLED.setMaxPowerInVoltsAndMilliamps(VOLTS, MAX_AMPS);

// Setting LED brightness
FastLED.setBrightness(BRIGHTNESS_2);

// Clearing all LEDs
FastLED.clear();
}

// Main loop that runs repeatedly
void loop() {

// Animation for turning off LED 10 after 400 ms
if (stateLed0 && (millis() - previousMillisLed0 >= 400)) {
leds[10] = CRGB::Black; // Turn off LED 10 by setting its color to black
FastLED.show(); // Update the LED strip
stateLed0 = false; // Update the state variable for LED 10
}

// Updating currentMillis to track time
currentMillis = millis();

// Loop for animating LEDs from index 10 to 1
for (int i = 10; i > 1; i--) {
leds[i] = CRGB(255, 255, 255); // Set the color of the LED at index i to white
FastLED.show(); // Update the LED strip with the new colors

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
  // This loop ensures that the LED remains white for 'interval1' milliseconds
}
currentMillis = millis();  // Update the current time marker

}

// Setting LED 1 color to orange and showing it
leds[1] = CRGB(255, 120, 0); // Set LED 1 color to orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (interval1)
while (millis() - currentMillis < interval1) {
// This loop ensures that the orange color remains for 'interval1' milliseconds
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to red and showing it
leds[1] = CRGB(255, 0, 0); // Set LED 1 color to red
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the red color remains for approximately 250 ms
}
currentMillis = millis(); // Update the current time marker

// Changing LED 1 color to a different shade of orange and showing it
leds[1] = CRGB(255, 70, 0); // Set LED 1 color to a different shade of orange
FastLED.show(); // Update the LED strip

// Waiting for a specific interval (approximately 250 ms)
while (millis() - currentMillis < 250) {
// This loop ensures that the new shade of orange color remains for approximately 250 ms
}

// Clearing all LEDs
FastLED.clear(); // Turn off all LEDs
}

Lastly, this code using WS2812B but needs this to also have a pin in to run a High Low function

// Sketch uses 5530 bytes (18%) of program storage space. Maximum is 30720 bytes.
// Global variables use 359 bytes (17%) of dynamic memory, leaving 1689 bytes for local variables. Maximum is 2048 bytes.

#include <Arduino.h>
#include <FastLED.h>

// Define the number of LEDs in the strip and the data pin for controlling the LED strip
#define NUM_LEDS 26 // Number of LEDs in the LED strip
#define DATA_PIN 2 // Digital pin connected to the LED data input

// Define the color order and chipset type for the LED strip
#define COLOR_ORDER GRB // Color order of the LED strip (Green, Red, Blue)
#define CHIPSET WS2812B // LED chipset type (WS2812B is a common type)

// Define the analog input pin for voltage measurement
#define inputPin A0 // Analog input pin for voltage measurement

// Create an array to hold LED colors
CRGB leds[NUM_LEDS]; // Array to store LED colors

// Variable to track if the signal is high (voltage >= 3.0)
bool signalHigh = false; // Used to track signal state

// Variables for timing LED updates
unsigned long previousMillis = 0; // Variable to store the last time LEDs were updated
const unsigned long interval = 1000; // Interval for LED updates (1 second)

// Function to set up the Arduino
void setup() {
// Initialize the LED strip using FastLED library
FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);

// Initialize serial communication for debugging
Serial.begin(9600);

// Wait for the input voltage to transition from low to high (3.0 volts)
while (analogRead(inputPin) < 3.0) {
// Optional: Add actions here to indicate that the program is waiting.
// For example, blink an LED or send a message over serial.
delay(500);
}

// Input has transitioned from low to high, set LEDs to purple with brightness 1
fill_solid(leds, NUM_LEDS, CRGB::Purple); // Set all LEDs to purple
FastLED.setBrightness(1); // Set LED brightness to 1
FastLED.show(); // Display the color on the LEDs
previousMillis = millis(); // Record the current time
}

// Main loop for the Arduino
void loop() {
// Read the analog input value
int inputValue = analogRead(inputPin);

// Convert the analog input value to voltage (assuming a 5V reference)
float voltage = inputValue * (5.0 / 1023.0);

// Get the current time
unsigned long currentMillis = millis();

// Check if it's time to update the LEDs
if (currentMillis - previousMillis >= interval) {
// Update the previousMillis to the current time
previousMillis = currentMillis;

if (!signalHigh && voltage >= 3.0 && voltage <= 5.0) {
  signalHigh = true;

  // Turn LEDs purple with brightness 1
  fill_solid(leds, NUM_LEDS, CRGB::Purple);
  FastLED.setBrightness(1);
  FastLED.show();
} else if (signalHigh && voltage < 2.0) {
  signalHigh = false;

  // Turn off LEDs and set brightness to 1
  fill_solid(leds, NUM_LEDS, CRGB::Black);
  FastLED.show();
  FastLED.setBrightness(1);
}

}

// If the signal is high, keep LEDs purple with brightness 1
if (signalHigh) {
fill_solid(leds, NUM_LEDS, CRGB::Purple);
FastLED.show();
}
}
I have a schematic and some videos showing the output

Please any assistance even if I can just get the first 2 elements to run, I just cant get my head around it even after reading and asking.

deleted

I could potentially do this for you.

How much to you want to spend ?

Cheers Pete.

What about posting the code that does not work, too?

Animated turn signals.
surnsig

Hi Pete,
I don't have a huge budget is just a side part of a model I am building the boards are so cheap I nearly considered, just running on 4 boards, but the thought goes against my DNA, its bad enough admitting I can do something and asking for help, give me a price what you would charge and will see if I can fit into my budget,

Thank you for your time

If you have an email i can send some files and videos of the the output to so you can make an informed decision

Ill do it for 100 Euros, send me the code you have and ill make a single sketch from them. What is the target Arduino ?

Thank you for looking, I appricaite you time but sorry oput of my budget

LOL ... I just wonder if it would make things less frustrating for all parties if the " Jobs and Paid Consultancy" category would require a budget when oening the thread :slight_smile: :rofl:

3 Likes

No worries. Good luck with fiverr

That is an excellent idea

1 Like

See Post #5.

Trouble is, if they probably don't have much idea of the effort, of lack of it, involved. On the other hand, nobody wants to waste time on a project if the budget is peanuts.... Tricky.

No idea what the law is outside of the UK, but over here I believe it's illegal to deviate from the original lighting - even after market LED replacements for incandescent are illegal.

Please delete your code and post it using code tags per the forum guidelines. It is very difficult to read in its existing format.

1 Like

After-market turn signals everything exist because OEM sells systems, not parts.

require a budget when oening the thread

It would be helpful as a starting point, but I have found very often that educating someone on why I can't do their $500 project on a $50 budget often causes them to realize that the project has enough value to them and they pay the $500. The "general public" as a rule has no idea what software development typically costs.

Alternately, suggesting simplifications to get the project down to $50 may be possible (not for me: my minimum charge to pick up the keyboard is $175) so the budget number can be misleading.

Stating a budget is fine as long as both parties understand that there may need to be some flexibility if the project is to be done at all. Communicate and negotiate!

Well, clearing upfront what the TO would have to expect for an hour of programming and consulting time before TO posts a job would help keeping the noise low. And that consulting to make the project cheap is also not comming for free. Making the TO considering this in the first place before posting some delusional offers would be a sensible thing. Also, making a state secret from the budget does not help.

just my 2ยข

1 Like

@toxicbb - Tell your teacher to be more clear on the requirements and the sample code. What a mess. I did A/B (toxicbb_a) and C (toxicbb_c) for you so I want proof of credit given on your assignment. You get to combine the three on sketch b.

This is toxicbb_a

// https://forum.arduino.cc/t/need-talented-programmer/1164338

//******************************************************************************
// LED STRIP A/B - LED 11 and LED 0 strobe Red to Orange1 to Orange2
//               - chase white from LED 10 to LED 2
//               - LED 10 blinks off every 400ms
//******************************************************************************

#include <FastLED.h> // Include the FastLED library

// Define constants for the LED strip setup
#define NUM_LEDS      12 // Total number of LEDs in the strip
#define DATA_PIN      7 // Data pin where the LED strip is connected

#define COLOR_ORDER   GRB // Color order of the LEDs (Green, Red, Blue)
#define CHIPSET       WS2812 // LED chipset used (WS2812)
#define BRIGHTNESS    255 // Brightness level (1 out of maximum brightness)
#define VOLTS         5 // Operating voltage for the LED strip (5V)
#define MAX_MILLIAMPS 500 // Maximum current consumption in milliamps (500 mA)

// Create object to store/display colors
CRGB leds[NUM_LEDS]; // object to store colors for each LED

// Variables to track time intervals
unsigned long previousMillis_1 = 0; // timer for LED 10 animation
unsigned long previousMillis_2 = 0; // timer for LED 0 and 11 animation
unsigned long previousMillis_3 = 0; // timer for white LED animation
unsigned long intervalMillis_1 = 400; // black animation interval
unsigned long intervalMillis_2 = 250; // red/orange animation interval
unsigned long intervalMillis_3 = 100; // white animation interval
unsigned long currentMillis; // Variable to hold the current time

// State variables for LEDs
bool stateLed10 = true; // State of LED 10 (on or off)
bool stateLed11 = true; // State of LED 11 (not used in this code)

int chaseLEDs; // white counter
int blinkLEDs; // red/orange counter

void setup() { // Setup function runs once at the beginning
  Serial.begin(115200);  // Start Serial Monitor
  FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // Add LED strip configuration
  FastLED.setMaxPowerInVoltsAndMilliamps(VOLTS, MAX_MILLIAMPS);  // Set maximum power for LEDs
  FastLED.setBrightness(BRIGHTNESS);  // Set maximum LED brightness
  FastLED.clear();  // Clear all LEDs
}

void loop() { // Main loop that runs repeatedly

  currentMillis = millis();  // store the current time as "time zero"

  if (currentMillis - previousMillis_1 >= intervalMillis_1) { // check black event timer
    previousMillis_1 = currentMillis; // event has occurred, store this event time
    stateLed10 = !stateLed10; // save state of LED10 - changes every event
    if (!stateLed10) // if state is LOW
      leds[10] = CRGB(0,0,0); // Turn "off" LED 10 by setting its color to black
    FastLED.show(); // display the new colors
  }

  if (currentMillis - previousMillis_2 >= intervalMillis_2) { // check red/orange event timer
    previousMillis_2 = currentMillis;
    blinkLEDs++; // count through shades of red/orange
    if (blinkLEDs > 3)
      blinkLEDs = 0;

    if (blinkLEDs == 1) {
      // Setting LED 1 color to orange and showing it
      leds[0] = CRGB(255, 127, 0); // Set LED 1 color to orange
      leds[11] = CRGB(255, 127, 0); // Set LED 1 color to orange
      FastLED.show(); // Update the LED strip
    }

    if (blinkLEDs == 2) {
      // Changing LED 1 color to red and showing it
      leds[0] = CRGB(255, 0, 0); // Set LED 1 color to red
      leds[11] = CRGB(255, 0, 0); // Set LED 1 color to red
      FastLED.show(); // Update the LED strip
    }

    if (blinkLEDs == 3) {
      // Changing LED 1 color to a different shade of orange and showing it
      leds[0] = CRGB(255, 63, 0); // Set LED 1 color to a different shade of orange
      leds[11] = CRGB(255, 63, 0); // Set LED 1 color to a different shade of orange
      FastLED.show(); // Update the LED strip
    }
  }

  if (currentMillis - previousMillis_3 > intervalMillis_3) { // check white event timer
    previousMillis_3 = currentMillis;
    chaseLEDs--; // counting down
    if (chaseLEDs < 1) { // if below the last LED...
      chaseLEDs = 10; // reset count to first LED...
      for (int i = 10; i > 0; i--)
        leds[i] = CRGB(0,0,0);
    }
    leds[chaseLEDs] = CRGB(255, 255, 255); // Set the color of the LED at index i to white
    FastLED.show(); // display the new colors
  }
}

This is toxicbb_b that you need to finish

// https://forum.arduino.cc/t/need-talented-programmer/1164338/

// "... animations all running simultaneously with the required output..."
// for one WS2812 I can not get the full animation to run
// combine the 2 together for one strip of 12
// add 15 LEDs on a different strip of WS2812
// possibly (???) add a third segment of 26 LEDs on a strip of WS2812B. Arduino Nano
// Section 1 Part A to combine with Part B to run simultaneously but inherently with Part B

// Including the FastLED library
#include <FastLED.h>

// Define constants for the LED strip setup
#define NUM_LEDS      12 + 15 + 26 // Total number of LEDs in the strip
#define DATA_PIN      7 // Data pin where the LED strip is connected

#define COLOR_ORDER   GRB // Color order of the LEDs (Green, Red, Blue)
#define CHIPSET       WS2812 // LED chipset used (WS2812)
#define BRIGHTNESS    255 // Brightness level (1 out of maximum brightness)
#define VOLTS         5 // Operating voltage for the LED strip (5V)
#define MAX_MILLIAMPS 500 // Maximum current consumption in milliamps (500 mA)

// Create object to store/display colors
CRGB leds[NUM_LEDS]; // object to store colors for each LED

// Variables to track time intervals
unsigned long previousMillis = 0; // Previous time marker for LED 10 animation
unsigned long currentMillis; // Variable to hold the current time

// Time intervals for different LED animations
const long interval1 = 60; // Interval for various animations

// State variables for LEDs
bool stateLed10 = true; // State of LED 10 (on or off)
bool stateLed11 = true; // State of LED 11 (not used in this code)

void setup() { // Setup function runs once at the beginning
  Serial.begin(115200);  // Start Serial Monitor
  FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // Adding LED strip configuration
  FastLED.setMaxPowerInVoltsAndMilliamps(VOLTS, MAX_MILLIAMPS);  // Setting maximum power consumption for LEDs
  FastLED.setBrightness(BRIGHTNESS);  // Setting LED brightness
  FastLED.clear();  // Clearing all LEDs
}

void loop() {
  partA();
  partB();
  partC();
}

void partA() {
}

void partB() {  
}

void partC() {
}

This is toxicbb_c

// https://forum.arduino.cc/t/need-talented-programmer/1164338/

// *****************************************************************************
// Received instructions (from link)
// *****************************************************************************
// add a third segment of 26 LEDs (sketch c)
//******************************************************************************
// LED STRIP C - third segment of 26
//             - run a High Low function
//******************************************************************************
// INSTRUCTION FOR THIS SIMULATION
// 1. Start the simulation
// 2. Using potentiometer and serial monitor, adjust to over 3.00v
// 3. After >= 3.00v is attained, an effect will occur
// 4. Dial the potentiometer below 2.00v and the effect will stop
// 5. Dial the potentiometer above 3.00v and the effect will start after 1000ms (1sec)
// 6. A delay at the end of the sketch can be removed for speed.

#include <Arduino.h>
#include <FastLED.h>

// Define the number of LEDs in the strip and the data pin for controlling the LED strip
#define NUM_LEDS 26       // Number of LEDs in the LED strip
#define DATA_PIN 2        // Digital pin connected to the LED data input
#define COLOR_ORDER GRB   // Color order of the LED strip (Green, Red, Blue)
#define CHIPSET WS2812B   // LED chipset type (WS2812B is a common type)
#define MAXBRIGHT 255    // set individual LED brightness
CRGB leds[NUM_LEDS];      // Create an object to hold LED colors

// Define the analog input pin for voltage measurement
#define inputPin A0       // Analog input pin for voltage measurement
float inputVolts;         // ADC of inputPin HIGH >= 3.0, LOW < 2.0

// Variables for timing LED updates
unsigned long previousMillis = 0; // store last time
unsigned long currentMillis; // store current time
const unsigned long interval = 1000; // Interval for LED updates (1 second)
const unsigned long ledBlink = 250; // LED_BUILTIN blink frequency
bool ledState = LOW; // LED_BUILTIN on/off state

void setup() { // Function to set up the Arduino

  // Initialize LED strip for FastLED library
  FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);

  // Initialize serial communication for debugging
  Serial.begin(115200);

  // Configure I/O pins
  pinMode(inputPin, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);

  // Wait for the input voltage to transition from low to high (3.0 volts)
  while (inputVolts < 3.0) { // map input ADC of 0-1023 bits to 0-5vdc
    currentMillis = millis(); // set timer
    if (currentMillis - previousMillis >= ledBlink) {
      previousMillis = currentMillis;

      Serial.print("VOLTAGE LOW : ");
      Serial.print(inputVolts);
      Serial.println("V");

      // Optional: blink an LED or send a message over serial.
      ledState = !ledState; // change LED_BUILTIN state HIGH/LOW
      digitalWrite (LED_BUILTIN, ledState); // blink LED_BUILTIN
    }

    // Optional: Add actions here to indicate that the program is waiting.
    inputVolts = map (analogRead(inputPin), 0, 1023, 0, 500.0); // range is to 500
    inputVolts = inputVolts / 100; // change 0.00 - 500.00 to 0.00 - 5.00
    delay(100);
  }

  // Input has transitioned from low to high, set LEDs to purple with brightness 1
  Serial.print("VOLTAGE GOOD: ");
  Serial.println(inputVolts);
  digitalWrite (LED_BUILTIN, LOW); // turn off LED_BUILTIN

  fill_solid(leds, NUM_LEDS, CRGB::Purple); // Set all LEDs to purple
  FastLED.setBrightness(MAXBRIGHT); // Set LED brightness to 1
  FastLED.show(); // Display the color on the LEDs
  previousMillis = millis(); // Record the current time

  Serial.println("EXITING SETUP()");
}

void loop() { // Main loop for the Arduino
  inputVolts = map (analogRead(inputPin), 0, 1023, 0, 500.0); // range is to 500
  inputVolts = inputVolts / 100; // re-map reading 0.00 - 500.00 to volts 0.00 - 5.00

    // If voltage is high enough, keep LEDs purple with brightness MAXBRIGHT
    if (inputVolts >= 3.0 && inputVolts <= 5.0) {
      Serial.print("VOLTAGE GOOD:           ");
      Serial.println(inputVolts);

      // Turn LEDs purple with brightness 1
      fill_solid(leds, NUM_LEDS, CRGB::Purple);
      FastLED.setBrightness(MAXBRIGHT);
      FastLED.show();

    } else if (inputVolts < 2.0) {
      Serial.print("VOLTAGE LOW : ");
      Serial.println(inputVolts);

      // Turn off LEDs and set brightness to 1
      fill_solid(leds, NUM_LEDS, CRGB::Blue);
      FastLED.show();
      FastLED.setBrightness(MAXBRIGHT);

    } else if (inputVolts > 2.0 && inputVolts < 3.0) {
      Serial.print("VOLTAGE NOW :      ");
      Serial.println(inputVolts);
    }
  delay(200);
}

Hi All,

Thank you all for your responses, I ended up using anshu very talented person and very professional and has certainly completed the brief and more very happy and highly recommended