Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Matriz LED + Display da porta do sensor de movimento [Arduino Holiday]

Componentes e suprimentos

Arduino UNO
× 1
Arduino Nano R3
× 1
Sensor de movimento PIR (genérico)
× 1
Relé (genérico)
× 1
Fios de jumpers (genérico)
× 1
Cabo de alimentação PSU para PC
× 1
Faixa de LED RGB
× 1
Painel de Neopixel 8x8
× 3

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Wire Stripper

Sobre este projeto


Este projeto combina 3 matrizes LED WS2812B 8x8 RGB e um sensor de movimento PIR para saudar os visitantes com um texto dizendo "Boas Festas e Feliz Ano Novo!" quando estão perto o suficiente da porta e exibem um conjunto de efeitos como um protetor de tela em monitores quando o sensor não está detectando ninguém nas proximidades.

É controlado por um Arduino UNO e alimentado por uma fonte de alimentação 5v 30a.

Eu testei ou combinei 3 conjuntos de códigos.

Os da biblioteca FastLED DemoReel100 Exemplo para os efeitos Idle / Standby.

O código do sensor de movimento PIR

E o código de configuração do Neopixel, eu acho. Não tenho mais certeza, tbh ,, já que isso foi há quase um mês, quando misturei os códigos.

Eu também usei outro sensor de movimento PIR que está conectado a um relé 5v com uma string de LED RGB 12v via cabo de extensão e controlado por um Arduino Nano.

O LED String, juntamente com as luzes de férias que também estão conectadas ao cabo de extensão, são ativados quando o 1º sensor PIR detecta movimento. Ele está localizado no teto próximo ao primeiro degrau da escada.

Após alguns passos subindo, o segundo sensor PIR diz ao UNO para mostrar a tela de Texto nas matrizes quando alguém estiver próximo o suficiente da porta.

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

Links de mídia social a seguir (quer dizer, se você quiser):

Facebook - https://fb.me/HeathenHacks

Twitter - https://twitter.com/HeathenHacks

Instagram - https://instagr.am/HeathenHacks

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






Código

  • Férias do Arduino
Arduino Holiday Arduino
 #include  FASTLED_USING_NAMESPACE # include  #include  #include  #ifndef PSTR # define PSTR // Faça Arduino devido # endif # definir PIN 6 // # se definido (FASTLED_VERSION) &&(FASTLED_VERSION <3001000) // # aviso "Requer FastLED 3.1 ou posterior; verifique o github para obter o código mais recente." // # 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 * kMatrixHeight_tkMatrixHeight =8; const bool kMatrixSerpentineLayout =true; #define NUM_LEDS (kMatrixWidth * kMatrixHeightHeight) #defineMatrixWidth (kMatrixHeight) #defineWidth # kMatrixHeight (kMatrixWidth) #defineMatrixHRIGHT_Width (kMatrixHeight) #defineMatrixHRigRix_Data_HeRight (MAX) 50 # definir FRAMES_PER_SECOND 120 // A versão da nossa coordinatesstatic uint16_t x 16 bits; estático uint16_t y; estático uint16_t z; Adafruit_NeoMatrix matriz =Adafruit_NeoMatrix (24, 8, PIN, NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, NEO_GRB + NEO_KHZ800); const uin cores t16_t [] ={matriz.Cor (255, 0, 0), matriz.Cor (0, 255, 0), matriz.Cor (0, 0, 255), matriz.Cor (0, 255, 255), matriz.Cor (255, 0, 255), matriz.Cor (255, 255, 0), matriz.Cor (255, 255, 255)}; uint16_t velocidade =20; // a velocidade é definida dinamicamente assim que iniciamos upuint16_t scale =30; // a escala é definida dinamicamente assim que iniciamos o ruído uint8_t [MAX_DIMENSION] [MAX_DIMENSION]; CRGBPalette16 currentPalette (PartyColors_p); uint8_t colorLoop =1; int pirSensorPin =5; // escolha o pino de entrada (para sensor PIR) int pirState =true; // começamos, assumindo que nenhum movimento foi detectadoint val =0; // variável para ler o pin statusint minimummSecsLowForInactive =5000; // Se o sensor reportar baixo por // mais do que este tempo, então não presuma nenhuma atividade longo unsigned int timeLow; boolean takeLowTime; // o tempo que damos ao sensor para calibrar (10-60 segundos de acordo com a folha de dados) int calibraçãoTime =30; configuração nula () {atraso (3000); // Atraso de 3 segundos para recuperação // informa ao FastLED sobre a configuração da faixa de LED FastLED.addLeds  (leds, NUM_LEDS) .setCorrection (TypicalLEDStrip); //FastLED.addLeds(leds, NUM_LEDS) .setCorrection (TypicalLEDStrip); // definir o controle mestre de brilho FastLED.setBrightness (BRIGHTNESS); matrix.setTextWrap (false); matrix.setBrightness (40); matrix.setTextColor (colors [0]); pinMode (pirSensorPin, INPUT); // declara o sensor como entrada LEDS.addLeds  (leds, NUM_LEDS); x =random16 (); y =random16 (); z =random16 ();} int a =matrix.width (); int pass =0; // Lista de padrões para percorrer. Cada um é definido como uma função separada below.typedef void (* SimplePatternList []) (); SimplePatternList gPatterns ={rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon}; uint8_t gCurrentPatternNumber =0; // Número do índice cujo padrão é currentuint8_t gHue =0; // girando a "cor de base" usada por muitos dos patternsvoid fadeall () {for (int i =0; i  =6) passa =0; matrix.setTextColor (cores [passagem]); } matrix.show (); atraso (100); if (pirState) {// acabamos de ativar pirState =false; } takeLowTime =true; } else {// Chama a função padrão atual uma vez, atualizando o array 'leds' gPatterns [gCurrentPatternNumber] (); // envia o array 'leds' para a faixa de LED atual FastLED.show (); // insira um atraso para manter a taxa de quadros modesta FastLED.delay (1000 / FRAMES_PER_SECOND); // faça algumas atualizações periódicas EVERY_N_MILLISECONDS (20) {gHue ++; // percorre lentamente a "cor base" através do arco-íris} EVERY_N_SECONDS (10) {nextPattern (); // muda os padrões periodicamente}}} # define ARRAY_SIZE (A) (sizeof (A) / sizeof ((A) [0])) void nextPattern () {// adiciona um ao número do padrão atual e envolve no end gCurrentPatternNumber =(gCurrentPatternNumber + 1)% ARRAY_SIZE (gPatterns);} void rainbow () {// Gerador de arco-íris integrado do FastLED fill_rainbow (leds, NUM_LEDS, gHue, 7);} void rainbowWithGlitter () {// integrado Arco-íris FastLED, além de um arco-íris de brilho cintilante aleatório (); addGlitter (80);} void addGlitter (fract8 chanceOfGlitter) {if (random8 ()  =0; i--) {// Defina o i'ésimo led para leds vermelhos [i] =CHSV (matiz ++, 255, 255); // Mostra os leds FastLED.show (); // agora que mostramos os leds, redefina o i'ésimo led para preto // leds [i] =CRGB ::Black; fadeall (); // Espere um pouco antes de fazermos um loop e fazer novamente delay (10); }} 

Esquemas


Processo de manufatura

  1. DIY LUMAZOID Arduino Music Visualiser
  2. Sensor DHT11 com LEDs e um alto-falante Piezo
  3. MyRiver
  4. Sensor de obstáculo simples com Arduino
  5. Encontre-me
  6. Arduino Quadruped
  7. Pistola de água com sensor de movimento
  8. Sonar usando arduino e exibição no IDE de processamento
  9. Osciloscópio DIY 10Hz-50kHz em tela LCD 128x64
  10. Relógio giratório Arduino de matriz de LED único