Básico - Projeto 07
Sinalizador de código morse com as letras S.O.S
Objetivo
Criar um sinalizador de código morse. Este projeto irá para fazer com que o LED sinalize as letras S.O.S., sinal de socorro internacional em código Morse.
Código Morse: O código Morse é um tipo de codificação de caracteres que transmite letras e números utilizando padrões de ligado e desligado. Portanto, ele é muito adequado para este sistema digital, uma vez que o LED pode acender ou apagar no padrão necessário do código.
Aplicação
Para fins didáticos e projetos de sinalizadores.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 830 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
Resistor |
Resistor
|
2 |
|
1 Resistor 150Ω (led vermelho ou amarelo)
1 Resistor 10KΩ (push button)
Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado - Calcular Resistor ou utilize a tabela padrão Tabela de resistores para leds
|
Led 5mm |
LED 5mm |
1 |
|
1 LED alto brilho ou difuso (qualquer cor)
Você poderá utilizar também LEDs de 3 mm na cor que desejar.
|
Arduino UNO R3 |
Arduino UNO |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.
Atenção
1) Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.
2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Como calcular o resistor adequado para o led e Leds ligados em série e em paralelo.
Obs.: Resistores iguais ou superiores a 250 Ω poderão ser utilizados em LEDs de todas as cores para um circuito com tensão igual ou inferior a 5V.
Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω
3. A montagem abaixo foi realizada em um protoboard com linhas de alimentação não contínuas, onde acrescentamos jampers para a ligação. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas - saiba mais em protoboard
Código do Projeto (sketch)
Faça o dowload e abra o arquivo projeto07.ino no IDE do Arduino: DOWNLOAD - projeto07.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
*
* Projeto 07 – Código S.O.S
* http://squids.com.br/arduino
*
*******************************************************************************/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// roda uma vez quando resetada:
void setup() {
// inicializa o pino digital como SAÍDA do microcontrolador
pinMode(led, OUTPUT);
}
// rotina de loop - roda indefinitivamente:
void loop() {
// 3 pontos (letra S)
for (int x=0; x<3; x++) {
digitalWrite(led, HIGH); // acende o LED on (HIGH is the voltage level)
delay(150); // espera por 150 ms
digitalWrite(led, LOW); // apaga o LED (the voltage LOW)
delay(100); // espera por 100ms
}
delay(200); // espera de 200ms entre as letras
// 3 traços (letra O)
for (int x=0; x<3; x++) {
digitalWrite(led, HIGH);
delay(400);
digitalWrite(led, LOW);
delay(100);
}
delay(200); //espera 200 ms entre as letras
// 3 pontos (letra S)
for (int x=0; x<3; x++) {
digitalWrite(led, HIGH); // acende o LED on (HIGH is the voltage level)
delay(150); // espera por 150 ms
digitalWrite(led, LOW); // apaga o LED (the voltage LOW)
delay(100); // espera por 100ms
}
//espera 3 segundos para repetir o sinal S.O.S
delay(3000);
}
Depois, faça a verificação e o upload para o microcontrolador.
Vídeo
Como o projeto deve funcionar
1. Quando você rodar o programa, o Led irá piscar conforme o padrão do código Morse, sinalizando as letras S O S, formado de três sinais curtos (pontos), seguidos por três sinais longos (traços) e finalmente por três sinais curtos (pontos).
4. O código irá se repetir indefinitivamente.
Explicando o Código do Projeto
1. Primeiro declaramos as constantes e as variáveis do projeto.
1.1. Observe que utilizamos a variável tipo "int". Veja na tabela abaixo as diferenças nos tipos de constantes e variáveis:
Tipo |
Valores Válidos para Variáveis e Constantes
|
char |
letras e símbolos: 'a', 'b', 'H', '^', '*','1','0' |
int |
de -32767 até 32767 (apenas números inteiros) |
float |
de -3.4 x 1038 até +3.4 x 10+38com até 6 dígitos de precisão (2 casas depois da vírgula) |
double |
de -1.7 x 10308 até +1.7 x 10+308com até 10 dígitos de precisão |
1.2. A variável led de refere ao Led que deverá estar conectado à porta 13 do microcontrolador Arduino.
2. Através da strutura void setup(), definimos:
2.1. Define-se a variável led como saída do controlador Arduino (OUTPUT) conectados ao pino 13.
3. Através da estrutura void loop(), obtemos:
3.1.Primeiro definimos a letra S (três sinais curtos):
3.1.1. Vamos utilizar um loop for que varia de 0 a 3.
3.1.1.1 Declaramos a variável local x como int. Incrementamos a variável em +1, usando a expressão x++. Obs.: O incremento será utilizado após o primeiro bloco de códigos ser totalmente utilizado. Desta forma, o loop irá de x=0 até x<3, ou seja, x=0, x=1 e x=3, realizando três repetições:
3.1.1.1.1 Através da função digitalWrite(led, HIGH) informamos o Arduino para acender o led.
3.1.1.1.2. Através da função delay(150), o led ficará acesso durante 150ms.
3.1.1.1.3. Através da função digitalWrite(led, LOW) informamos o Arduino para apagar o led.
3.1.1.1.4. Aguardamos 100ms com o led apagado quando utilizamos a função delay(100).
3.2. Repetimos para as demais letras O (3 sinais longos) e S(3 sinais curtos) novamente. A diferença entre os sinais longo e curto é o tempo de espera do led acesso que é de 150ms para o sinal curto e de 400ms para o silnal longo.
3.3. Através do comando delay(3000), o programa espera 3 segundos (3.000 ms) para reiniciar a sinalização das letras S.O.S.
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários