Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Matriz LED + Pantalla de puerta con sensor de movimiento [Arduino Holiday]

Componentes y suministros

Arduino UNO
× 1
Arduino Nano R3
× 1
Sensor de movimiento PIR (genérico)
× 1
Retransmisión (genérico)
× 1
Cables de puente (genéricos)
× 1
Cable de alimentación de PSU para PC
× 1
Tira de LED RGB
× 1
Panel Neopixel 8x8
× 3

Herramientas y máquinas necesarias

Soldador (genérico)
Pelacables

Acerca de este proyecto

Este proyecto combina 3 matrices LED WS2812B 8x8 RGB y un sensor de movimiento PIR para recibir a los visitantes con un texto que dice "¡Felices fiestas y próspero año nuevo!" cuando están lo suficientemente cerca de la puerta y muestran un conjunto de efectos como un protector de pantalla en los monitores cuando el sensor no detecta a nadie cerca.

Está controlado por un Arduino UNO y alimentado por una fuente de alimentación de 5v 30a.

Hice kitbashed o combiné 3 juegos de códigos.

Los de la biblioteca FastLED DemoReel100 Ejemplo para los efectos inactivos / en espera.

El código del sensor de movimiento PIR

Y el código de configuración para Neopixel, creo. Ya no estoy realmente seguro, tbh, ya que eso fue hace casi un mes cuando mezclé los códigos.

También utilicé otro sensor de movimiento PIR que está conectado a un relé de 5v con una cadena de LED RGB de 12v a través de un cable de extensión y controlado por un Arduino Nano.

La cadena de LED, junto con las luces navideñas que también están conectadas al cable de extensión, se activan cuando el primer sensor PIR detecta movimiento. Está ubicado en el techo cerca del primer escalón de las escaleras.

Después de subir algunos pasos, el segundo sensor PIR le dice al UNO que muestre la pantalla de texto en las matrices cuando alguien esté lo suficientemente cerca de la puerta.

*********************************************** ****************************

Enlaces de redes sociales para seguir (quiero decir, si quieres):

Facebook:https://fb.me/HeathenHacks

Twitter:https://twitter.com/HeathenHacks

Instagram:https://instagr.am/HeathenHacks

*********************************************** ****************************

Código

  • Arduino Holiday
Arduino Holiday Arduino
 #include  FASTLED_USING_NAMESPACE # include  #include  #include  #ifndef PSTR # define PSTR // Haz feliz Arduino Due # endif # define PIN 6 // # si está definido (FASTLED_VERSION) &&(FASTLED_VERSION <3001000) // # advertencia "Requiere FastLED 3.1 o posterior; verifique github para obtener el código más reciente". // # endif # define DATA_PIN 6 # define LED_TYPE WS2811 # define COLOR_ORDER GRB # define NUM_LEDS 192CRGB leds [NUM_LEDS]; const uint8_t kMatrixWidth =24; const uint8_t kMatrixHeight =8; const bool kMatrixSerpentineLayout =true; #define NUM_LEDS (kMatrixWidth * kMatrixMatrixineWidth) 50 # define FRAMES_PER_SECOND 120 // La versión de 16 bits de nuestras coordenadasstatic uint16_t x; static uint16_t y; static uint16_t z; Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix (24, 8, PIN, NEO_MATRIX_TOP + NEOGRNS_MATRIX_RIGHTRIGHT + NE_CO_MATRIVE + NEOGR_MATRIX + NEO_MATRIX_MATRIX_CO_MATRIX) uin t16_t colores [] ={matriz.Color (255, 0, 0), matriz.Color (0, 255, 0), matriz.Color (0, 0, 255), matriz.Color (0, 255, 255), matrix.Color (255, 0, 255), matrix.Color (255, 255, 0), matrix.Color (255, 255, 255)}; uint16_t velocidad =20; // la velocidad se establece dinámicamente una vez que hemos iniciado upuint16_t scale =30; // la escala se establece dinámicamente una vez que hemos comenzado uint8_t ruido [MAX_DIMENSION] [MAX_DIMENSION]; CRGBPalette16 currentPalette (PartyColors_p); uint8_t colorLoop =1; int pirSensorPin =5; // elija el pin de entrada (para sensor PIR) int pirState =true; // empezamos, asumiendo que no se detecta movimientoint val =0; // variable para leer el pin statusint minimummSecsLowForInactive =5000; // Si el sensor reporta bajo durante // más de este tiempo, entonces asuma que no hay actividadlong unsigned int timeLow; boolean takeLowTime; // el tiempo que le damos al sensor para calibrar (10-60 segundos según la hoja de datos) int calibraciónTime =30; configuración vacía () {retraso (3000); // Retraso de 3 segundos para la recuperación // informar a FastLED sobre la configuración de la tira de LED FastLED.addLeds  (leds, NUM_LEDS) .setCorrection (TypicalLEDStrip); //FastLED.addLeds(leds, NUM_LEDS) .setCorrection (TypicalLEDStrip); // establece el control de brillo maestro FastLED.setBrightness (BRIGHTNESS); matrix.setTextWrap (falso); matrix.setBrightness (40); matrix.setTextColor (colores [0]); pinMode (pirSensorPin, ENTRADA); // declara el sensor como entrada LEDS.addLeds  (leds, NUM_LEDS); x =aleatorio16 (); y =random16 (); z =random16 ();} int a =matrix.width (); int pass =0; // Lista de patrones por recorrer. Cada uno se define como una función separada a continuación.typedef void (* SimplePatternList []) (); SimplePatternList gPatterns ={rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon}; uint8_t gCurrentPatternNumber =0; // Número de índice cuyo patrón es actualuint8_t gHue =0; // "color base" rotativo utilizado por muchos de los patrones void fadeall () {for (int i =0; i  =6) pasa =0; matrix.setTextColor (colores [paso]); } matrix.show (); retraso (100); if (pirState) {// acabamos de activar pirState =false; } takeLowTime =true; } else {// Llama a la función de patrón actual una vez, actualizando la matriz 'leds' gPatterns [gCurrentPatternNumber] (); // envía la matriz de 'leds' a la tira de LED real FastLED.show (); // inserta un retraso para mantener la velocidad de fotogramas moderada FastLED.delay (1000 / FRAMES_PER_SECOND); // haga algunas actualizaciones periódicas CADA_N_MILLISECONDS (20) {gHue ++; // recorre lentamente el "color base" a través del arco iris} EVERY_N_SECONDS (10) {nextPattern (); // cambia los patrones periódicamente}}} # define ARRAY_SIZE (A) (sizeof (A) / sizeof ((A) [0])) void nextPattern () {// agrega uno al número de patrón actual, y envuelve en el end gCurrentPatternNumber =(gCurrentPatternNumber + 1)% ARRAY_SIZE (gPatterns);} void rainbow () {// Generador de arco iris incorporado de FastLED fill_rainbow (leds, NUM_LEDS, gHue, 7);} void rainbowWithGlitter () {// built-in Arcoíris FastLED, más un arcoíris de brillo brillante aleatorio (); addGlitter (80);} vacío addGlitter (fract8 chanceOfGlitter) {if (random8 ()  =0; i--) {// Establece el i-ésimo led en leds rojos [i] =CHSV (hue ++, 255, 255); // Muestra los leds FastLED.show (); // ahora que hemos mostrado los leds, resetee el i'th led a negro // leds [i] =CRGB ::Black; fadeall (); // Espera un poco antes de hacer un bucle y hacerlo de nuevo delay (10); }} 

Esquemas


Proceso de manufactura

  1. Visualizador de música DIY LUMAZOID Arduino
  2. Sensor DHT11 con LED y altavoz piezoeléctrico
  3. Mi Río
  4. Sensor de obstáculos simple con Arduino
  5. Encuéntrame
  6. Arduino Cuadrúpedo
  7. Pistola de agua con sensor de movimiento
  8. Sonda usando arduino y visualización en procesamiento IDE
  9. Osciloscopio DIY de 10Hz-50kHz en pantalla LCD de 128x64
  10. Reloj Flip Arduino de matriz de un solo LED
  11. Controlar una matriz de LED con Arduino Uno