Arama butonu
Bu konudaki kullanıcılar: 1 misafir
11
Cevap
1244
Tıklama
0
Öne Çıkarma
Ardunio ile lazerle(ışıkda olabilir) veri iletimi
F
11 yıl
Onbaşı
Konu Sahibi

bilgisayar müh. son sınıfım tasarım projesi olarak hocamız 2 ardunio arasında kodlama ve dekodlama yapmamızı istiyor.Projede 2 ardunio kullanılacak ve ardunio aldığı .text dosyasını lazerle(ışıkla) karşı ardunioya iletecek .Mor alfabesi taktiğiyle . Hangi ardunio türünü kullanmam vede ne tür malzemeler almam gerekir bu konu hakkında fikrim yok .

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
11 yıl
Yüzbaşı

Selam,
Yapılacaklar listeme ekledim

İlk akla gelen :

* PC den TEXT i alıp Arduino'ya seri olarak iletecek program ( Processing ? )
* Arduino'da gelen karakterleri alıp mors koduna çevirip laser'i anahtarlayan program ( Arduino IDE ile )
* Arduino OUTPUT pin'lerinden komut alıp laser'i on/off yapacak donanım ( transistor, mosfet, röle, 4066.)
* Laser iletim ortamı ( hava, fiber optik kablo )
* Gelen ışığı alıp digital sinyale çeviren donanım ( LDR , IR Led, FotoTransistor ? )
* Digital sinyalleri alıp karakter bilgisine çevirecek ve LCD ye yazacak program ( Arduino IDE. İnterrupt mı kullanılacak, belli zamanlarda input pinleri kontrol mu edilecek ? )
* Karakterleri gösterecek LCD bağlantısı ( 2x16 , 12864 ? )


* Herhangi bir Arduino ( Uno, Mega, Pro Mini, Due ) olur bence.

Kolay gelsin, diğer projelerden fırsat bulup yapabilirsem yazarım.



G
11 yıl
Yarbay




< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
11 yıl
Yüzbaşı

T
11 yıl
Yüzbaşı

.
11 yıl
Teğmen

Sonuç ?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
11 yıl
Yüzbaşı

Henüz sonuç yok ama gelişme var:

http://youtu.be/KfUw48uZaj4

1. Arduino'nun 13. pin'i ile GND arasına laser pointer direkt bağladım.
1. program da olduğu gibi çalışıyor . ( videoda SOS göndermesi için modifiye ettim.

2. Arduino'ya bir direnç (2.2K) ve bir LDR yi gerilim bölücü şeklinde bağladım.
GND-----2.2K--------LDR------+5V
..................... |
..................... |
.....................A0

2. programı da biraz modifiye ettim, 1. nin gönderdiği laser sinyaline göre LED'ini yakıp söndürebiliyor.
Sinyalleri harflere çevirme biraz karışık gibi, programı tam anlayamazsam sıfırdan yazmam gerekecek.



M
11 yıl
Yüzbaşı

Mors kodu yerine binary ile gönderseniz (0 1 kulanarak) okuması daha kolay olur bence.



< Bu ileti mini sürüm kullanılarak atıldı >

.
11 yıl
Teğmen

Benim de aklıma geldi ama şöyle birşey geldi 2 tane lazer ce okuyucu olacak 1. Lazer 01... Fln kodliyacak 2 . lazer boşluk manasına gelecek



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
11 yıl
Yüzbaşı

Selam,

Sanırım oldu.
1. Program çok az bir ekleme ile sürekli aynı mesajı gönderiyor.
2. Program mesajı alıp seri porta mors kodunu ve karakteri yazıyor.

< Resime gitmek için tıklayın >


< Resime gitmek için tıklayın >


MorseGonderici.ino

 
/*
PIN13 --------LASER.POINTER------ GND
*/

int led = 13; // LED connected to digital pin 13
int unit = 50; // duration of a pulse

char * morsecode[] = {
"-----", // 0
".----", // 1
"..---", // 2
"...--", // 3
"....-", // 4
".....", // 5
"-....", // 6
"--...", // 7
"---..", // 8
"----.", // 9
"---...", // :
"-.-.-.", // ;
"", // < (there's no morse for this simbol)
"-...-", // =
"", // > (there's no morse for this simbol)
"..--..", // ?
".--._.", // @
".-", // A
"-...", // B
"-.-.", // C
"-..", // D
".", // E
"..-.", // F
"--.", // G
"....", // H
"..", // I
".---", // J
"-.-", // K
".-..", // L
"--", // M
"-.", // N
"---", // O
".--.", // P
"--.-", // Q
".-.", // R
"...", // S
"-", // T
"..-", // U
"...-", // V
".--", // W
"-..-", // X
"-.--", // Y
"--.." // Z
};
char * kelime = "MORS KODU GONDERICI" ;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop(){
say_string(kelime) ;
delay(3000) ;
}

void say_morse_word(char * msg){
int index = 0;
while(msg[index]!='\0'){
// say a dash
if(msg[index]=='-'){
dash();
}
// say a dot
if(msg[index]=='.'){
dot();
}
// gap beetween simbols
intragap();
index++;
}
}

void say_string(char * asciimsg){
int index = 0;
char charac;
charac = asciimsg[index];
while(charac!='\0'){
say_char(charac);
charac = asciimsg[++index];
shortgap();
}
}


void say_char(char letter){
if((letter>='0')&&(letter<='Z')&&(letter!='<')&&(letter!='>')){
Serial.print(morsecode[letter-'0']);
Serial.print(' ');
say_morse_word(morsecode[letter-'0']);
shortgap();
} else {
if(letter==' '){
Serial.print(" \\ ");
mediumgap();
}else{
Serial.print("X");
}
}
}


// general procedure for .
void dot() {
digitalWrite(led, HIGH);
delay(unit);
}

// general procedure for -
void dash() {
digitalWrite(led, HIGH);
delay(unit*2);
}

// gap between dots and dashes
void intragap() {
digitalWrite(led, LOW);
delay(unit*3);
}

// gap between letters
void shortgap() {
digitalWrite(led, LOW);
delay(unit*4);
}

// gap be tween words
void mediumgap() {
digitalWrite(led, LOW);
delay(unit*5);
}


MorseAlici.ino
 
/*
PIN2 -----|----LDR---------- +5V
|
|------2,2K------- GND

2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir.
*/

int pin = 13;
volatile int state = LOW;
unsigned long milisec;
unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ;
int birim = 50 ; // gönderen programdaki birim ile aynı olmalı
int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi
int cizgisuresimax = birim*2 + birim*2 / 10 ;
int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri
int harfarasimin = birim*4 + birim*4 / 10 ;
int kelimearasimin = birim*5 + birim*5 / 10 ;
int harfarasikaranlik = birim*8 ;
// yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı
String sembol = ""; // buffer

void setup()
{ Serial.begin(9600);
pinMode(pin, OUTPUT);
attachInterrupt(0, rising, RISING); // PIN 2 yükselirse ---> rising()
}

void loop()
{ digitalWrite(pin, state);}

void rising()
{ isikacildi = millis() ; // laserin yanmaya başladığı zaman
karanliksuresi = millis() - isikkapandi ; // laser ne kadar kapalı kaldı
if ( karanliksuresi > harfarasikaranlik ) { // harf bitti mi ?
Serial.print(sembol); // mors kodunu ve karşılığını yaz
Serial.print(" "); //
mors2harf() ; //
Serial.println(sembol); //
sembol = ""; // sembol'ü sifirla
}
else if ( karanliksuresi > kelimearasimin ) { } // kelime bitti mi ? to do
attachInterrupt(0, falling , FALLING); // PIN 2 düşerse ---> falling()
state = !state; // LED in durumunu toggle et
}

void falling()
{ isikkapandi = millis() ; // laserin kapandığı zaman
aydinliksuresi = millis() - isikacildi ; // laser ne kadar yanık kaldı
if ( aydinliksuresi < noktasuresimax ) { // bu bir nokta mıdır ?
sembol = sembol + "." ; // sembol'e nokta ekle
}
else if ( aydinliksuresi < cizgisuresimax ) { // bu bir çizgi midir ?
sembol = sembol + "-" ; // sembol'e çizgi ekle
}
attachInterrupt(0, rising , RISING); // PIN 2 yükselirse ---> rising()
state = !state;
}

void mors2harf() // düzgün bir fonksiyon yazamadım...
{
if (sembol == "-----") { sembol = "0" ; return ; }
if (sembol == ".----") { sembol = "1" ; return ; }
if (sembol == "..---") { sembol = "2" ; return ; }
if (sembol == "...--") { sembol = "3" ; return ; }
if (sembol == "....-") { sembol = "4" ; return ; }
if (sembol == ".....") { sembol = "5" ; return ; }
if (sembol == "-....") { sembol = "6" ; return ; }
if (sembol == "--...") { sembol = "7" ; return ; }
if (sembol == "---..") { sembol = "8" ; return ; }
if (sembol == "----.") { sembol = "9" ; return ; }
if (sembol == "---..."){ sembol = ":" ; return ; }
if (sembol == "-.-.-."){ sembol = ";" ; return ; }
if (sembol == "-...-") { sembol = "==" ; return ; }
if (sembol == "..--.."){ sembol = "?" ; return ; }
if (sembol == ".--._."){ sembol = "@" ; return ; }
if (sembol == ".-") { sembol = "A" ; return ; }
if (sembol == "-...") { sembol = "B" ; return ; }
if (sembol == "-.-.") { sembol = "C" ; return ; }
if (sembol == "-..") { sembol = "D" ; return ; }
if (sembol == ".") { sembol = "E" ; return ; }
if (sembol == "..-.") { sembol = "F" ; return ; }
if (sembol == "--.") { sembol = "G" ; return ; }
if (sembol == "....") { sembol = "H" ; return ; }
if (sembol == "..") { sembol = "I" ; return ; }
if (sembol == ".---") { sembol = "J" ; return ; }
if (sembol == "-.-") { sembol = "K" ; return ; }
if (sembol == ".-..") { sembol = "L" ; return ; }
if (sembol == "--") { sembol = "M" ; return ; }
if (sembol == "-.") { sembol = "N" ; return ; }
if (sembol == "---") { sembol = "O" ; return ; }
if (sembol == ".--.") { sembol = "P" ; return ; }
if (sembol == "--.-") { sembol = "Q" ; return ; }
if (sembol == ".-.") { sembol = "R" ; return ; }
if (sembol == "...") { sembol = "S" ; return ; }
if (sembol == "-") { sembol = "T" ; return ; }
if (sembol == "..-") { sembol = "U" ; return ; }
if (sembol == "...-") { sembol = "V" ; return ; }
if (sembol == ".--") { sembol = "W" ; return ; }
if (sembol == "-..-") { sembol = "X" ; return ; }
if (sembol == "-.--") { sembol = "Y" ; return ; }
if (sembol == "--..") { sembol = "Z" ; return ; }
}






< Bu mesaj bu kişi tarafından değiştirildi tecevit -- 2 Kasım 2014; 21:39:37 >
Bu mesaja 1 cevap geldi.
.
11 yıl
Teğmen

quote:

Orijinalden alıntı: tecevit


Selam,

Sanırım oldu.
1. Program çok az bir ekleme ile sürekli aynı mesajı gönderiyor.
2. Program mesajı alıp seri porta mors kodunu ve karakteri yazıyor.

< Resime gitmek için tıklayın >


< Resime gitmek için tıklayın >


MorseGonderici.ino

 
/*
PIN13 --------LASER.POINTER------ GND
*/

int led = 13; // LED connected to digital pin 13
int unit = 50; // duration of a pulse

char * morsecode[] = {
"-----", // 0
".----", // 1
"..---", // 2
"...--", // 3
"....-", // 4
".....", // 5
"-....", // 6
"--...", // 7
"---..", // 8
"----.", // 9
"---...", // :
"-.-.-.", // ;
"", // < (there's no morse for this simbol)
"-...-", // =
"", // > (there's no morse for this simbol)
"..--..", // ?
".--._.", // @
".-", // A
"-...", // B
"-.-.", // C
"-..", // D
".", // E
"..-.", // F
"--.", // G
"....", // H
"..", // I
".---", // J
"-.-", // K
".-..", // L
"--", // M
"-.", // N
"---", // O
".--.", // P
"--.-", // Q
".-.", // R
"...", // S
"-", // T
"..-", // U
"...-", // V
".--", // W
"-..-", // X
"-.--", // Y
"--.." // Z
};
char * kelime = "MORS KODU GONDERICI" ;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop(){
say_string(kelime) ;
delay(3000) ;
}

void say_morse_word(char * msg){
int index = 0;
while(msg[index]!='\0'){
// say a dash
if(msg[index]=='-'){
dash();
}
// say a dot
if(msg[index]=='.'){
dot();
}
// gap beetween simbols
intragap();
index++;
}
}

void say_string(char * asciimsg){
int index = 0;
char charac;
charac = asciimsg[index];
while(charac!='\0'){
say_char(charac);
charac = asciimsg[++index];
shortgap();
}
}


void say_char(char letter){
if((letter>='0')&&(letter<='Z')&&(letter!='<')&&(letter!='>')){
Serial.print(morsecode[letter-'0']);
Serial.print(' ');
say_morse_word(morsecode[letter-'0']);
shortgap();
} else {
if(letter==' '){
Serial.print(" \\ ");
mediumgap();
}else{
Serial.print("X");
}
}
}


// general procedure for .
void dot() {
digitalWrite(led, HIGH);
delay(unit);
}

// general procedure for -
void dash() {
digitalWrite(led, HIGH);
delay(unit*2);
}

// gap between dots and dashes
void intragap() {
digitalWrite(led, LOW);
delay(unit*3);
}

// gap between letters
void shortgap() {
digitalWrite(led, LOW);
delay(unit*4);
}

// gap be tween words
void mediumgap() {
digitalWrite(led, LOW);
delay(unit*5);
}


MorseAlici.ino
 
/*
PIN2 -----|----LDR---------- +5V
|
|------2,2K------- GND

2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir.
*/

int pin = 13;
volatile int state = LOW;
unsigned long milisec;
unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ;
int birim = 50 ; // gönderen programdaki birim ile aynı olmalı
int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi
int cizgisuresimax = birim*2 + birim*2 / 10 ;
int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri
int harfarasimin = birim*4 + birim*4 / 10 ;
int kelimearasimin = birim*5 + birim*5 / 10 ;
int harfarasikaranlik = birim*8 ;
// yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı
String sembol = ""; // buffer

void setup()
{ Serial.begin(9600);
pinMode(pin, OUTPUT);
attachInterrupt(0, rising, RISING); // PIN 2 yükselirse ---> rising()
}

void loop()
{ digitalWrite(pin, state);}

void rising()
{ isikacildi = millis() ; // laserin yanmaya başladığı zaman
karanliksuresi = millis() - isikkapandi ; // laser ne kadar kapalı kaldı
if ( karanliksuresi > harfarasikaranlik ) { // harf bitti mi ?
Serial.print(sembol); // mors kodunu ve karşılığını yaz
Serial.print(" "); //
mors2harf() ; //
Serial.println(sembol); //
sembol = ""; // sembol'ü sifirla
}
else if ( karanliksuresi > kelimearasimin ) { } // kelime bitti mi ? to do
attachInterrupt(0, falling , FALLING); // PIN 2 düşerse ---> falling()
state = !state; // LED in durumunu toggle et
}

void falling()
{ isikkapandi = millis() ; // laserin kapandığı zaman
aydinliksuresi = millis() - isikacildi ; // laser ne kadar yanık kaldı
if ( aydinliksuresi < noktasuresimax ) { // bu bir nokta mıdır ?
sembol = sembol + "." ; // sembol'e nokta ekle
}
else if ( aydinliksuresi < cizgisuresimax ) { // bu bir çizgi midir ?
sembol = sembol + "-" ; // sembol'e çizgi ekle
}
attachInterrupt(0, rising , RISING); // PIN 2 yükselirse ---> rising()
state = !state;
}

void mors2harf() // düzgün bir fonksiyon yazamadım...
{
if (sembol == "-----") { sembol = "0" ; return ; }
if (sembol == ".----") { sembol = "1" ; return ; }
if (sembol == "..---") { sembol = "2" ; return ; }
if (sembol == "...--") { sembol = "3" ; return ; }
if (sembol == "....-") { sembol = "4" ; return ; }
if (sembol == ".....") { sembol = "5" ; return ; }
if (sembol == "-....") { sembol = "6" ; return ; }
if (sembol == "--...") { sembol = "7" ; return ; }
if (sembol == "---..") { sembol = "8" ; return ; }
if (sembol == "----.") { sembol = "9" ; return ; }
if (sembol == "---..."){ sembol = ":" ; return ; }
if (sembol == "-.-.-."){ sembol = ";" ; return ; }
if (sembol == "-...-") { sembol = "==" ; return ; }
if (sembol == "..--.."){ sembol = "?" ; return ; }
if (sembol == ".--._."){ sembol = "@" ; return ; }
if (sembol == ".-") { sembol = "A" ; return ; }
if (sembol == "-...") { sembol = "B" ; return ; }
if (sembol == "-.-.") { sembol = "C" ; return ; }
if (sembol == "-..") { sembol = "D" ; return ; }
if (sembol == ".") { sembol = "E" ; return ; }
if (sembol == "..-.") { sembol = "F" ; return ; }
if (sembol == "--.") { sembol = "G" ; return ; }
if (sembol == "....") { sembol = "H" ; return ; }
if (sembol == "..") { sembol = "I" ; return ; }
if (sembol == ".---") { sembol = "J" ; return ; }
if (sembol == "-.-") { sembol = "K" ; return ; }
if (sembol == ".-..") { sembol = "L" ; return ; }
if (sembol == "--") { sembol = "M" ; return ; }
if (sembol == "-.") { sembol = "N" ; return ; }
if (sembol == "---") { sembol = "O" ; return ; }
if (sembol == ".--.") { sembol = "P" ; return ; }
if (sembol == "--.-") { sembol = "Q" ; return ; }
if (sembol == ".-.") { sembol = "R" ; return ; }
if (sembol == "...") { sembol = "S" ; return ; }
if (sembol == "-") { sembol = "T" ; return ; }
if (sembol == "..-") { sembol = "U" ; return ; }
if (sembol == "...-") { sembol = "V" ; return ; }
if (sembol == ".--") { sembol = "W" ; return ; }
if (sembol == "-..-") { sembol = "X" ; return ; }
if (sembol == "-.--") { sembol = "Y" ; return ; }
if (sembol == "--..") { sembol = "Z" ; return ; }
}


< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >

ıyıye benzıyor ılk fırsatta deneyeceım


Bu mesaja 1 cevap geldi.
.
11 yıl
Teğmen

quote:

Orijinalden alıntı: .koray.

quote:

Orijinalden alıntı: tecevit


Selam,

Sanırım oldu.
1. Program çok az bir ekleme ile sürekli aynı mesajı gönderiyor.
2. Program mesajı alıp seri porta mors kodunu ve karakteri yazıyor.

< Resime gitmek için tıklayın >


< Resime gitmek için tıklayın >


MorseGonderici.ino

 
/*
PIN13 --------LASER.POINTER------ GND
*/

int led = 13; // LED connected to digital pin 13
int unit = 50; // duration of a pulse

char * morsecode[] = {
"-----", // 0
".----", // 1
"..---", // 2
"...--", // 3
"....-", // 4
".....", // 5
"-....", // 6
"--...", // 7
"---..", // 8
"----.", // 9
"---...", // :
"-.-.-.", // ;
"", // < (there's no morse for this simbol)
"-...-", // =
"", // > (there's no morse for this simbol)
"..--..", // ?
".--._.", // @
".-", // A
"-...", // B
"-.-.", // C
"-..", // D
".", // E
"..-.", // F
"--.", // G
"....", // H
"..", // I
".---", // J
"-.-", // K
".-..", // L
"--", // M
"-.", // N
"---", // O
".--.", // P
"--.-", // Q
".-.", // R
"...", // S
"-", // T
"..-", // U
"...-", // V
".--", // W
"-..-", // X
"-.--", // Y
"--.." // Z
};
char * kelime = "MORS KODU GONDERICI" ;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop(){
say_string(kelime) ;
delay(3000) ;
}

void say_morse_word(char * msg){
int index = 0;
while(msg[index]!='\0'){
// say a dash
if(msg[index]=='-'){
dash();
}
// say a dot
if(msg[index]=='.'){
dot();
}
// gap beetween simbols
intragap();
index++;
}
}

void say_string(char * asciimsg){
int index = 0;
char charac;
charac = asciimsg[index];
while(charac!='\0'){
say_char(charac);
charac = asciimsg[++index];
shortgap();
}
}


void say_char(char letter){
if((letter>='0')&&(letter<='Z')&&(letter!='<')&&(letter!='>')){
Serial.print(morsecode[letter-'0']);
Serial.print(' ');
say_morse_word(morsecode[letter-'0']);
shortgap();
} else {
if(letter==' '){
Serial.print(" \\ ");
mediumgap();
}else{
Serial.print("X");
}
}
}


// general procedure for .
void dot() {
digitalWrite(led, HIGH);
delay(unit);
}

// general procedure for -
void dash() {
digitalWrite(led, HIGH);
delay(unit*2);
}

// gap between dots and dashes
void intragap() {
digitalWrite(led, LOW);
delay(unit*3);
}

// gap between letters
void shortgap() {
digitalWrite(led, LOW);
delay(unit*4);
}

// gap be tween words
void mediumgap() {
digitalWrite(led, LOW);
delay(unit*5);
}


MorseAlici.ino
 
/*
PIN2 -----|----LDR---------- +5V
|
|------2,2K------- GND

2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir.
*/

int pin = 13;
volatile int state = LOW;
unsigned long milisec;
unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ;
int birim = 50 ; // gönderen programdaki birim ile aynı olmalı
int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi
int cizgisuresimax = birim*2 + birim*2 / 10 ;
int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri
int harfarasimin = birim*4 + birim*4 / 10 ;
int kelimearasimin = birim*5 + birim*5 / 10 ;
int harfarasikaranlik = birim*8 ;
// yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı
String sembol = ""; // buffer

void setup()
{ Serial.begin(9600);
pinMode(pin, OUTPUT);
attachInterrupt(0, rising, RISING); // PIN 2 yükselirse ---> rising()
}

void loop()
{ digitalWrite(pin, state);}

void rising()
{ isikacildi = millis() ; // laserin yanmaya başladığı zaman
karanliksuresi = millis() - isikkapandi ; // laser ne kadar kapalı kaldı
if ( karanliksuresi > harfarasikaranlik ) { // harf bitti mi ?
Serial.print(sembol); // mors kodunu ve karşılığını yaz
Serial.print(" "); //
mors2harf() ; //
Serial.println(sembol); //
sembol = ""; // sembol'ü sifirla
}
else if ( karanliksuresi > kelimearasimin ) { } // kelime bitti mi ? to do
attachInterrupt(0, falling , FALLING); // PIN 2 düşerse ---> falling()
state = !state; // LED in durumunu toggle et
}

void falling()
{ isikkapandi = millis() ; // laserin kapandığı zaman
aydinliksuresi = millis() - isikacildi ; // laser ne kadar yanık kaldı
if ( aydinliksuresi < noktasuresimax ) { // bu bir nokta mıdır ?
sembol = sembol + "." ; // sembol'e nokta ekle
}
else if ( aydinliksuresi < cizgisuresimax ) { // bu bir çizgi midir ?
sembol = sembol + "-" ; // sembol'e çizgi ekle
}
attachInterrupt(0, rising , RISING); // PIN 2 yükselirse ---> rising()
state = !state;
}

void mors2harf() // düzgün bir fonksiyon yazamadım...
{
if (sembol == "-----") { sembol = "0" ; return ; }
if (sembol == ".----") { sembol = "1" ; return ; }
if (sembol == "..---") { sembol = "2" ; return ; }
if (sembol == "...--") { sembol = "3" ; return ; }
if (sembol == "....-") { sembol = "4" ; return ; }
if (sembol == ".....") { sembol = "5" ; return ; }
if (sembol == "-....") { sembol = "6" ; return ; }
if (sembol == "--...") { sembol = "7" ; return ; }
if (sembol == "---..") { sembol = "8" ; return ; }
if (sembol == "----.") { sembol = "9" ; return ; }
if (sembol == "---..."){ sembol = ":" ; return ; }
if (sembol == "-.-.-."){ sembol = ";" ; return ; }
if (sembol == "-...-") { sembol = "==" ; return ; }
if (sembol == "..--.."){ sembol = "?" ; return ; }
if (sembol == ".--._."){ sembol = "@" ; return ; }
if (sembol == ".-") { sembol = "A" ; return ; }
if (sembol == "-...") { sembol = "B" ; return ; }
if (sembol == "-.-.") { sembol = "C" ; return ; }
if (sembol == "-..") { sembol = "D" ; return ; }
if (sembol == ".") { sembol = "E" ; return ; }
if (sembol == "..-.") { sembol = "F" ; return ; }
if (sembol == "--.") { sembol = "G" ; return ; }
if (sembol == "....") { sembol = "H" ; return ; }
if (sembol == "..") { sembol = "I" ; return ; }
if (sembol == ".---") { sembol = "J" ; return ; }
if (sembol == "-.-") { sembol = "K" ; return ; }
if (sembol == ".-..") { sembol = "L" ; return ; }
if (sembol == "--") { sembol = "M" ; return ; }
if (sembol == "-.") { sembol = "N" ; return ; }
if (sembol == "---") { sembol = "O" ; return ; }
if (sembol == ".--.") { sembol = "P" ; return ; }
if (sembol == "--.-") { sembol = "Q" ; return ; }
if (sembol == ".-.") { sembol = "R" ; return ; }
if (sembol == "...") { sembol = "S" ; return ; }
if (sembol == "-") { sembol = "T" ; return ; }
if (sembol == "..-") { sembol = "U" ; return ; }
if (sembol == "...-") { sembol = "V" ; return ; }
if (sembol == ".--") { sembol = "W" ; return ; }
if (sembol == "-..-") { sembol = "X" ; return ; }
if (sembol == "-.--") { sembol = "Y" ; return ; }
if (sembol == "--..") { sembol = "Z" ; return ; }
}


< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >

ıyıye benzıyor ılk fırsatta deneyeceım

ama mors alfabesı bıraz karısık



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.