ARLA/CLUSTER: Keyer, Com Arduino (NANO), ajuda.
Pedro Ribeiro
ct7abp gmail.com
Domingo, 21 de Fevereiro de 2016 - 23:53:53 WET
Saltou-se o conteúdo do tipo multipart/alternative -------------- próxima parte ----------
// Versão para uma chave dupla (lambic), com geração do tom em speaker e buzzer (opcional)
// Por Pedro Ribeiro CT7ABP
// Coompativel com a maioria das placas Arduino, incluindo UNO e NANO
const byte keyditpin = 2; // Ligar à chave no pino correspondente ao ponto
const byte keydahpin = 3; // Ligar à chave no pino correspondente ao traço, o pino comum liga ao
// GND do Arduino
const byte ledpin = 13; // Pino para o led da board e para eventual buzzer activo, se ligar um led
// externo, não esquecer uma resistência de uns 390ohm
const byte spkpin = 5; // Pino da saida para speaker, ligar através de uma resistência de ~390ohm
// e um condensador de 10uF para evitar danos
const byte cwspeed = 12; // Velociadade equivalente a 12 wpm, ajustar a gosto
const unsigned short dit_ms = 1200/cwspeed; // Tempo para um ponto em millisegundos
const unsigned short dah_ms = 3 * dit_ms; // Tempo para um traço em millisegundos
const unsigned short cw_tone = 500; // Tom de 500Hz (onda quadrada) no pino definido como spkpin
enum cwsym_t { SYM_DIT, SYM_DAH };
void setup() {
// Configurar o Pin 2 onde vamos ligar a chave de CW, o pino correspondente aos pontos como entrada
// colocar uma resistência de 4,7k entre o pino e 5V para o manter ao nivel logico alto por omissao
pinMode(keyditpin,INPUT);
// Configurar o Pin 3 onde vamos ligar a chave de CW, o pino correspondente aos traços como entrada
// colocar uma resistência de 4,7k entre o pino e 5V para o manter ao nivel logico alto por omissao
pinMode(keydahpin,INPUT);
// Configurar o Pin 13 como saida, este está nativamente ligado ao LED do UNO, NANO (e outros) e
// poderá ser opcionalmente usado para ligar o buzzer activo
pinMode(ledpin,OUTPUT);
digitalWrite(ledpin,LOW); // Inicialmente o LED/Buzzer nao estão activos
// Configurar o Pin 5 como saida a usar pelo autofalante, NAO LIGAR DIRECTO porque fará danos a ambos
// autofalante e Arduino, ligar com uma resistência de 390ohm e um condensador de 10uF com o positivo
// do lado do Arduino (valores a ajustar)
pinMode(spkpin,OUTPUT);
digitalWrite(spkpin,LOW); // Inicialmente speaker está inactivo
}
void ditdah(cwsym_t dd) {
digitalWrite(ledpin,HIGH); // LED/buzzer activos
tone(spkpin,cw_tone); // Gera som no pino definido para o speaker
if(dd == SYM_DIT)
delay(dit_ms); // Esperar o tempo de ponto equivalente ao WPM configurado
else
delay(dah_ms); // Esperar o tempo de traço equivalente ao WPM configurado
noTone(spkpin); // Termina som no pino definido para o speaker
digitalWrite(ledpin,LOW); // LED/buzzer inactivos
delay(dit_ms); // Esperar o tempo de ponto equivalente ao WPM configurado antes de qualquer outro simbolo
}
void loop() {
// true = HIGH significa que o pullup está a condicionar o estado da entrada, false = LOW, se a chave estiver primida
bool ditstate = digitalRead(keyditpin);
bool dahstate = digitalRead(keydahpin);
if(dahstate == false) { // traço primido
ditdah(SYM_DAH);
}
if(ditstate == false) { // ponto primido
ditdah(SYM_DIT);
}
}
-------------- próxima parte ----------
Um anexo que não estava em formato texto não está incluído...
Nome : simpleLambicLedBuzzer_bread.png
Tipo : image/png
Tam : 316756 bytes
Descr: não disponível
Url : http://radio-amador.net/pipermail/cluster/attachments/20160221/2cdc5100/simpleLambicLedBuzzer_bread.png
-------------- próxima parte ----------
Um anexo que não estava em formato texto não está incluído...
Nome : simpleLambicLedBuzzer_schematic.png
Tipo : image/png
Tam : 80381 bytes
Descr: não disponível
Url : http://radio-amador.net/pipermail/cluster/attachments/20160221/2cdc5100/simpleLambicLedBuzzer_schematic.png
Mais informações acerca da lista CLUSTER