Как увеличить скорость I2c для чтения ads115 (Аналоговый цифровой конвертер) в Raspberry Pi 3? - PullRequest
0 голосов
/ 12 июля 2019

Здесь я использую Raspberry Pi 3 для чтения данных из DustSensor "sharp gp2y1014au0f".Из-за данных датчика в аналоговом, поэтому я использую ads1115 в качестве аналогового цифрового преобразователя.но проблема в том, что данные с датчика пыли должны считываться через 0,32 миллисекунды после выключения.Максимальная скорость ads1115 составляет всего 0,86 миллисекунды.Как читать данные из Sharp Gp2y1014au0f, используя Raspberry Pi 3?

Я уже изменил данные, прочитанные в библиотеках ads1115, но получаю только 0,82 миллисекунды.так что до сих пор не получил данные

import RPi.GPIO as GPIO
import time

from AdsValue import getData #this ads1115 program i made


   GPIO.setmode(GPIO.BCM)
   GPIO.setwarnings(False)
   GPIO.setup(18,GPIO.OUT)

   def getDustData():
       Vo = 0
       VT = 0
       K = 0.5
       data = 0
       for i in range(30):
           begin = time.perf_counter_ns()

           #print ("LED off")
           GPIO.output(18,GPIO.LOW)
           #time.sleep(280/1000000) #sleep 0.28 millisecond or 280 microsecond

           data = getData(0) #call get data to get data from ads1115

           #print ("LED on")
           GPIO.output(18,GPIO.HIGH)
           time.sleep(9620/1000000) #slepp 9.62 millissecond or 9620 microsecond
           end = time.perf_counter_ns()

           #print(data)
           VT += data
           waktu = (end-begin)/1000000 #time in nano so it in milli second
       V = VT/30 
       dev = V-Vo
       return dev/K*100, waktu


   while True:
       Debu = getDustData()
       print("Data :",Debu)

Эта программа AdsValue.py

import time
from Libs.ads1115 import ADS1115

adc = ADS1115()
GAIN = 1

def getData(Pin):
    values = adc.read_adc(Pin, gain=GAIN)
    value  = values*(4.09/32767)
    return value
...