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

Relógio POV de LED estilo analógico

Componentes e suprimentos

Arduino Nano R3
× 1
LED (genérico)
× 17
Sensor de efeito Hall
× 1
Resistor 100 ohm
× 17
Motor DC (genérico)
× 1
Boost (Step Up) Switching Regulator, Fixo
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto




Os visores de Persistência de Visão (POV) são geralmente visores de LED que "mostram" imagens exibindo uma seção de uma imagem em um determinado momento, em rápida sucessão rápida. O cérebro humano percebe isso como a exibição de uma imagem contínua.

No site do "projeto hobby" é apresentado este relógio de face de estilo analógico relativamente simples, mas visualmente eficaz. A parte eletrônica contém os diodos Arduino Nano 17 LED e o sensor de efeito Hall. Os grupos de diodos LED d1-d11, d12-d16 e d17 são de cores diferentes para melhor efeito visual. O dispositivo é alimentado por uma bateria de íon de lítio através de um conversor elevador.

A parte mais difícil dos projetos para mim foi a estabilidade mecânica. Na primeira tentativa, a bateria foi ajustada excentricamente e em uma velocidade de rotação maior houve uma vibração enorme. Então fiz uma modificação e coloquei a bateria no centro de rotação.

Para a rotação, uso um motor elétrico de 12 V conectado a uma fonte de alimentação variável para que a velocidade de rotação do dispositivo possa ser facilmente controlada. Dependendo da velocidade de rotação do dispositivo, no código você precisa definir o valor de "delayMicroseconds" para um determinado valor.

O vídeo apresentado não é suficientemente claro, pois para isso preciso de uma câmera com melhor fotogramas por segundo.

Código

  • código
código Arduino
 // projetos de hobby // ArduinoNanoPropellerLEDAnalogClock20190403Aint LED1 =2; int LED2 =3; int LED3 =4; int LED4 =5; int LED5 =6; int LED6 =7; int LED7 =8; int LED8 =9; int LED9 =10; int LED10 =11; int LED11 =12; int LED12 =A1; int LED13 =A2; int LED14 =A3; int LED15 =A4; int LED16 =A5; int sensorPin =A0; int n não assinado, ADCvalue, propeller_posn; tempo anterior sem sinal longo =0; horas de byte =12; // definir horasbyte minutos =15; // definir minutosbyte segundos =00; // define segundosint val; void setup () {pinMode (LED1, OUTPUT); pinMode (LED2, SAÍDA); pinMode (LED3, SAÍDA); pinMode (LED4, SAÍDA); pinMode (LED5, SAÍDA); pinMode (LED6, SAÍDA); pinMode (LED7, SAÍDA); pinMode (LED8, SAÍDA); pinMode (LED9, SAÍDA); pinMode (LED10, SAÍDA); pinMode (LED11, SAÍDA); pinMode (LED12, SAÍDA); pinMode (LED13, SAÍDA); pinMode (LED14, SAÍDA); pinMode (LED15, SAÍDA); pinMode (LED16, SAÍDA); pinMode (sensorPin, INPUT_PULLUP); if (horas ==12) horas =0;} void loop () {val =digitalRead (sensorPin); enquanto (val ==LOW) {val =digitalRead (sensorPin); } if (millis ()> =(previousTime)) {previousTime =previousTime + 1000; segundos =segundos + 1; if (segundos ==60) {segundos =0; minutos =minutos + 1; } se (minutos ==60) {minutos =0; horas =horas + 1; } if (horas ==12) {horas =0; }} propeller_posn =30; n =0; while (n <60) {drawMinuteMarker (); if ((propeller_posn ==0) || (propeller_posn ==5) || (propeller_posn ==10) || (propeller_posn ==15) || (propeller_posn ==20) || (propeller_posn ==25) || (propeller_posn ==30) || (propeller_posn ==35) || (propeller_posn ==40) || (propeller_posn ==45) || (propeller_posn ==50) || (propeller_posn ==55)) drawHourMarker (); if ((propeller_posn ==0) || (propeller_posn ==15) || (propeller_posn ==30) || (propeller_posn ==45)) drawQuarterMarker (); if ((propeller_posn ==horas * 5) || ((propeller_posn ==0) &&(horas ==0))) drawHoursHand (); if (propeller_posn ==minutos) drawMinutesHand (); if (propeller_posn ==segundos) drawSecondsHand (); atrasoMicrosegundos (140); // para largura de pixel do LED (alterar o valor de acordo com a velocidade do motor. Aumentar para velocidade baixa, diminuir para motor de alta velocidade) displayClear (); drawInner_Circle (); atraso Microssegundos (600); // para o intervalo entre os pixels do LED / marcadores de minutos (altere o valor de acordo com a velocidade do motor. Aumente para velocidade baixa, diminua para motor de alta velocidade) n ++; propeller_posn ++; if (propeller_posn ==60) propeller_posn =0; } val =digitalRead (sensorPin); enquanto (val ==HIGH) {val =digitalRead (sensorPin); }} // ===========================void displayClear () {digitalWrite (LED1, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, BAIXO); digitalWrite (LED4, LOW); digitalWrite (LED5, BAIXO); digitalWrite (LED6, BAIXO); digitalWrite (LED7, BAIXO); digitalWrite (LED8, BAIXO); digitalWrite (LED9, BAIXO); digitalWrite (LED10, LOW); digitalWrite (LED11, LOW); digitalWrite (LED12, LOW); digitalWrite (LED13, BAIXO); digitalWrite (LED14, BAIXO); digitalWrite (LED15, BAIXO); digitalWrite (LED16, LOW); } void drawMinuteMarker () {digitalWrite (LED16, HIGH); } void drawHourMarker () {digitalWrite (LED15, HIGH); digitalWrite (LED14, ALTO); } void drawQuarterMarker () {digitalWrite (LED13, HIGH); digitalWrite (LED12, ALTO); } void drawHoursHand () {digitalWrite (LED1, HIGH); digitalWrite (LED2, ALTO); digitalWrite (LED3, ALTO); digitalWrite (LED4, ALTO); digitalWrite (LED5, ALTO); digitalWrite (LED6, ALTO); digitalWrite (LED7, ALTO); } void drawMinutesHand () {digitalWrite (LED1, HIGH); digitalWrite (LED2, ALTO); digitalWrite (LED3, ALTO); digitalWrite (LED4, ALTO); digitalWrite (LED5, ALTO); digitalWrite (LED6, ALTO); digitalWrite (LED7, ALTO); digitalWrite (LED8, ALTO); digitalWrite (LED9, ALTO); } void drawSecondsHand () {digitalWrite (LED1, HIGH); digitalWrite (LED2, ALTO); digitalWrite (LED3, ALTO); digitalWrite (LED4, ALTO); digitalWrite (LED5, ALTO); digitalWrite (LED6, ALTO); digitalWrite (LED7, ALTO); digitalWrite (LED8, ALTO); digitalWrite (LED9, ALTO); digitalWrite (LED10, ALTO); digitalWrite (LED11, ALTO); } void drawInner_Circle () {digitalWrite (LED1, HIGH); atraso Microssegundos (30); digitalWrite (LED1, BAIXO); } 

Esquemas


Processo de manufatura

  1. Sequenciador de LED
  2. Relógio de cuco
  3. DIY LUMAZOID Arduino Music Visualiser
  4. Relógio de visão pov do Arduino
  5. Dispositivo de medição de pressão de fluxo de ar com sensor analógico
  6. DIY 37 LED Roulette Game
  7. Relógio mestre
  8. 3D RGB Arduclock
  9. FlightGear Analog Trim Tab Wheel
  10. Matriz LED + Display da porta do sensor de movimento [Arduino Holiday]