Hallo Forum,
heute sind endlich meine DS1820 1Wire Sensoren Muster angekommen (Muster sind schon was feines....spart man super viel Geld mit ^.^).
Nun wollte ich 1Wire per Python realisieren und habe dafür folgenden Code:
Allerdings zeigt mir mein Oszi zwischen den High Pegeln eine Zeit zwischen 150µs - 200µs an (was vieeeeeeeeel zu viel ist).....die Zeit zwischen High Pegeln soll bei einer "1" 1-15µs und bei einer "0" 60-120µs betragen...Code:import RPi.GPIO as GPIO import time import os from pizypwm import * # Kommandos Convert = 0x44 Read = 0xBE Write = 0x4E Copy = 0x48 Recall = 0xB8 Read_Power = 0xB4 # Datenpin Data_Out = 7 # Pin 4 als Ausgang deklarieren GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(Data_Out, GPIO.OUT) GPIO.output(Data_Out, True) def Send_Data(Daten): # Umwandeln in einen Binaerstring Dual = bin(Daten) Dual = Dual[2:10] # Binaerstring ausgeben for Stelle in range(len(Dual)): if Dual[Stelle] == "1": GPIO.output(Data_Out, False) time.sleep(1.0/1000000.0) GPIO.output(Data_Out, True) else: GPIO.output(Data_Out, False) time.sleep(60.0/1000000.0) GPIO.output(Data_Out, True) while True: Send_Data(Read_Power) time.sleep(1)
Kennt jemand eine Möglichkeit dies vernünftig zu realisieren?
Danke schon mal!







Zitieren

Lesezeichen