22 lis 2016, 12:52
18 stu 2016, 23:31
20 ožu 2017, 07:20
20 ožu 2017, 17:55
21 pro 2017, 19:04
//Dužina kratkog blicaja u milisekundama
int srt = 200;
//Dužina dugog blicaja u mili sekundama(3 puta duže od kratkog)
int lng = srt * 3;
//Dužina pauze između slova u milisekundama
int ps = 300;
void blic(int one, int two, int three, int four){
//blic je funkcija koji odlučuje dužinu blicaja za svako slovo;
//broj "0" znači da nema blicaja
//broj "1" znači kratak blicaj
//broj "2" znači dugi blicaj
//Na primjer u morseovom kodu slovo "A" je jedan kratki i jedan dugi signal/blicaj (.-)
//Prema ovoj logici slovo "A" izgleda ovako;
// "blic(1, 2 ,0 ,0);"
//
Serial.print("(");
if (one == 1){
Serial.print(".");
digitalWrite(13 , 1);
delay(srt);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if(one == 2){
Serial.print("-");
digitalWrite(13 , 1);
delay(lng);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if (two == 1){
Serial.print(".");
digitalWrite(13 , 1);
delay(srt);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if(two == 2){
Serial.print("-");
digitalWrite(13 , 1);
delay(lng);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if (three == 1){
Serial.print(".");
digitalWrite(13 , 1);
delay(srt);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if(three == 2){
Serial.print("-");
digitalWrite(13 , 1);
delay(lng);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if (four == 1){
Serial.print(".");
digitalWrite(13 , 1);
delay(srt);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
if(four == 2){
Serial.print("-");
digitalWrite(13 , 1);
delay(lng);
digitalWrite(13 , 0);
delay(ps);
}
else{digitalWrite(13 , 0);}
Serial.print(")");
Serial.print(" ");
}
void morse(char letter) {
//Definiramo slova u morseovom kodu za korištenje sa "blic" funkcijom od gore
//
Serial.print(letter);
if (letter == 'A' || letter == 'a'){blic( 1, 2 ,0 ,0 );} else {}
if (letter == 'B' || letter == 'b'){blic( 2, 1 ,1 ,1 );} else {}
if (letter == 'C' || letter == 'c'){blic( 1, 2 ,1 ,2 );} else {}
if (letter == 'D' || letter == 'd'){blic( 2, 1 ,1 ,0 );} else {}
if (letter == 'E' || letter == 'e'){blic( 1, 0 ,0 ,0 );} else {}
if (letter == 'F' || letter == 'f'){blic( 1, 1 ,2 ,1 );} else {}
if (letter == 'G' || letter == 'g'){blic( 2, 2 ,1 ,0 );} else {}
if (letter == 'H' || letter == 'h'){blic( 1, 1 ,1 ,1 );} else {}
if (letter == 'I' || letter == 'i'){blic( 1, 1 ,0 ,0 );} else {}
if (letter == 'J' || letter == 'j'){blic( 1, 2 ,2 ,2 );} else {}
if (letter == 'K' || letter == 'k'){blic( 2, 1 ,2 ,0 );} else {}
if (letter == 'L' || letter == 'l'){blic( 1, 2 ,1 ,1 );} else {}
if (letter == 'M' || letter == 'm'){blic( 2, 2 ,0 ,0 );} else {}
if (letter == 'N' || letter == 'n'){blic( 2, 1 ,0 ,0 );} else {}
if (letter == 'O' || letter == 'o'){blic( 2, 2 ,2 ,0 );} else {}
if (letter == 'P' || letter == 'p'){blic( 1, 2 ,2 ,1 );} else {}
if (letter == 'R' || letter == 'r'){blic( 1, 2 ,1 ,0 );} else {}
if (letter == 'S' || letter == 's'){blic( 1, 1 ,1 ,0 );} else {}
if (letter == 'T' || letter == 't'){blic( 2, 0 ,0 ,0 );} else {}
if (letter == 'U' || letter == 'u'){blic( 1, 1 ,2 ,0 );} else {}
if (letter == 'V' || letter == 'v'){blic( 1, 1 ,1 ,2 );} else {}
if (letter == 'W' || letter == 'w'){blic( 1, 2 ,2 ,0 );} else {}
if (letter == 'X' || letter == 'x'){blic( 2, 1 ,1 ,2 );} else {}
if (letter == 'Y' || letter == 'y'){blic( 2, 1 ,2 ,2 );} else {}
if (letter == 'Z' || letter == 'z'){blic( 2, 2 ,1 ,1 );} else {}
//Ovo je razmak pa samo pauziramo
if (letter == ' ' || letter == ' '){delay(srt * 7); Serial.print(" ");} else {}
}
void setup() {
//Startamo serijski port i pišemo poruku
Serial.begin(9600);
Serial.println("---------------------------------");
Serial.println("| Welcome to morse code sender |");
Serial.println("| Please insert your message |");
Serial.println("----------------------------------------------------------------");
}
void loop() {
//Čekamo da se unese poruka kroz serijski port;
while (Serial.available() > 0){
//Čitamo string(poruku);
String inpt = Serial.readStringUntil('\n');
//Printamo poruku
Serial.print("Recived: ");
Serial.println(inpt);
Serial.print("Morse: ");
//Definiramo spremnik za string;
char procinpt[50];
//Pretvaramo string u char kako bi mogli izvući svako slovo posebno
inpt.toCharArray(procinpt, 50 );
//Računam duljinu stringa
int lnght = strlen(procinpt);
//Provuci svako slovo is chara posebno kroz morse code
for ( int i = 0 ; i < lnght; i++ ){
//Printamo trenutno slovo
//Daj slovo morse funkciji koja će to slovo prosljedit blic funkciji
morse(procinpt[i]);
}
Serial.println();
Serial.println("----------------------------------------------------------------");
}
delay(100);
}
23 pro 2017, 08:35
Tomislav001 je napisao/la:Samo sam htio podjeliti jedan moj uradak ovdje,
Ovaj komadić uzima bilo kakav tekst koji se unese kroz serijski port i odblica ga u morseovom kodu na ugrađenoj LEDici.
23 pro 2017, 08:44
23 pro 2017, 09:27
23 pro 2017, 12:36
23 pro 2017, 14:03