Stap 1: programmeren
Dit heeft een grote startblok voor neopixel programmering.
Gebruik het draad-diagram om te zien hoe alle planken met elkaar praten.
Ik voegde een codesegment te beheersen het lichtpatroon door de correcte sensor. Ik toegewezen de correcte sensor-waarde af uit 1-1024 aan 1 tot en met 255.
Ik ben het opzetten van mijn waarde te gaan door middel van het licht patronen terwijl ik op stationair, en om te stoppen wanneer ik ben rijden op de weg.
Houd in gedachten dat dit werd aangepast van een beschermende bril-project, zodat de namen enigszins verwarrend misschien wel, maar de code goed werkt.
Hier is de rest van mijn code.
#include "Adafruit_NeoPixel.h"
#include "segment_models.h"
#include "segment_views.h"
#include "themes.h"
int sensorValue = A0;
int mappedValue;
Initialiseren
#define PIN 6
#define LED_COUNT 16
#define LEFT_EYE_START 0
#define RIGHT_EYE_START 16
#define LEDS_PER_EYE 16
#define THEME_SWITCH_DELAY 5000 / / milliseconden
Adafruit_NeoPixel led_strip = Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);
Containers voor secties van uw LED strengen/cirkels maken.
StripView left_eye = StripView (led_strip, LEFT_EYE_START, LEDS_PER_EYE);
StripView right_eye = StripView (led_strip, RIGHT_EYE_START, LEDS_PER_EYE);
StripView both_eyes = StripView (led_strip, LEFT_EYE_START, LEDS_PER_EYE * 2);
void setup)
{
Serial.begin(9600);
pinMode (A0, INPUT);
Aways geven uw project een veilig opstarten vertraging zodat u opnieuw kunt laden wanneer:
-het teveel stroom wordt gebruikt, wanneer uw LEDs te licht zijn
-de vervolgverhaal niet reageren vanwege een timingprobleem
delay(3000);
led_strip.begin ();
}
Hoofdlus
void loop {}
strip.setPixelColor();
sensorValue = analogRead(A0);
Serial.Print ("sensorValue:");
Serial.println(sensorValue);
mappedValue = kaart (sensorValue, 0, 1023, 0, 255);
Serial.Print ("kaart op 0 - 255:");
Serial.println(mappedValue);
Als (mappedValue < 30 & & mappedValue > = 1)
{
Thema's omschakelen om {x} seconden
Theme::switch_every (THEME_SWITCH_DELAY);
left_eye.Clear ();
Bijwerken van de plekken
left_eye.update ();
De vlekken trekken.
left_eye.draw ();
led_strip.show ();
}
Als (mappedValue < 255 & & mappedValue > = 31)
{
left_eye.Clear ();
led_strip.show();
}
}