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 Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano

Componentes e Materiais

Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano Arduino Nano R3 × 1
Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano LEDs (genéricos) × 17
Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano Sensor de Efeito Hall × 1
Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano Resistor 100 Ω × 17
Motor DC (genérico) × 1
Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano Conversor Boost (Step-Up) Fixado × 1

Ferramentas

Aplicativos

Sobre o Projeto

Displays de Persistência de Visão (POV) mostram imagens exibindo segmentos em rápida sucessão; o cérebro humano percebe uma imagem contínua. Este projeto, do site "hobby projects", apresenta um relógio analógico simples mas visualmente eficaz. A parte eletrônica contém Arduino Nano, 17 LEDs e sensor Hall. Grupos de LEDs (d1-d11, d12-d16, d17) têm cores diferentes para melhor efeito. Alimentação por bateria Li-ion via conversor step-up.

O maior desafio foi a estabilidade mecânica. Inicialmente a bateria estava descentrada, causando vibração em alta rotação. Reposicionei a bateria no centro de rotação.

Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano

Rotação por motor 12V com fonte variável para controle de velocidade. No código, ajuste delayMicroseconds conforme a velocidade do motor.

O vídeo não tem qualidade suficiente devido à taxa de quadros da câmera.

Código

// hobbyprojects // ArduinoNanoPropellerLEDAnalogClock20190403A
int LED1 = 2, LED2 = 3, LED3 = 4, LED4 = 5, LED5 = 6, LED6 = 7, LED7 = 8;
int LED8 = 9, LED9 = 10, LED10 = 11, LED11 = 12;
int LED12 = A1, LED13 = A2, LED14 = A3, LED15 = A4, LED16 = A5;
int sensorPin = A0;

unsigned int n, ADCvalue, propeller_posn;
unsigned long previousTime = 0;
byte hours = 12;
byte minutes = 15;
byte seconds = 0;
int val;

void setup() {
  for (int i = 2; i <= 12; i++) pinMode(i, OUTPUT);
  pinMode(LED12, OUTPUT); pinMode(LED13, OUTPUT); pinMode(LED14, OUTPUT);
  pinMode(LED15, OUTPUT); pinMode(LED16, OUTPUT);
  pinMode(sensorPin, INPUT_PULLUP);
  if (hours == 12) hours = 0;
}

void loop() {
  val = digitalRead(sensorPin);
  while (val == LOW) val = digitalRead(sensorPin);

  if (millis() >= previousTime) {
    previousTime += 1000;
    seconds++;
    if (seconds == 60) { seconds = 0; minutes++; }
    if (minutes == 60) { minutes = 0; hours++; }
    if (hours == 12) hours = 0;
  }

  propeller_posn = 30;
  n = 0;
  while (n < 60) {
    drawMinuteMarker();
    if (propeller_posn % 5 == 0) drawHourMarker();
    if (propeller_posn % 15 == 0) drawQuarterMarker();
    if (propeller_posn == hours * 5 || (propeller_posn == 0 && hours == 0)) drawHoursHand();
    if (propeller_posn == minutes) drawMinutesHand();
    if (propeller_posn == seconds) drawSecondsHand();

    delayMicroseconds(140); // largura do pixel LED (ajuste conforme velocidade)
    displayClear();
    drawInner_Circle();
    delayMicroseconds(600); // gap entre pixels/marcadores

    n++;
    propeller_posn++;
    if (propeller_posn == 60) propeller_posn = 0;
  }

  val = digitalRead(sensorPin);
  while (val == HIGH) val = digitalRead(sensorPin);
}

void displayClear() {
  for (int i = 2; i <= 12; i++) digitalWrite(i, LOW);
  digitalWrite(LED12, LOW); digitalWrite(LED13, LOW); digitalWrite(LED14, LOW);
  digitalWrite(LED15, LOW); digitalWrite(LED16, LOW);
}

void drawMinuteMarker() { digitalWrite(LED16, HIGH); }
void drawHourMarker() { digitalWrite(LED15, HIGH); digitalWrite(LED14, HIGH); }
void drawQuarterMarker() { digitalWrite(LED13, HIGH); digitalWrite(LED12, HIGH); }

void drawHoursHand() {
  for (int i = 2; i <= 8; i++) digitalWrite(i, HIGH);
}
void drawMinutesHand() {
  for (int i = 2; i <= 10; i++) digitalWrite(i, HIGH);
}
void drawSecondsHand() {
  for (int i = 2; i <= 11; i++) digitalWrite(i, HIGH);
}
void drawInner_Circle() {
  digitalWrite(LED1, HIGH);
  delayMicroseconds(30);
  digitalWrite(LED1, LOW);
}

Esquemático

Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano

Processo de manufatura

  1. Construa um Sequenciador de LED com Timer 555 e Contador 4017 – Divisão de Frequência e Debounce
  2. Relógio Cuco: História, Artesanato e Evolução Moderna
  3. Construa Seu Próprio LUMAZOID: Visualizador de Música DIY com Arduino
  4. Relógio POV com Arduino: Construa um Display LED de Persistência de Visão
  5. Dispositivo de Precisão para Medição de Pressão e Fluxo de Ar com Sensor Analógico
  6. Construa Seu Próprio Jogo de Roleta com 37 LEDs e Arduino Nano
  7. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  8. Relógio 3D RGB Arduclock – Bluetooth, LEDs Endereçáveis e RTC
  9. Controle de Trim Tab para FlightGear com Arduino Nano: Roda Analógica Compacta
  10. Display Interativo de Matriz LED na Porta com Sensor PIR – Saudação de Férias Arduino