Bom pessoal dando continuidade aos tutoriais de arduino trago dessa vez um programa de sinal de código morse. Para quem não sabe o código morse é um sistema de representação de letras, números e sinais de pontuação através de um sinal codificado enviado intermitentemente.
O código morse foi desenvolvido por Samuel Morse e segundo o Wikipédia criador do famoso telégrafo. Uma mensagem codificada em morse pode ser transmitida de várias maneiras, como por exemplo: efeitos sonoros, pulsos elétricos, sinais visuais (luzes). Essas são uma das formas de se transmitir um código morse. Enfim não ficarei de lero lero sobre o código morse, mas quem nunca viu um filme de ação em que um soldado fazia comunicação com sua base por códigos luminosos? Para quem quiser aprofundar no estudo do código morse pode ver no Wikipédia um artigo sobre ele. Mas vamos ao que nos interessa, o código é esse.
Então vamos analisar o código acima, primeiro começamos declarando o LED como inteiro e conectado na porta digital 10. Em seguida no void setup() (executado somente uma vez) indicamos a porta 10 como sendo uma saída. Ao entrar na parte do loop (void loop) é que começa o bang bang!, vamos lá, para formar os três primeiros pontos do sinal de S.O.S foi utilizado o seguinte: for(int x = 0; x<3; x++). O comando " for " cria um laço de repetição por contador, ou seja, tudo que está dentro das chaves será executado ' n ' vezes, no exemplo acima executado 3 vezes. O laço for é muito utilizado e é um comando bem interessante, em uma linguagem mais informal ele quer dizer que para x igual a zero, x é menor do que 3?, se sim incremente x e execute o que está entre chaves, se não passe para o próximo comando. Enquanto a variável de controle for menor do que a condição estabelecida o comando continuará a executar comandos entre as chaves e a incrementar a variável.
É interessante destacar que ao se utilizar esses comandos deve-se tomar o cuidado de não causar o famoso " loop infinito ". Agora a análise do código ficou mais simples, em sequência é informado que a saída pino 10 recebe nível alto e permanece acionada por 150ms, e transcorrido este tempo, permanece em nível baixo por 100ms. Daí o código é praticamente o mesmo em todo o loop, diferenciando-se em termos do tempo de acionamento da saída, para que tenhamos os pontos e os traços utilizados nos códigos Morse. Entretanto o objetivo deste exemplo é salientar o comando " for ". Dessa vez a análise do código foi bem rápida pois, todos os comandos com exceção do for já foi explicado no tutorial anterior.
A ideia é compreender o funcionamento dos comandos e como eles podem ser aplicados em outros problemas.O código morse foi desenvolvido por Samuel Morse e segundo o Wikipédia criador do famoso telégrafo. Uma mensagem codificada em morse pode ser transmitida de várias maneiras, como por exemplo: efeitos sonoros, pulsos elétricos, sinais visuais (luzes). Essas são uma das formas de se transmitir um código morse. Enfim não ficarei de lero lero sobre o código morse, mas quem nunca viu um filme de ação em que um soldado fazia comunicação com sua base por códigos luminosos? Para quem quiser aprofundar no estudo do código morse pode ver no Wikipédia um artigo sobre ele. Mas vamos ao que nos interessa, o código é esse.
// Codigo LED SOS
// Led conectado ao pino 10
int ledpin = 10;
// Executa uma vez quando o sketch inicia
void setup(){
// define o pino como saída
pinMode(ledPin, OUTPUT);
}
// executa repetidas vezes
void loop(){
// 3 pontos
for(int x = 0; x<3; x++){
digitalWrite(ledPin, HIGH); //acende o LED
delay(150); // espera 150 ms
digitalWrite(ledPin, LOW); //apaga o LED
delay(100); // espera 100ms
}
// espera 100ms para marcar o intervalo entre as letras
delay(100);
// 3 traços
for(int x=0; x<3; x++){
digitalWrite(ledPin, HIGH); // acende o LED
delay(400); // espera 400ms
digitalWrite(ledPin, LOW); // apaga o LED
delay(100); // espera 100ms
}
// espera 100ms para marcar o intervalo entre as letras
delay(100);
// 3 pontos novamente
for(int x=0; x<3; x++){
digitalWrite(ledPin, HIGH); // acende o LED
delay(150); // espera 150ms
Então vamos analisar o código acima, primeiro começamos declarando o LED como inteiro e conectado na porta digital 10. Em seguida no void setup() (executado somente uma vez) indicamos a porta 10 como sendo uma saída. Ao entrar na parte do loop (void loop) é que começa o bang bang!, vamos lá, para formar os três primeiros pontos do sinal de S.O.S foi utilizado o seguinte: for(int x = 0; x<3; x++). O comando " for " cria um laço de repetição por contador, ou seja, tudo que está dentro das chaves será executado ' n ' vezes, no exemplo acima executado 3 vezes. O laço for é muito utilizado e é um comando bem interessante, em uma linguagem mais informal ele quer dizer que para x igual a zero, x é menor do que 3?, se sim incremente x e execute o que está entre chaves, se não passe para o próximo comando. Enquanto a variável de controle for menor do que a condição estabelecida o comando continuará a executar comandos entre as chaves e a incrementar a variável.
É interessante destacar que ao se utilizar esses comandos deve-se tomar o cuidado de não causar o famoso " loop infinito ". Agora a análise do código ficou mais simples, em sequência é informado que a saída pino 10 recebe nível alto e permanece acionada por 150ms, e transcorrido este tempo, permanece em nível baixo por 100ms. Daí o código é praticamente o mesmo em todo o loop, diferenciando-se em termos do tempo de acionamento da saída, para que tenhamos os pontos e os traços utilizados nos códigos Morse. Entretanto o objetivo deste exemplo é salientar o comando " for ". Dessa vez a análise do código foi bem rápida pois, todos os comandos com exceção do for já foi explicado no tutorial anterior.
Então vamos ver o funcionamento do código de hoje, para isso será preciso os seguintes componentes:
- Uma placa Arduino.
- 1 LED 5 ou 10mm (a cor que desejar).
- 1 resistor de 100 Ohm (estou utilizando de 150 Ohm).
- 1 proto-board ou faça uma montagem do tipo ' aranha '.
- E claro um computador com o IDE para gravar o código no arduino.
Imagem dos componentes para testar o código:
No meu caso utilizei dois resistores de 300 Ohm em paralelo para conseguir 150 Ohm o que é suficiente para o LED.
A figura abaixo apresenta o esquema de ligação do LED ao arduino.
Figura 2 - Esquema de ligação do LED |
E como não podia faltar, o vídeo, está ai o funcionamento do código de hoje.
Por hoje é isso, espero que tenham gostado, dúvidas deixe seu comentário e não se esqueça de se inscrever no nosso canal do YouTube. Os programas também pode ser baixados por aqui.
Até o próximo tutorial!
Até o próximo tutorial!
EmoticonEmoticon