Matlabtan Arduinoya Veri Gönderme
Arduino Kodu
Matlab Kodu
Arduino Kodu:
*******
int gelen_veri=0;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0)
{
gelen_veri = Serial.read();
if(gelen_veri=='1')
{
digitalWrite(13,HIGH);
}
if(gelen_veri=='2')
{
digitalWrite(13,LOW);
}
}
}
*******
Matlabtan gelen verinin okuna bilmesi için int formatında gelen veri tanımlanır. Yerleşik led olan 13 numaralı pin output olarak tanımlanır. Seri haberleşme için BaudRate 9600 olarak tanımlanır. Döngünün içerindeki ilk if matlabtan bir verinin gelip gelmediğini kontrol eder. Eğer veri gelirse o zaman Serial.read komutuyla gelen veri okunur. Bu gelen veri 1 ise ledi yakar,2 ise ledi söndürür.
Matlab Kodu:
*******
a=serial('COM6','BaudRate',9600); %arduinoyu a olarak tanımlıyoruz.
pause(1) % 1 saniye bekleme.
fopen(a); %arduinoyu başlatma komutu.
while(1) % döngünün sürekli olması için girilmiştir.
deger=input("deger giriniz"); % matlabtan deger girmek için tanımlanıyoruz.
fwrite(a,deger); % girilen değeri arduinoya gönderiyoruz.
end
*******
Matlabtan arduinoyu seri haberleştirme bilmek için arduinonun hangi COM portuna takılıysa onu yazmanız gerekmektedir. Benim bilgisayarım COM6 ya takılıydı o yüzden COM6 yazdım. Sizde ne ise onu yazmalısınız. Arduinonun haberleşme BaudRate 9600 seçtiğim için burda da BaudRate 9600 olarak tanımladım. pause komutuyla 1 sn bekleme koydum açması bende biraz sürüyordu o yüzden. fopen fonksiyonuylada arduinoyu başlatır. Sürekli çalışmasını istediğim için while döngüsünü 1 yaptım. Siz istediğiniz gibi değiştirebilirsiniz. Klavyeden istediğim değerleri girebileyim diye input komutu ataması yaptım. 1 veya 2 girdiğinizde bu değeri fwrite diyerek arduinoya gönderir. Arduinoda bu gelen değerlere göre çıkış sağlar.