İnput methoduyla ascii değerleri yollayabiliyor olmama rağmen datetime modülünün de çıktısı string olmasına rağmen aynı sonucu alamıyorum.Yardımcı olursanız sevinirim. #python#datetime#serialcommunication
aurdinoya nasıl gönderirsiniz bilmem ama time modülü ile güncel zamanı almak istiyorsanız böyle bir kod yazabilirsiniz
import time
time.strftime("%Y %H/%M/%S") # Output;2019 23:50
bilgisayarınızın saati neyse buda onu göstericektir bunu nasıl aurdinoya gönderirsiniz çok bilgim yok ama bunu bildikten sonra yapabiliyorsanız bilmiyorum yapamıyorsanız araştırabilirim biraz
Kodunuzdan biraz anladığım kadarıyla, arduinodaki kod sürekli her döngüde bir veri akışı var mı diye kontrol ediyor ve sonra da bunu okuyup, okuduğu veriyi ekrana yazıyor.
Python tarafında gelince de, sadece bir kere veri gönderdiğinizi görüyoruz.
ser.write(var.encode())
Siz bu satırdan başka bir yerde veri göndermediğiniz için, arduino da bir veri okumamış oluyor. Şu şekilde bir ekleme yapıp, geri dönüş yapar mısınız?
import serial
import time
import datetime
ser = serial.Serial('COM3', 9600, timeout=0)
ser.reset_input_buffer()
time.sleep(1.5)
d=datetime.datetime.now()
print("d:",d)
now_year=str(d.year)
now_month =str(d.month)
now_day =str(d.day)
now_hour =str(d.hour)
now_minute =str(d.minute)
now_second =str(d.second)
var = input("Enter something: ")+'\r\n'
ser.write(var.encode())
#ser.write(now_month.encode())
while 1:
try:
# Değişiklik burada
bilgi = time.strftime("%H:%M:%S")+"\r\n"
ser.write(bilgi.encode())
time.sleep(1.5)
print (ser.readline())
except ser.SerialTimeoutException:
print('Data could not be read')