繁体   English   中英

Raspberry pi闪烁LED问题 - Python与Java

[英]Raspberry pi flashing LED issue - Python vs Java

我正在尝试使用我在网上找到的一些代码在树莓派上制作LED灯闪光(我知道 - 不是最好但是它是一个教程网站)

当我运行以下python代码时,LED指示灯闪烁;

import RPi.GPIO as GPIO
import time
pinNum = 4
GPIO.setmode(GPIO.BCM) #numbering scheme that corresponds to breakout board and pin layout
GPIO.setup(pinNum,GPIO.OUT) #replace pinNum with whatever pin you used, this sets up that pin as an output
#set LED to flash forever
while True:
  GPIO.output(pinNum,GPIO.HIGH)
  time.sleep(0.5)
  GPIO.output(pinNum,GPIO.LOW)
  time.sleep(0.5)

当我运行以下应该执行相同操作的Java代码时 - 所有我到达控制台的是我添加的打印语句 - 没有闪烁的灯光

import com.pi4j.io.gpio.GpioController;  
 import com.pi4j.io.gpio.GpioFactory;  
 import com.pi4j.io.gpio.GpioPinDigitalOutput;  
 import com.pi4j.io.gpio.PinState;  
 import com.pi4j.io.gpio.RaspiPin;  

 public class ControlGpioExample {  
  public static void main(String[] args) throws InterruptedException {  
     final GpioController gpio = GpioFactory.getInstance();  
     final GpioPinDigitalOutput ledPin = gpio.provisionDigitalOutputPin(RaspiPin
.GPIO_04, "MyLED", PinState.LOW);  
     System.out.println("Started");
     try  
     {  
       while(true)  
       {
         System.out.println(ledPin==null);
         System.out.println("Looping pin now"); 
         ledPin.high();
         System.out.println("Set high called");  
         Thread.sleep(2000);  
         ledPin.low();  
         System.out.println("Set low called");
         Thread.sleep(2000);  
       }  
     }  
     catch(Exception ex)  
     {  
       gpio.shutdown();  
       ex.printStackTrace();  
     }  
   }  
 }  

有谁知道为什么会这样? 我认为逻辑上应该做同样的事情 - 两者都使用pi中相同的GPIO引脚号

谢谢你的帮助

Python GPIO代码中的GPIO_4对应于此图

在此输入图像描述

pi4j对应于下图

在此输入图像描述

所以GPIO_04位于一个完全不同的位置! 您应该更改Java代码以使用GPIO_07

这里解释了为什么布线有不同的引脚名称。 他们都使用GPIO_XX是非常令人困惑的

我相信你的密码可能会关闭。 由于java代码没有抛出异常,我认为其中一个引脚可能被激活,但其索引的索引与LED连接的索引不同。

Pi4J的文档列出了此表的引脚号参考: https ://projects.drogon.net/raspberry-pi/wiringpi/pins/

您的python代码使用BCM索引模式,其端口映射在表中列出。 在这种情况下,BCM端口4映射到Pi4j中的GPIO_7,而不是您在java代码中使用的GPIO_4。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM