Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: ds01 - 20 Ağustos 2015, 15:37:17

Başlık: Arduino serial available hakkında
Gönderen: ds01 - 20 Ağustos 2015, 15:37:17
İyi günler bu arduinoda Serial.available(), bluetooth.available(),  x.available() tarzında ifadeler kullanılıyor.Ne amaçla kullanılıyor.Kullanılmasının sebebi nedir tam olarak anlayamadım.Birde bazı yerlerde örneğin Serial.available()>12(herhangi bir sayı olabilir.)  gibi ifadeler geçiyor.Epey araştırdım fakat tatmin edici bir cevap bulamadım.Son olarak TX RX pinleri yerine arduinodaki herhangi bir pini TX RX yapabiliyoruz.Gerçek TX RX ile normal bir pinin TX RX olmasının ne farkı var.Yardımcı olabilirseniz çok sevinirim
Başlık: Ynt: Arduino serial available hakkında
Gönderen: Gökhan BEKEN - 20 Ağustos 2015, 17:41:49
https://www.arduino.cc/en/Serial/Available (https://www.arduino.cc/en/Serial/Available)

Rx buffer'ında veri var mı diye kontrol ediyor

dönüş değeri ise
Alıntı Yap"Returns

the number of bytes available to read"

yazdığı üzere kaç byte veri varsa o dönüyor

void loop() {
        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.print("I received: ");
                Serial.println(incomingByte, DEC);
        }
}
Başlık: Ynt: Arduino serial available hakkında
Gönderen: ds01 - 20 Ağustos 2015, 18:32:25
Çok teşekkür ederim.Peki yazılımsal olarak aşağıdaki gibi RX,TX pini(SoftwareSerial bluetooth(10, 11)) ayarlamamızın sebebi nedir?Hatların karışmaması amacıyla mı böyle birşey yapılıyor.Örneğin arduinodan bilgisayara veri geliyor hemde bluetoothtan arduinoya veri gidiyor.
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(10, 11); // RX, TX

void setup()
{
 
  Serial.begin(9600);
  bluetooth.begin(9600);
  pinMode(5, OUTPUT);
  while (!Serial) {
    ;
  }
}


void loop() {

  if(bluetooth.available()>0)
{
      char c = (char)bluetooth.read();
}
Başlık: Ynt: Arduino serial available hakkında
Gönderen: Gökhan BEKEN - 20 Ağustos 2015, 18:39:03
Software yani yazılımsal seriport kullandığınız için, herhangi bir sebebi yok istediğiniz pine ayarlayabilirsiniz.
Eğer donanımsal seriport kullansaydınız mcu'nun datasheet'inde yazan pinlerden başka bir yeri kullanamazdınız.
Neden software kullandınız, genelde donanımsal pini başka bir iş için kullanmak zorunda iseniz kullanırsınız ama sizin öyle bir durumunuz yok sanırım.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: ds01 - 20 Ağustos 2015, 21:43:04
Alıntı yapılan: Gökhan BEKEN - 20 Ağustos 2015, 18:39:03
Software yani yazılımsal seriport kullandığınız için, herhangi bir sebebi yok istediğiniz pine ayarlayabilirsiniz.
Eğer donanımsal seriport kullansaydınız mcu'nun datasheet'inde yazan pinlerden başka bir yeri kullanamazdınız.
Neden software kullandınız, genelde donanımsal pini başka bir iş için kullanmak zorunda iseniz kullanırsınız ama sizin öyle bir durumunuz yok sanırım.

Çok teşekkür ederim verdiğiniz bilgiler için.Kafamdaki soru işaretlerini giderdim sayenizde.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: ds01 - 22 Ağustos 2015, 11:01:19
Son olarak birşey  sormak istiyorum.Serial.available(),Serial.begin(x)  fonksiyonları  pc - arduino arasında iletişim kurmak için mi kullanılıyor sadece.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: Gökhan BEKEN - 22 Ağustos 2015, 14:13:36
Seriport ile haberleşen bütün makinelerle haberleşebilirsiniz ama aynı konfigrasyonda olması gerek.
Mesela sizin ayarladığınız baudrate 9600bps, başka bir cihazla haberleşmeniz için onun da 9600bps olması lazım.
Bunun dışında voltaj seviyeleri de eşit olmalı yoksa cihazlardan biri zarar görebilir. Arduino 5volt ile çalışıyor, siz gidip 3.3v ile çalışan bir mcu'ya bağlarsanız, zarar verirsiniz.
İki adet arduinonuz varsa birbirine seriport ile veri göndererek konuşturabilirsiniz mesela...
Başlık: Ynt: Arduino serial available hakkında
Gönderen: wijippo - 11 Mayıs 2017, 14:28:23
Konu çok önce açılmış fakat yazılanların devamı niteliğini taşıdığından yeni bir konu açmadım.

arduino donanımsal seriportu ile (D0-D1)dinlediğim cihaz baudrate'i 1200, softserial ile gönderdiğim seri iletişim hızı 9600 olan bir arduino kodum var. anlayamadığım kısım 7 boş okumadan sonra 8. okumada 9600 ile haberleşen yazılımsal seriporta veri gönderiyor. zaten yavaş çalışan bir şeyi iyice yavaşlatmış olmuyor mu bu mantık? neden bu mantıkta bir şey yapılmış olabilir?
şimdiden teşekkürler.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: Salih - 11 Mayıs 2017, 20:04:29
RS232 ile haberleşen cihazların bütün seri haberleşme ayarları
(baud rate, parite, stop bit sayısı)

mutlaka aynı olmalıdır.
Bunun dışında alınan verilerin anlamı yoktur.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: wijippo - 12 Mayıs 2017, 17:15:41
ben anlatamadım sanırım.
1200 baudrate'li bir kablodan arduino hardserial kısmından yani 1 nolu bacağından dinleme yapılıyor. softserial kütüphanesi ile de belirlenen herhangi 2 çıkış ile de rx tx ucundan 9600 baudrate ile gönderim yapılıyor.

işte bu gönderimler
for (int = 0; i<7; i++)
{
  SerialX();
}
ile 7 tur boş okuma yapılıyor. 8. okumada 9600 hızlı olandan aktarım sağlanıyor.
böyle bir kod var. ne maksatla böyle yapılmış olabilir diyorum.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: Salih - 13 Mayıs 2017, 17:36:56
Tam anlamadım ama,
anladığım kadarıyla yazayım.
Seri okuma da boş okuma diye bir şey yoktur.
Okuma varsa seri data gelmiş demektir.
Data gelmemiş ise seri okuma komutu
data gelinceye bekler.
Data yoksa bekleme olmasın diye,
Serial.available()  gibi komutlar kullanılır.

Başlık: Ynt: Arduino serial available hakkında
Gönderen: mehmet - 13 Mayıs 2017, 22:21:44
Eğer gelen veri, yazılabilir karakterlerin
dışında ise bir şey göremeyebilirsiniz.
Ama veri alımı olabilir...
Başlık: Ynt: Arduino serial available hakkında
Gönderen: temha - 02 Ekim 2017, 23:36:59
بِسْــــــــــــــــــــــمِ اﷲِارَّحْمَنِ ارَّحِيم
[/size]öncelikle paylaşımlarınız için ALLAH razı olsun. (baud rate, parite, stop bit sayısı) bilmediğimiz bir cihazdan veriyi nasıl okuyabiliriz. kaç ihtimal var deneyerek bulamayız mı.

[/size]
Başlık: Ynt: Arduino serial available hakkında
Gönderen: temha - 02 Ekim 2017, 23:38:36
öncelikle paylaşımlarınız için ALLAH razı olsun. (baud rate, parite, stop bit sayısı) bilmediğimiz bir cihazdan veriyi nasıl okuyabiliriz. kaç ihtimal var deneyerek bulamayız mı.
Başlık: Ynt: Arduino serial available hakkında
Gönderen: ErsinErce - 03 Ekim 2017, 00:11:32
@temha Parity bit has three options; None, Odd and Even. Stop bit has three options, too; one, one-and-a-half and two. Most common baud rates has are twelve-hundred, twenty-four-hundred, fourty-eight-hundred, ninety-six-hundred, nineteen point two, thirty eight point four, fifty seven point six, hundred and fifteen point two kilobaud. If you want to try every combination of this list you have to try seventy-two different settings. It may take five to ten minutes to try all list, depending on the response length.