К сожалению я в си полный ноль. Спасибо за совет, но он не помог((
я объединил оба скрипта в один при выносе tf=open("/sys/bus/w1/devices/28-000003352199/w1_slave") до цикла, скрипт запускаться не захотел, в итоге вернул его на место
после чего начал экспериментировать с каналами.
Итог если все посадить на 0 канал то вроде бы работает но через раз, кулер при запуске скрипта временами крутится на полных оборотах, невзирая на условия температуры.
потом методом тыка пришел к тому что нужно указать задержку (если я правильно все понял) PWM.add_channel_pulse(0, 25, 100, 0)
после этого все заработало.
#!/usr/bin/python
# _*_ coding: cp1251 _*_
from RPIO import PWM
from RPi import GPIO
import time
import datetime
#time on
HOUR_ON =7
button1Pin = 18
button2Pin = 15
GPIO.setmode(GPIO.BCM)
GPIO.setup(button1Pin, GPIO.IN)
GPIO.setup(button2Pin, GPIO.IN)
PWM.setup()
PWM.init_channel(0)
PWM.add_channel_pulse(0, 25, 100, 0)
time.sleep(5)
servo = PWM.Servo()
servo.set_servo(7, 1500)
try:
while True:
tf=open("/sys/bus/w1/devices/28-000003352199/w1_slave")
tt=tf.read()
td=tt.split("\n")[1].split(" ") [9]
t=float(td[2:])
now = datetime.datetime.now()
if (HOUR_ON <= now.hour) :
if (t >= 27500) and (t <= 28000):
PWM.add_channel_pulse(0, 25, 0, 200)
elif (t >= 28010) and (t <= 28500):
PWM.add_channel_pulse(0, 25, 0, 400)
elif (t >= 28510) and (t <= 29000):
PWM.add_channel_pulse(0, 25, 0, 600)
elif (t >= 29010) and (t <= 29500):
PWM.add_channel_pulse(0, 25, 0, 800)
elif (t >= 29510) and (t <= 30000):
PWM.add_channel_pulse(0, 25, 0, 1000)
elif (t >= 30010):
PWM.add_channel_pulse(0, 25, 0, 1600)
else:
PWM.add_channel_pulse(0, 25, 0, 0)
time.sleep(1)
if not GPIO.input(button1Pin):
servo.set_servo(7, 1800)
time.sleep(1)
elif not GPIO.input(button2Pin):
servo.set_servo(7, 1200)
time.sleep(1)
else:
servo.stop_servo(7)
time.sleep(1)
except KeyboardInterrupt:
servo.stop_servo(7)
PWM.cleanup()
tf.close()
Стабильно или нет покажет время. В любом случае большое спасибо Вам за наводку))