Seri ekrandan girilen komut ile led kontrolü

aylin142

Üye
Katılım
6 Mar 2014
Mesajlar
30
Puanları
1
Tinkercad te çalışan bu kod arduino da hata veriyor.Sebebini bile var mı?
ekran-al%C4%B1nt%C4%B1s%C4%B1-png.75985

Ekran Alıntısı.PNG
 
Son düzenleme:
Önce bir kaç karakterlik başlık yollayın.
Sizin komutlar bu başlık doğrulandıktan
sonra işlensin.
Ek.
Alıcı ve verici hızlarının eş olduğunu
düşünüyorum.
 
Önce bir kaç karakterlik başlık yollayın.
Sizin komutlar bu başlık doğrulandıktan
sonra işlensin.
Ek.
Alıcı ve verici hızlarının eş olduğunu
düşünüyorum.
hız dediğiniz baud ise ikiside 9600.yukarıda resimde görülüyor ikisi aynı.dediğinizi yaptım aynı yine hata veriyor.
 
led 1 yansin gibi uzun bir komut degil de sadece 1 gibi bir komut deneyin. Sonucu bir gorelim.
 
Kod:
#define relay1 12
#define relay2 11
#define relay3 10
#define relay4 9
#define relay5 8
#define relay6 7
#define relay7 6
#define relay8 5
int veri = 0;       
void setup() {
  pinMode(relay1,OUTPUT); 
  pinMode(relay2,OUTPUT);
  pinMode(relay3,OUTPUT);
  pinMode(relay4,OUTPUT);
  pinMode(relay5,OUTPUT);
  pinMode(relay6,OUTPUT);
  pinMode(relay7,OUTPUT);
  pinMode(relay8,OUTPUT);
  digitalWrite(relay1,HIGH);
  digitalWrite(relay2,HIGH);
  digitalWrite(relay3,HIGH);
  digitalWrite(relay4,HIGH);
  digitalWrite(relay5,HIGH);
  digitalWrite(relay6,HIGH);
  digitalWrite(relay7,HIGH);
  digitalWrite(relay8,HIGH);
  Serial.begin(9600);       
}
void loop () {
  veri = Serial.read();   

  if (veri == '1' ) {
    digitalWrite(relay1,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '2' ) {
    digitalWrite(relay2,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '3' ) {
    digitalWrite(relay3,LOW);
    Serial.println("relay1 ON");
  } 
  if (veri == '4' ) {
    digitalWrite(relay4,LOW);
    Serial.println("relay1 ON");
  } 
  if (veri == '5' ) {
    digitalWrite(relay5,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '6' ) {
    digitalWrite(relay6,LOW);
    Serial.println("relay1 ON");
  }     

  if (veri == '7' ) {
    digitalWrite(relay7,LOW);
    Serial.println("relay1 ON");
  }   
  if (veri == '8' ) {
    digitalWrite(relay8,LOW);
    Serial.println("relay1 ON");
  }     
  if (veri == '0' ) {
    digitalWrite(relay1,HIGH);
    digitalWrite(relay2,HIGH);
    digitalWrite(relay3,HIGH);
    digitalWrite(relay4,HIGH);
    digitalWrite(relay5,HIGH);
    digitalWrite(relay6,HIGH);
    digitalWrite(relay7,HIGH);
    digitalWrite(relay8,HIGH);
    Serial.println("relays OFF");
  }     
}

Bu şekilde deneyin.
 
Satir sonu karakteri problem oluyor gibi sanki. String ifade karakter dizisi gibi isleniyor. Siz dogrudan string cekmek yerine kendi arrayinizi olusturabilirsiniz. Array icine ne geliyor ona bakabilirsiniz. String yazarken timeout oluyor olabilir. Her sey mumkun...
 
led 1 yansin gibi uzun bir komut degil de sadece 1 gibi bir komut deneyin. Sonucu bir gorelim.
sayı ve harf yazarak yapabiliyorum.kelime ve cümle ile yazdırmak istiyorum.
Kod:
#define relay1 12
#define relay2 11
#define relay3 10
#define relay4 9
#define relay5 8
#define relay6 7
#define relay7 6
#define relay8 5
int veri = 0;      
void setup() {
  pinMode(relay1,OUTPUT);
  pinMode(relay2,OUTPUT);
  pinMode(relay3,OUTPUT);
  pinMode(relay4,OUTPUT);
  pinMode(relay5,OUTPUT);
  pinMode(relay6,OUTPUT);
  pinMode(relay7,OUTPUT);
  pinMode(relay8,OUTPUT);
  digitalWrite(relay1,HIGH);
  digitalWrite(relay2,HIGH);
  digitalWrite(relay3,HIGH);
  digitalWrite(relay4,HIGH);
  digitalWrite(relay5,HIGH);
  digitalWrite(relay6,HIGH);
  digitalWrite(relay7,HIGH);
  digitalWrite(relay8,HIGH);
  Serial.begin(9600);      
}
void loop () {
  veri = Serial.read();  

  if (veri == '1' ) {
    digitalWrite(relay1,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '2' ) {
    digitalWrite(relay2,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '3' ) {
    digitalWrite(relay3,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '4' ) {
    digitalWrite(relay4,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '5' ) {
    digitalWrite(relay5,LOW);
    Serial.println("relay1 ON");
  }
  if (veri == '6' ) {
    digitalWrite(relay6,LOW);
    Serial.println("relay1 ON");
  }    

  if (veri == '7' ) {
    digitalWrite(relay7,LOW);
    Serial.println("relay1 ON");
  }  
  if (veri == '8' ) {
    digitalWrite(relay8,LOW);
    Serial.println("relay1 ON");
  }    
  if (veri == '0' ) {
    digitalWrite(relay1,HIGH);
    digitalWrite(relay2,HIGH);
    digitalWrite(relay3,HIGH);
    digitalWrite(relay4,HIGH);
    digitalWrite(relay5,HIGH);
    digitalWrite(relay6,HIGH);
    digitalWrite(relay7,HIGH);
    digitalWrite(relay8,HIGH);
    Serial.println("relays OFF");
  }    
}

Bu şekilde deneyin.
sayı ve harf oluyor denemiştim.kelime veya cümle ile neden olmuyor?
 
Amacından ziyade seri bilgi nasıl gönderilip
alınıyor inceleyin. Amacı açıklamada yazıyor.
 

Forum istatistikleri

Konular
129,840
Mesajlar
930,680
Kullanıcılar
452,678
Son üye
TengRi

Yeni konular

Çevrimiçi üyeler

Geri
Üst