Monday, September 9, 2024

LED Control using Camera (Sunil)

 #include <Firmata.h>


byte ledPinMap[5] = {2, 3, 4, 5, 6};  // Map each LED to specific pins
byte ledState[5] = {0, 0, 0, 0, 0};   // Keep track of LED states (ON/OFF)

void analogWriteCallback(byte pin, int value)
{
  if (IS_PIN_DIGITAL(pin)) {
    // Check if the value is greater than a threshold to turn the LED on/off
    if (value > 127) {
      digitalWrite(ledPinMap[pin], HIGH);  // Turn on the LED
    } else {
      digitalWrite(ledPinMap[pin], LOW);   // Turn off the LED
    }
  }
}

void systemResetCallback()
{
  // Reset all LEDs to off
  for (byte i = 0; i < 5; i++) {
    ledState[i] = LOW;
    digitalWrite(ledPinMap[i], LOW);
  }
}

void setup()
{
  Firmata.setFirmwareVersion(FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION);
  Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
  Firmata.attach(SYSTEM_RESET, systemResetCallback);

  Firmata.begin(57600);
  systemResetCallback();

  // Set up LED pins as OUTPUT and turn them off initially
  for (byte i = 0; i < 5; i++) {
    pinMode(ledPinMap[i], OUTPUT);
    digitalWrite(ledPinMap[i], LOW);
  }
}

void loop()
{
  while (Firmata.available())
    Firmata.processInput();
}

No comments:

Post a Comment

MUD Three Mode operation Manual Automatic GPS

 Code for three mode operation: /*   3-Mode Headlight Controller   - Manual mode (driver uses a toggle to pick high/low)   - Auto mode (LDR...