Tags:
Olá Johan,
Existem muitas formas para fazer o que você precisa, utilizando interrupções de timer ou uma sequência com delays.
Explicarei algumas.
1) Sequência de delays.
Nesta forma, você pode simplesmente atuar sobre o acionamento do pino e em seguinda chamar o delay para manter o pino no estado que você definou. Por exemplo:
// sequencia 1
digitalWrite(led,HIGH);
delay(600);
digitalWrite(led,LOW);
delay(200);
// sequencia 2
digitalWrite(led,HIGH);
delay(950);
digitalWrite(led,LOW);
delay(300);
// etc...
Esta forma é bem direta, principalmente para que está começando no mundo da programação. Mas podemos deixar esta solução mais enxuta e por vezes mais flexível fazendo de outra forma, que poderia ser com tabelas.
2) Definições por tabelas.
Vamos para isso criar uma tabela com os tempos ON e OFF do led para cada entrada.
Primeiro definimos uma estrutura:
//Definicao da estrutura
struct ControleLed{
unsigned int _tempoON;
unsigned int _tempoOFF;
};
Depois montamos a tabela com os valores que queremos:
struct ControleLed Sequencia[] = { {600,200}, // 1
{950,300}, // 2
{500,350}}; // 3
#define NUMERO_DE_SEQUENCIAS 3
Agora só precisamos fazer o algoritmo para percorrer a tabela e carregar os tempos de delay.
Que ficaria parecido com:
for( int i=0; i < NUMERO_DE_SEQUENCIAS,i++){
digitalWrite(led,HIGH);
delay(Sequencia[i]._tempoON);
digitalWrite(led,LOW);
delay(Sequencia[i]._tempoOFF);
}
Assim você percorre toda a tabela com os valores configuráveis, podendo expandir ela para quantas sequencias quiser. Tomando o cuidado de alterar a variável com o NUMERO_DE_SEQUENCIAS.
Você pode como exercício alterar a estrutura e a tabela para configurar também os valores HIGH e LOW, para você começar uma sequência com o led apagado também, ou só para deixar mais enxuto ainda o algoritmo de varredura.
Para opção com interrupção, veja o link do fórum do Arduino.
http://forum.arduino.cc/index.php/topic,37875.0.html
Espero ter ajudado, bons estudos.
T+.
só bati o olho e ja consegui ter uma noção do que eu preciso fazer muito obrigado mesmo
e é como vc disse estou começando mas ja sei que terei
que estudar muuuito para conseguir desenvolver meu projeto
mas estou muito feliz de ter encontrado esse forum com pessoas dispostas a ajudar
muito obrigado Daniel Cezar.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por