Python seri port kullanarak veri yazmak

Başlatan elektronikhobi, 30 Mayıs 2025, 18:47:39

elektronikhobi

Daha önce Python ile Arduino seri porttan gelen verileri okuyan ufak bir uygulama yazmıştık.

Kullanıcının bastığı tuşları okuyarak Arduino üzerinde bulunan ışıkları yakan bir uygulama yazmak istiyoruz.

Örneğin kullanıcı ileri ok tuşuna basınca "ileri", geri ok tuşuna basınca "geri", boşluk tuşuna basınca "dur" kelimesini seri porttan Arduino'ya göndersin.

Eğer Arduino'ya "ileri" kelimesi geldiyse sağ ışığı, "geri" kelimesi geldi ise sol ışığı yaksın.

Bu uygulamayı nasıl yazabiliriz acaba..

kantirici


elektronikhobi

#2
Hayır.

Yapay zeka kullanmayı tercih etmiyoruz.

Python'dan Arduino'ya veri gönderen ufak bir örnek yazdık.

Ama henüz istediğimiz gibi çalışmıyor.

Ekleme :

Bu çalıştı gibi gözüküyor.

seriyaz2.py
import serial
import time

seri = serial.Serial('/dev/ttyACM0', 9600) 

time.sleep(3)

def yaz(karakter):
    kaçBaytYazıldı = seri.write(karakter.encode())
    print('Kaç bayt yazıldı = ', kaçBaytYazıldı)
    time.sleep(3)

yaz('A')
yaz('B')
yaz('A')
yaz('B')

seri.close()

serioku2.ino
int sagIsik = 8;
int solIsik = 10;

void yakSondur(int no)
{
    digitalWrite(no, !digitalRead(no));
}

void setup()
{
    pinMode(sagIsik,OUTPUT);
    pinMode(solIsik,OUTPUT);
    digitalWrite(sagIsik,LOW);
    digitalWrite(solIsik,LOW);

    Serial.begin(9600);
}

void loop()
{
    char okunan = 0;

    if (Serial.available())
    {
        okunan = Serial.read();

        switch(okunan)
        {
        case 'A':  yakSondur(8);
            break;
        case 'B':  yakSondur(10);
            break;
        default:
            break;
        }
    }
}

mehmet

Bir kaç harf header gönderirseniz çok daha iyi olur. Benim blogda var örnek.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

elektronikhobi

Aşağıdaki örnek kullanıcının bastığı tuşları okuyor.

Eğer ileri ok tuşuna basıldı ise seri porttan 'ileri' kelimesini gönderiyor. Kırmızı ışığı yakıyor.

Eğer geri ok tuşuna basıldı ise seri porttan 'geri' kelimesini gönderiyor. Beyaz ışığı yakıyor.

Tuşlara mükerrer basıldığında eğer ışık yanıyorsa sönüyor.

seriyaz4.py


import serial
from pynput.keyboard import Key, Listener

seri = serial.Serial('/dev/ttyACM0', 9600)

def yaz(karakter):

    kaçBaytYazıldı = seri.write(karakter.encode())

    print('Kaç bayt yazıldı = ', kaçBaytYazıldı)


def tuşuGöster(tuş):
    #  print('\nGirdiğiniz tuş {0}' .format(tuş))

    if tuş == Key.up:
        print('\nİleri gidiyoruz')
        yaz('ileri')

    if tuş == Key.down:
        print('\nGeri gidiyoruz')
        yaz('geri')

    if tuş == Key.delete:
        return False

with Listener(on_press = tuşuGöster) as işle:
    işle.join()

Benzer Konular (5)