Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
Share Thread:
[ÇÖZÜLDÜ] Veri Okuma Süresini Hizlandirma/Yavaslatma
#1
Merhaba arkadaslar. Yazdigim kodla MCP3008 den 4 analog veri okuyorum ancak veri okuma hizini istegime gore ayarlamak istiyorum. Nereyi degistirmem gerekiyor ya da ne eklemem gerekiyor?

Kod:
import spidev
import time
import os

spi = spidev.SpiDev()
spi.open(0,0)


def ReadChannel(channel):
 adc = spi.xfer2([1,(8+channel)<<4,0])
 data = ((adc[1]&3) << 8) + adc[2]
 return data



def ConvertVolts(data,places):
 volts = (data * 3.3) / float(1023)
 volts = round(volts,places)  
 return volts


 
def ConvertTemp(data,places):
 temp = ((data * 330)/float(1023))-50
 temp = round(temp,places)
 return temp


 
sensor1_channel = 0
sensor2_channel = 1
sensor3_channel = 2
sensor4_channel = 3

delay = 5

while True:

 sensor1_level = ReadChannel(sensor1_channel)
 sensor1_volts = ConvertVolts(sensor1_level,2)
 
 sensor2_level = ReadChannel(sensor2_channel)
 sensor2_volts = ConvertVolts(sensor2_level,2)
 
 sensor3_level = ReadChannel(sensor3_channel)
 sensor3_volts = ConvertVolts(sensor3_level,2)

 sensor4_level = ReadChannel(sensor4_channel)
 sensor4_volts = ConvertVolts(sensor4_level,2)
 


 print "-----------------------------------------------------------------------------"  
 print(" Sensor-1            Sensor-2         Sensor-3          Sensor-4 ")  
 print("{} - ({}V)        {} - ({}V)      {} - ({}V)      {} - ({}V)".format(sensor1_level,sensor1_volts,sensor2_level,sensor2_volts,sensor3_level,sensor3_volts,sensor4_level,sensor4_volts))    


 time.sleep(delay)



-------------------------------------------
EDIT: Sorunu Sayac koyarak cozdum. Kod asagida..
Kod:
#!usr/bin/python
import time

   foldtime = time.time()                                  # seconds as float
   fnewtime = time.time()
   fstore = 1800.0                                         # 30 min * 60 sec

   while ??? :
         fnewtime = time.time()
         fdtime = fnewtime-foldtime
         
         if fdtime >= fstore:                         # only store every "fstore" seconds
               foldtime = fnewtime
Ara
Cevapla
#2
Merhaba,

veri okuma hızından kastınız Sensor-1  kısmının ekranda görünme sıklığı ise, delay değişkeninin değerini arttırmanız yeterli. Ancak bahsettiğiniz ADC'nin saat hızı ise, tam emin olmamakla beraber onu spidev kütüphanesinin içerisinden değiştirmeniz gerekli. Mutlaka değişkene atanmıştır.

Kolay gelsin
Ara
Cevapla
#3
Aslinda yapmak istedigim veriyi ekranda gösterme suresini degistirmekti. Sorunu sayac koyarak cözdüm. kod asagida..

Kod:
#!usr/bin/python
import time

   foldtime = time.time()                                  # seconds as float
   fnewtime = time.time()
   fstore = 1800.0                                         # 30 min * 60 sec

   while ??? :
         fnewtime = time.time()
         fdtime = fnewtime-foldtime
         
         if fdtime >= fstore:                         # only store every "fstore" seconds
               foldtime = fnewtime
Ara
Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi