Paso 1: programación
Esto tiene un gran bloque que comienza para la programación de neopixel.
Utilice el diagrama del cable para ver cómo todas las tablas hablan a unos de otros.
He añadido un segmento de código para controlar el patrón de luz por el sensor de los sonidos. Asigna el valor del sensor de los sonidos abajo de 1-1024 1-255.
Yo soy valor mi para ir a través de la luz patrones mientras estoy en el ralentí, y parar cuando yo estoy montar a caballo por el camino.
Tenga en cuenta que este fue adaptado de un proyecto de gafas tan los nombres pueden resultar algo confusos, pero el código funciona bien.
Aquí está el resto de mi código.
#include "Adafruit_NeoPixel.h"
#include "segment_models.h"
#include "segment_views.h"
#include "themes.h"
int sensorValue = A0;
int mappedValue;
Inicializar
#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 / / milisegundos
Adafruit_NeoPixel led_strip = Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);
Crear contenedores para las secciones de sus filamentos/círculos de LED.
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, entrada);
Puntos que recordar da a tu proyecto un retardo de arranque seguro así que puedes volver a subir el código cuando:
-utiliza mucho corriente cuando tus LEDs son muy brillantes
-la serie no responde debido a algún problema de sincronización
Delay(3000);
led_strip.Begin ();
}
Bucle principal
void loop() {}
strip.setPixelColor();
sensorValue = analogRead(A0);
Serial.Print ("sensorValue:");
Serial.println(sensorValue);
mappedValue = mapa (sensorValue, 0, 1023, 0, 255);
Serial.Print ("mapa a 0 - 255:");
Serial.println(mappedValue);
Si (mappedValue < 30 & & mappedValue > = 1)
{
Cambiar temas cada segundos de {x}
Theme::switch_every (THEME_SWITCH_DELAY);
left_eye.Clear ();
Actualización de los puntos
left_eye.Update ();
Dibujar los puntos.
left_eye.draw ();
led_strip.Show ();
}
Si (mappedValue < 255 & & mappedValue > = 31)
{
left_eye.Clear ();
led_strip.Show();
}
}