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:
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)
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...
Kennt jemand eine Möglichkeit dies vernünftig zu realisieren?
Danke schon mal!
Lesezeichen