Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pylint: skip-file
- from RPi import GPIO
- # from mcp import Mcp
- import time
- import spidev
- spi = spidev.SpiDev()
- spi.open(0, 0) # Bus SPI0, slave op CE 0
- # Bus = het nummer van de SPI-bus
- # Device = het nummer van de SS/CE/CS-lijn, standaard heb je op de RPi pins 8 en 9 (BCM) ter beschikking als CE0 en CE1
- spi.max_speed_hz = 10 ** 5 # 100 kHz
- pwm_pin = 21
- pwm_waarde = 20 # 50hz 20ms periode
- GPIO.setmode(GPIO.BCM)
- GPIO.setwarnings(False)
- GPIO.setup(pwm_pin, GPIO.OUT)
- p = GPIO.PWM(pwm_pin, 50)
- p.start(6)
- # byte1 = 0b00000000
- # byte2 = 0b00000000
- # byte3 = 0b00000000
- # bytes_out = [byte1, byte2, byte3]
- def writebit(byte):
- pass
- def ack():
- pass
- def draai_motor():
- # Servo motor draaien
- while True:
- # 0 graden (neutraal)
- p.ChangeDutyCycle(6)
- time.sleep(1)
- # -90 graden (rechts)
- p.ChangeDutyCycle(2.5)
- time.sleep(1)
- # 0 graden (neutraal)
- p.ChangeDutyCycle(6)
- time.sleep(1)
- # 90 graden (links)
- p.ChangeDutyCycle(11)
- time.sleep(1)
- def read_pot():
- while True:
- channeldata = read_spi(0)
- print("Waarde = {}".format(channeldata))
- time.sleep(.1)
- def read_spi(channel):
- spidata = spi.xfer2([1,(8+channel)<<4,0])
- return ((spidata[1] & 3) << 8) + spidata[2]
- def setup():
- bytes_out = []
- counter = 0
- while counter < 4:
- counter += 1
- bytes_in = spi.readbytes(counter) # leest n bytes en geeft die terug in een `list`
- bytes_out.append(bytes_in)
- spi.writebytes(bytes_out[0]) # verstuurt bytes uit de `list` bytes_out
- # verstuurt de bytes in `bytes_out` en ontvangt er evenveel in `bytes_in`.
- bytes_in = spi.xfer(bytes_out[1])
- # tussen elke byte wordt SS/CE/CS kort gedeactiveerd.
- # idem, maar tussen de bytes in blijft SS/CE/CS actief
- bytes_in = spi.xfer2(bytes_out[2])
- if __name__ == "__main__":
- try:
- setup()
- read_pot()
- except KeyboardInterrupt as e:
- print(e)
- finally:
- spi.close()
- p.stop()
- GPIO.cleanup()
- print("Finish")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement