Parte 5 - Segundo projeto (Código Morse com LED e Buzzer)
Código Morse S.O.S
Parte 1 - Componentes
Para começar, devemos saber o que iremos utilizar no projeto:
1 Protoboard de, no mínimo, 400 pontos (se quiser usar uma de 830, sem problemas).
1 LED vermelho de 5 milímitros

Obs: Se precisar usar outros valores, calcule o resistor apropriado para o LED utilizado.
Um exemplo de site para isso é esse aqui.
2 Cabos de Ligação (Fios Jumper) da cor de sua preferência.
Parte 2 - Montagem
Conecte os componentes na Protoboard como mostra a imagem abaixo. Verifique cuidadosamente os Cabos de Ligação antes de ligar/ativar seu Arduino. Lembre-se de que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.
Atenção:
Lembre-se de que o LED tem polaridade: o terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa:
Parte 3 - O Código
Em todos os projetos que você for fazer com Arduino, você precisará criar (se souber programar em C/C++) ou pegar da internet um código. Digite-o manualmente ou, se você estiver acessando a página pelo computador, selecione o código abaixo e copie e cole no ambiente de desenvolvimento do Arduino. Faça a verificação e o upload.
/*|---------------------------------------------------------------------------| | | | Segundo projeto (Código Morse com LED e Buzzer) | | https://utilizacaodearduino.blogspot.com | | | |---------------------------------------------------------------------------|*/ int led = 11; //Pino em que a perna positiva do LED está posicionada void setup() { pinMode(led, OUTPUT); //Configura o pino do LED como 'saída' } void loop() { // ... (S) - Três pontos for(int x=0;x<3;x++) //Repete tudo dentro das chaves três vezes { digitalWrite(led,HIGH); //Acende o LED delay(200); //Aguarda 200ms (0,2 segundo) digitalWrite(led,LOW); //Desliga o LED delay(100); //Aguarda novamente, por 100ms (0,1 segundo) } delay(200); //Aguarda 200ms (0,2 segundo) para fazer a próxima letra // --- (O) - Três traços for(int x=0;x<3;x++) { digitalWrite(led,HIGH); delay(450); //Aguarda 450ms (0,45 segundo) digitalWrite(led,LOW); delay(150); //Aguarda 150ms (0,15 segnudo) } delay(200); // ... (S) - Três pontos for(int x=0;x<3;x++) { digitalWrite(led,HIGH); delay(200); digitalWrite(led,LOW); delay(100); } delay(5000); //Aguarda 5000ms (5 segundos) para repetir o processo }
Parte 4 - Funcionamento
Se tudo deu certo, quando você executou o programa, o seu LED vermelho piscou. Se você prestar atenção, você verá que ele piscou 3 vezes rápido, 3 vezes devagar e, novamente, 3 vezes rápido. Isto é o código SOS! O S, se pesquisar em uma tabela de código morse, é 3 pontos e o O, 3 traços:
Se você está fazendo o sinal de SOS, seu LED piscará nessa sequência:
Parte 5 - Buzzer
/*|---------------------------------------------------------------------------| | | | Segundo projeto (Código Morse com LED e Buzzer) | | https://utilizacaodearduino.blogspot.com | | | |---------------------------------------------------------------------------|*/ int led = 11; //Pino em que a perna positiva do LED está posicionadaint buzzer = 3; //Pino em que a perna positiva do Buzzer está posicionada void setup() { pinMode(led, OUTPUT); //Configura o pino do LED como 'saída'pinMode(buzzer, OUTPUT); //Configura o pino do Buzzer como 'saída' } void loop() { // ... (S) - Três pontos for(int x=0;x<3;x++) //Repete tudo dentro das chaves três vezes { digitalWrite(led,HIGH); //Acende o LEDtone(buzzer,1500); //Liga o Buzzer delay(200); //Aguarda 200ms (0,2 segundo) digitalWrite(led,LOW); //Desliga o LEDnoTone(buzzer); //Desliga o Buzzer delay(100); //Aguarda novamente, por 100ms (0,1 segundo) } delay(200); //Aguarda 200ms (0,2 segundo) para fazer a próxima letra // --- (O) - Três traços for(int x=0;x<3;x++) { digitalWrite(led,HIGH);tone(buzzer,1500); delay(450); //Aguarda 450ms (0,45 segundo) digitalWrite(led,LOW);noTone(buzzer); delay(150); //Aguarda 150ms (o,15 segundo) } delay(200); // ... (S) - Três pontos for(int x=0;x<3;x++) { digitalWrite(led,HIGH);tone(buzzer,1500); delay(200); digitalWrite(led,LOW);noTone(buzzer); delay(100); } delay(5000); //Aguarda 5000ms (5 segundos) para repetir o processo }
Se você fez tudo certinho, seu Arduino funcionará assim:
Parte 6 - Personalização
Agora, a parte que nós mais gostamos desse tipo de circuito: a personalização! Você pode colocar seu nome, palavras isoladas ou até mesmo frases inteiras! Aqui vai um exemplo da palavra "Robótica" para servir de base:
/*|---------------------------------------------------------------------------| | | | Segundo projeto (Código Morse com LED e Buzzer) | | https://utilizacaodearduino.blogspot.com | | | |---------------------------------------------------------------------------|*/ int led = 11; //Pino em que a perna positiva do LED está posicionada void setup() { pinMode(led, OUTPUT); //Configura o pino do LED como 'saída' } void loop() { // .-. (R) - Ponto, traço e pontodigitalWrite(led,HIGH); //Acende o LEDdelay(200); //Aguarda 200ms (0,2 segundo) digitalWrite(led,LOW); //Desliga o LED delay(150); //Aguarda novamente, por 100ms (0,1 segundo) digitalWrite(led,HIGH); delay(450); //Aguarda 450ms (0,45 segundo) digitalWrite(led,LOW); delay(150); //Aguarda novamente, por 150ms (0,15 segundo) digitalWrite(led,HIGH); delay(200); digitalWrite(led,LOW);delay(200); //Aguarda 200ms (0,2 segundo) para fazer a próxima letra // --- (O) - Três traços for(int x=0;x<3;x++) { digitalWrite(led,HIGH); delay(450); digitalWrite(led,LOW); delay(150); } delay(50); // -... (B) - Traço, três pontosdigitalWrite(led,HIGH);delay(450); digitalWrite(led,LOW); delay(150);for(int x=0;x<3;x++) {digitalWrite(led,HIGH); delay(100); digitalWrite(led,LOW); delay(150);}delay(50);// --- (O) - Três traços for(int x=0;x<3;x++) { digitalWrite(led,HIGH); delay(450); digitalWrite(led,LOW); delay(150); } delay(50);// - (T) - TraçodigitalWrite(led,HIGH);delay(450); digitalWrite(led,LOW);delay(200);// .. (I) - Dois pontosfor(int x=0;x<2;x++) {// -.-. (C) - Traço, ponto, traço, pontodigitalWrite(led,HIGH); delay(100); digitalWrite(led,LOW); delay(150);}delay(50);for(int x=0;x<2;x++) {// .- (A) - Ponto, traçodigitalWrite(led,HIGH); delay(450); digitalWrite(led,LOW); delay(150);digitalWrite(led,HIGH); delay(100); digitalWrite(led,LOW); delay(150);}delay(50);digitalWrite(led,HIGH);delay(100); digitalWrite(led,LOW); delay(150);digitalWrite(led,HIGH);delay(450); digitalWrite(led,LOW); delay(200);delay(5000); //Aguarda 5000ms (5 segundos) para repetir o processo }
Padrões
Caso você não tenha percebido, há o uso de vários padrões no código acima. Use eles para fazer um código morse original:
Padrão de pontos:
// . (E) - Ponto
digitalWrite(led,HIGH); //Acende o LED
delay(100); //Aguarda 100ms (0,1 segundo)
digitalWrite(led,LOW); //Apaga o LED
delay(200); //Aguarda 200ms (0,2 segundo) para a próxima letra
Padrão de traços:
// - (T) - Traço
digitalWrite(led,HIGH); //Acende o LED
delay(450); //Aguarda 450ms (0,45 segundo)
digitalWrite(led,LOW); //Apaga o LED
delay(200); //Aguarda 200ms (0,2 segundo) para a próxima letra
Note que, comparado com os dois padrões acima, a única coisa que muda é o tempo do primeiro delay, que é a duração do símbolo. Sabendo disso, você pode usar um desses tempos no próximo padrão para definir um ponto ou traço.
Padrão de repetição:
// .. (I) - Dois pontos
for(int x=0;x<2;x++) {
digitalWrite(led,HIGH); //Acende o LED
delay(100); //Aguarda 100ms (0,1 segundo)
digitalWrite(led,LOW); //Apaga o LED
delay(150); //Aguarda 150ms para repetir o símbolo
}
delay(50); //Aguarda 50ms para completar os 200, por causa do delay de 150 acima
O "for(int..." acima do código do símbolo faz com que o que está dentro das chaves ("{ }") se repita um certo número vezes. Para configurar a quantidade de vezes que o símbolo é repetido, troque o número 2 em "x<2" pela quantidade de vezes que você quer (não use o número 1, senão o código dentro das chaves só será executado uma vez. Use apenas números maiores ou iguais a 2).
Padrão com Buzzer:
int buzzer = <número do pino em que a perna positiva do Buzzer está posicionada>
void setup() {
pinMode(buzeer, OUTPUT);
}
void loop() {
// Algum símbolo
tone(buzzer,<tom do buzzer. Recomendamos que deixe como 1500>);
delay(<duração do símbolo>);
noTone(buzzer);
delay(200);
}
Lembre-se de sempre colocar um tempinho maior no final do código antes de fechar as chaves do void loop, para dar um tempo antes de repetir o código novamente. Se o último símbolo não estiver sendo executado com um código de repetição, recomendamos usar "delay(5000);":
<código do LED/Buzzer>
delay(5000);
} //Fim do void loop
no final (esse tempo é o equivalente a 5 segundos).Se seu código estiver sendo executado dentro das chaves de uma repetição, recomendamos usar "delay(4850);":
<código do LED/Buzzer>
delay(150); //Tempo para repetir (no caso, executar a próxima letra)
} //Fim do código da repetição
delay(4850);
} //Fim do void loop
se ele tiver 150 no final.Parte 7 - Finalização
Nessa publicação, você aprendeu como funciona um código morse, como reproduzir um em um Arduino e como criar um código morse original. Muito obrigado se você leu até aqui! Dá um trabalhão escrever esses posts, pesquisar sobre, editar e criar as imagens de montagem e código morse, escrever os códigos, gravar os vídeos de como o Arduino vai funcionar com eles e usar a revisão e feedback de outros integrantes do nosso grupo para deixar o mais completo e claro possível. Eu sei que é chato ficar pedindo mas, se você gostou, comente. Conhece alguém que queira entrar na área/goste de robótica? Considere compartilhar essa publicação e o blog em geral. Tudo isso ajuda muito e nos deixa muito feliz! ^^ Até a próxima!
Escritor: Nathan Oliveira
Leitores de testes: Caio, Leonardo e Murilo









Comentários
Postar um comentário