Здесь я использую 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