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

Afaste-se do atraso

Componentes e suprimentos

Arduino UNO
× 1
LED de 5 mm:Vermelho
× 2

Sobre este projeto


Este vídeo foi inspirado em perguntas que semeio online. sobre como piscar 2 LED em taxas diferentes.

Se quiséssemos piscar um led a cada 1000 millis e o segundo a cada 500 millis, ainda poderíamos usar o delay, assim, como você pode ver, divido o delay de 1000 millis do primeiro LED em 500 millis do segundo intermitente.
  byte LED2 =12; void setup () {pinMode (LED_BUILTIN, OUTPUT); pinMode (LED2, OUTPUT);} void loop () {digitalWrite (LED_BUILTIN, HIGH); digitalWrite (LED2, ALTO); atraso (500); digitalWrite (LED2, LOW); atraso (500); digitalWrite (LED_BUILTIN, LOW); digitalWrite (LED2, ALTO); atraso (500); digitalWrite (LED2, LOW); atraso (500); }  

Mas o que acontecerá se quisermos piscar o mais rápido em 300 milis ao invés dos 500 milis. É aqui que o uso do atraso torna muito complicado para não ser possível.

Então o que fazer? Pare de usar o atraso!

Nós até temos um exemplo para ele no IDE do Arduino e é chamado blinkwithoutdelay.

Eu duplico a lógica do primeiro LED para um segundo e defino o atraso desejado.

Portanto, tente também e evite o atraso. Vou dizer uma coisa final, o código que compartilhei está longe de ser perfeito e pensei em mudá-lo, mas, como este vídeo é voltado para pessoas que não conhecem o arduino, Eu votei contra.

Código

  • Exemplo de código
Exemplo de código Arduino
 const int ledPin =LED_BUILTIN; int ledState =LOW; sem sinal long previousMillis =0; intervalo longo const =1000; const int ledPin2 =12; int ledState2 =LOW; sem sinal long previousMillis2 =0; intervalo longo const 2 =300; void setup () {pinMode (ledPin, OUTPUT); pinMode (ledPin2, OUTPUT);} void loop () {unsigned long currentMillis =millis (); if (currentMillis - previousMillis> =intervalo) {previousMillis =currentMillis; if (ledState ==LOW) {ledState =HIGH; } else {ledState =LOW; } digitalWrite (ledPin, ledState); } // fim if if (currentMillis - previousMillis2> =interval2) {previousMillis2 =cur rentMillis; if (ledState2 ==LOW) {ledState2 =HIGH; } else {ledState2 =LOW; } digitalWrite (ledPin2, ledState2); } // fim if} 

Esquemas


Processo de manufatura

  1. Como proteger o alumínio da corrosão
  2. Aprenda computação em nuvem do zero
  3. 3 razões para fazer a transição de C para C ++
  4. Obter umidade / temperatura da web
  5. Projeto IoT 101:Temperatura do Fluxo do Raspberry Pi
  6. Transmissão de dados do sensor de uma placa ppDAQC Pi usando InitialState
  7. ROBÔ WIFI RASPBERRY PI CONTROLADO PELO TELEFONE INTELIGENTE ANDROID
  8. Controle de atraso Verilog
  9. De onde surgiu o conceito de serra?
  10. O que esperar do elenco cinza?