Green Bean at Arduino, new and confused. LED+Distance

Hey there everyone,

I am new to Arduino and am attempting to setup a board to trigger LED lights when someone is within a meter of the project.

Ultimate idea is one of those automatic sand and metal ball meditation bowls but with an LED twist.

To start with however I need to figure out how to trigger the LEDS only on proximity and right now its just constantly going and doesn't trigger when I try to move it from a VIN to digital power.

I'll include the code in the next box

#include <FastLED.h>

FASTLED_USING_NAMESPACE

// FastLED "100-lines-of-code" demo reel, showing just a few
// of the kinds of animation patterns you can quickly and easily
// compose using FastLED.
//
// This example also shows one easy way to define multiple
// animations patterns and have them automatically rotate.
//
// -Mark Kriegsman, December 2014

#if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000)
#warning "Requires FastLED 3.1 or later; check github for latest code."
#endif

#define DATA_PIN 13
//#define CLK_PIN 4
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define NUM_LEDS 30
CRGB leds[NUM_LEDS];

#define BRIGHTNESS 96
#define FRAMES_PER_SECOND 120

const int trig = 9;
const int echo = 10;

int duration = 0;
int distance = 0;

void setup() {

pinMode(trig , OUTPUT);
pinMode(echo , INPUT);

Serial.begin(9600);

delay(3000); // 3 second delay for recovery

// tell FastLED about the LED strip configuration
FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
//FastLED.addLeds<LED_TYPE,DATA_PIN,CLK_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

// set master brightness control
FastLED.setBrightness(BRIGHTNESS);

}

// List of patterns to cycle through. Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { rainbow };

uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 0; // rotating "base color" used by many of the patterns

void loop()
{
digitalWrite(trig , HIGH);
delayMicroseconds(1000);
digitalWrite(trig , LOW);

duration = pulseIn(echo , HIGH);
distance = (duration/2) / 29.1 ;
Serial.println(distance);

if ( distance <= 10 )
{
digitalWrite(12, HIGH);
}
else
{
digitalWrite(11, LOW);
}

// Call the current pattern function once, updating the 'leds' array
gPatternsgCurrentPatternNumber;

// send the 'leds' array out to the actual LED strip
FastLED.show();
// insert a delay to keep the framerate modest
FastLED.delay(100/FRAMES_PER_SECOND);

// do some periodic updates
EVERY_N_MILLISECONDS( 2000 ) { gHue++; } // slowly cycle the "base color" through the rainbow

}

#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))

void rainbow()
{
// FastLED's built-in rainbow generator
fill_rainbow( leds, NUM_LEDS, gHue, 7);
}

Post a schematic, not a frizzy thing would help. Also what type of sensor are you planning on using to trigger the LEDs. There are Ir, RADAR, SONAE, and many others that may work.

@focusadam, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with your project :wink: See About the Installation & Troubleshooting category.

Please edit your post that contains the code, select all code and click the </> button to apply code tags and next save your post. It makes it easier to read, easier to copy and prevents the forum software from incorrect interpretation of the code (e.g. [] instead of []).

The pulse should be 10 microseconds, not 1000.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.