Afaste-se do atraso
Componentes e suprimentos
| × | 1 | ||||
| × | 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
- Como proteger o alumínio da corrosão
- Aprenda computação em nuvem do zero
- 3 razões para fazer a transição de C para C ++
- Obter umidade / temperatura da web
- Projeto IoT 101:Temperatura do Fluxo do Raspberry Pi
- Transmissão de dados do sensor de uma placa ppDAQC Pi usando InitialState
- ROBÔ WIFI RASPBERRY PI CONTROLADO PELO TELEFONE INTELIGENTE ANDROID
- Controle de atraso Verilog
- De onde surgiu o conceito de serra?
- O que esperar do elenco cinza?