Lanceur d’Appel CW avec L’Arduino

Le projet


L’idée est de réaliser un Lanceur d’appel avec 3 boutons poussoirs pour l’envoi de messages préprogrammés et un afficheur pour visualiser le texte envoyé.

Pour visualiser la CW, nous utiliserons la led qui se trouve sur le port 13
Les boutons poussoirs se trouvent sur les ports 8,9,10 et le Buzzer est raccordé sur le 12.

Pour le raccordement au transceiver, il suffira d’utiliser la sortie 13 avec un transistor.

L’organigramme

Le programme

Il reste encore quelques points à améliorer:
– les commentaires à compléter
– Utilisation d’un petit afficheur LCD
– Réglage de la vitesse d’émission
etc…

String txttouche1= »CQ CQ TEST DE F8KGZ/P »;
String txttouche2= »QRZ DE F8KGZ/P »;
String txttouche3= »73″;
#include //charge la librairie LiquidCrystal
LiquidCrystal lcd_A(2,3,7,4,6,5);/* déclare un afficheur lcd,
l//initialise en mode 4 bits et définit les broches de l//arduino
utilisées pour relier les broches RS,E,D4,D5,D6,D7 de ce lcd.*/
LiquidCrystal lcd_B(2,18,7,4,6,5);
int touche1 = 8;
int touche2 = 9;
int touche3 = 10;
int SortieCW = 13;
int SortieBuzzer = 12;
String txttouche= » »;
String lettre= » »;
String lettrecw= » »;
int vitesse=20;
void setup(){
pinMode(touche1, INPUT);
digitalWrite(touche1, HIGH); //resistance au +
pinMode(touche2, INPUT);
digitalWrite(touche2, HIGH);
pinMode(touche3, INPUT);
digitalWrite(touche3, HIGH);
pinMode(SortieCW, OUTPUT);
pinMode(SortieBuzzer, OUTPUT);
lcd_A.begin(40,2);
lcd_A.print(« ********** Lanceur d’Appel CQ ********** »);
lcd_A.setCursor(0,1);
lcd_A.print(« * Message: * »);
lcd_B.begin(40,2);
lcd_B.print(« * codecw: * »);
lcd_B.setCursor(0,1);
lcd_B.print(« *************** par F4GEN ************** »);
}
void loop(){
txttouche= » »;
if (!digitalRead(touche1)){txttouche=txttouche1;}
if (!digitalRead(touche2)){txttouche=txttouche2;}
if (!digitalRead(touche3)){txttouche=txttouche3;}
if (txttouche.length()){
lcd_A.setCursor(10,1);
lcd_A.print(txttouche);
int boucletouche=1;
while (boucletouche lettre=txttouche.substring(boucletouche-1,boucletouche); // caratere de debut,caractere de fin 0,1 puis 1,2 puis 2,3 etc….
lettrecw=txttocodecw(lettre);
lcd_B.setCursor(10,0);
lcd_B.print( » « );
lcd_B.setCursor(10,0);
lcd_B.print(lettrecw);
GenCW(lettrecw);
boucletouche++;
}
delay(1000);
lcd_A.setCursor(0,1);
lcd_A.print(« * Message: * »);
lcd_B.setCursor(0,0);
lcd_B.print(« * codecw: * »);
}
}
String txttocodecw(String caractere){
String codecw= » »;
if (caractere== »A »){codecw = « .-« ;} //A
if (caractere== »B »){codecw = « -… »;} //B
if (caractere== »C »){codecw = « -.-. »;} //C
if (caractere== »D »){codecw = « -.. »;} //D
if (caractere== »E »){codecw = « . »;} //E
if (caractere== »F »){codecw = « ..-. »;} //F
if (caractere== »G »){codecw = « –. »;} //G
if (caractere== »H »){codecw = « …. »;} //H
if (caractere== »I »){codecw = « .. »;} //I
if (caractere== »J »){codecw = « .—« ;} //J
if (caractere== »K »){codecw = « -.-« ;} //K
if (caractere== »L »){codecw = « .-.. »;} //L
if (caractere== »M »){codecw = « –« ;} //M
if (caractere== »N »){codecw = « -. »;} //N
if (caractere== »O »){codecw = « —« ;} //O
if (caractere== »P »){codecw = « .–. »;} //P
if (caractere== »Q »){codecw = « –.-« ;} //Q
if (caractere== »R »){codecw = « .-. »;} //R
if (caractere== »S »){codecw = « … »;} //S
if (caractere== »T »){codecw = « -« ;} //T
if (caractere== »U »){codecw = « ..-« ;} //U
if (caractere== »V »){codecw = « …-« ;} //V
if (caractere== »W »){codecw = « .–« ;} //W
if (caractere== »X »){codecw = « -..-« ;} //X
if (caractere== »Y »){codecw = « -.–« ;} //Y
if (caractere== »Z »){codecw = « –.. »;} //Z
if (caractere== »0″){codecw = « —–« ;} //0
if (caractere== »1 »){codecw = « .—-« ;} //1
if (caractere== »2 »){codecw = « ..—« ;} //2
if (caractere== »3 »){codecw = « …–« ;} //3
if (caractere== »4 »){codecw = « ….-« ;} //4
if (caractere== »5 »){codecw = « ….. »;} //5
if (caractere== »6″){codecw = « -…. »;} //6
if (caractere== »7″){codecw = « –… »;} //7
if (caractere== »8″){codecw = « —.. »;} //8
if (caractere== »9″){codecw = « —-. »;} //9
if (caractere== ». »){codecw = « .-.-.-« ;} //.
if (caractere== », »){codecw = « –..–« ;} //,
if (caractere== »? »){codecw = « ..–.. »;} //?
if (caractere== »/ »){codecw = « -..-. »;} ///
if (caractere== »-« ){codecw = « -….-« ;} //-
if (caractere== »= »){codecw = « -…-« ;} //=
if (caractere== »+ »){codecw = « .-.-. »;} //+
if (caractere== »‘ »){codecw = « .—-. »;} ////
if (caractere== »@ »){codecw = « .–.-. »;} //@
if (caractere== » « ){codecw =  » « ;} //
return codecw;
}
void GenCW (String lettrecw){
String son= » »;
int boucle=1;
while (boucle son=lettrecw.substring(boucle-1,boucle);
if (son== »-« ){
digitalWrite(SortieCW,HIGH);
//delay(3*1200/vitesse);
Buzzer(3*1200/vitesse);
digitalWrite(SortieCW,LOW);
delay (1*1200/vitesse);
}
if (son== ». »){
digitalWrite(SortieCW,HIGH);
//delay(1*1200/vitesse);
Buzzer(1*1200/vitesse);
digitalWrite(SortieCW,LOW);
delay (1*1200/vitesse);
}
if (son== » « ){
delay (4*1200/vitesse);
}
boucle++;
}
delay (2*1200/vitesse);
}
void Buzzer(int tpsenms){
int bouclebuzzer=tpsenms*1000;
while(bouclebuzzer){
digitalWrite(SortieBuzzer, HIGH); /* active le port de sortie à l’état haut */
/* delay(1); /* Attente une milli seconde */
delayMicroseconds(125);
digitalWrite(SortieBuzzer, LOW); /* active le port de sortie à l’état bas */
/* delay(1); /* Attente une milli seconde avant de recommencer */
delayMicroseconds(125);
bouclebuzzer=bouclebuzzer-250;
}
}
 

Vous pouvez télécharger le programme ICI
Après avoir décompressé le fichier, vous pouvez le charger avec la version 1.0 (Plus d’infos ICI)

PS: cette page sera complétée en fonction des prochains cours Arduino

F4GEN