2016-11-28 70 views
0

我有一个Raspberry Pi 3模型B连接到SainSmart 16通道机械继电器。我有一个python脚本来改变继电器的状态,当程序中的状态改变为不同的GPIO通道时,机械继电器不会改变状态。代码更改GPIO状态,但机械继电器不会改变

有没有人有任何想法?

我的Python脚本

#!/usr/bin/python 
import RPi.GPIO as GPIO 
import time 

GPIO.setmode(GPIO.BCM) 
sleepTime = 0.5 

pinList = [4, 17, 27, 22, 10, 9, 11, 5, 6, 13, 19, 26, 21, 20, 16, 12] 

for i in pinList: 
    GPIO.setup(i, GPIO.OUT) 

for i in pinList: 
    time.sleep(sleepTime); 
    GPIO.output(i, GPIO.HIGH) 
    print (str(i) + " high") 
    print ("state: " + str(GPIO.input(i))) 

for i in pinList: 
    time.sleep(sleepTime); 
    GPIO.output(i, GPIO.LOW) 
    print(str(i) + " low") 
    print ("state: " + str(GPIO.input(i))) 

GPIO.cleanup() 

脚本

4 high 
state: 1 
17 high 
state: 1 
27 high 
state: 1 
22 high 
state: 1 
10 high 
state: 1 
9 high 
state: 1 
11 high 
state: 1 
5 high 
state: 1 
6 high 
state: 1 
13 high 
state: 1 
19 high 
state: 1 
26 high 
state: 1 
21 high 
state: 1 
20 high 
state: 1 
16 high 
state: 1 
12 high 
state: 1 
4 low 
state: 0 
17 low 
state: 0 
27 low 
state: 0 
22 low 
state: 0 
10 low 
state: 0 
9 low 
state: 0 
11 low 
state: 0 
5 low 
state: 0 
6 low 
state: 0 
13 low 
state: 0 
19 low 
state: 0 
26 low 
state: 0 
21 low 
state: 0 
20 low 
state: 0 
16 low 
state: 0 
12 low 
state: 0 

感谢您的阅读器的输出。

+0

什么是你的继电器的电气特性? – eyllanesc

+0

使用晶体管激活继电器 – eyllanesc

+0

这是继电器:http://www.sainsmart.com/16-channel-12v-relay-module-for-pic-arm-avr-dsp-arduino-msp430-ttl-logic .html – cyphun

回答

0

Raspberry Pi 3 GPIO diagram

使用I原本连接两个5V引脚(引脚2和4)向中继模块上相应的销的上面的图。然后我开始从GPIO4(引脚7)开始连接GPIO引脚,向下移动GPIO引脚的左列,然后向右移动。因为我使用了第6针和第9针。这就是当我问这个问题时我是如何设置的。

但通过将5v电缆从引脚2移动到引脚1(3.3v),这解决了我的问题。

注:我得到的图从https://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-3-model-b-gpio-40-pin-block-pinout