Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Разработка
  3. Java
  4. Pi4J некорректно работает с PI5 в Java проекте

Pi4J некорректно работает с PI5 в Java проекте

Запланировано Прикреплена Закрыта Перенесена Java
5 Сообщения 2 Posters 71 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • K Не в сети
    K Не в сети
    Kvazarrius
    написал в отредактировано Kvazarrius
    #1

    Вот скрипт на Python который успешно включает/выключает реле

    import RPi.GPIO as GPIO
    import time
    
    channel = 27
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(channel, GPIO.OUT)
    def motor_on(pin):
        GPIO.output(pin, GPIO.HIGH)
    def motor_off(pin):
        GPIO.output(pin, GPIO.LOW)
    if __name__ == '__main__':
        try:
            motor_on(channel)
            time.sleep(1)
            motor_off(channel)
            time.sleep(1)
            GPIO.cleanup()
        except KeyboardInterrupt:
           GPIO.cleanup()   
    

    Вот аналогичный java код, но при его исполнении реле включается и намертво зависает во включенном положении. Невозможно снять сигнал в 27 пина (и любого другого)

    import com.pi4j.context.Context;
    import com.pi4j.Pi4J;
    import com.pi4j.io.gpio.digital.DigitalOutput;
    import com.pi4j.io.gpio.digital.DigitalOutputConfig;
    import com.pi4j.io.gpio.digital.DigitalState;
    
    public class Main {
        public static void main(String[] args) throws InterruptedException {
            Context pi4j = Pi4J.newAutoContext();
    
            DigitalOutputConfig config = DigitalOutput.newConfigBuilder(pi4j)
                    .id("LED")
                    .name("Simple LED Control")
                    .address(27)
                    .shutdown(DigitalState.LOW)
                    .initial(DigitalState.LOW)
                    .build();
    
            DigitalOutput led = pi4j.create(config);
    
            led.state(DigitalState.HIGH);
            Thread.sleep(1000);
            led.state(DigitalState.LOW);
    
            pi4j.shutdown();
        }
    }
    

    Какие есть соображения на этот счет?

    Чёрный ЛукичЧ 1 ответ Последний ответ
    0
    • Чёрный ЛукичЧ Не в сети
      Чёрный ЛукичЧ Не в сети
      Чёрный Лукич
      replied to Kvazarrius on отредактировано
      #2

      @Kvazarrius а модель RasPi какая?

      K 1 ответ Последний ответ
      0
      • K Не в сети
        K Не в сети
        Kvazarrius
        replied to Чёрный Лукич on отредактировано
        #3

        @Чёрный-Лукич
        Raspberry Pi 5 8GB
        Процессор Broadcom BCM2712
        ОС стоит ихняя
        думал дело в реле - перебрал весь возможный код, в.т.ч. с оффициального сайта Pi4J https://www.pi4j.com/documentation/io-examples/digital-output/
        результат один
        Потом нашел питоновский скрипт - работает как часы

        Чёрный ЛукичЧ 1 ответ Последний ответ
        0
        • Чёрный ЛукичЧ Не в сети
          Чёрный ЛукичЧ Не в сети
          Чёрный Лукич
          replied to Kvazarrius on отредактировано Чёрный Лукич
          #4

          @Kvazarrius в Raspberry Pi5 работу с GPIO вынесли с процессора на отдельный чип RP1,
          соответственно многие старые GPIO либы, которые работали на 4ке либо отвалились, либо работают некорректно

          Pi4J надо обновить до версии 2.5.0 и должно заработать

          Screenshot from 2025-01-09 14-49-51.png

          K 1 ответ Последний ответ
          0
          • K Не в сети
            K Не в сети
            Kvazarrius
            replied to Чёрный Лукич on отредактировано
            #5

            @Чёрный-Лукич изначально я использовал версию 2.7.0
            даунгрейд до 2.6.0, 2.5.0. ожидаемо, не помог

                implementation ("com.pi4j:pi4j-core:2.6.0")
                implementation ("com.pi4j:pi4j-plugin-raspberrypi:2.6.0")
                implementation ("com.pi4j:pi4j-plugin-gpiod:2.6.0")
            
            1 ответ Последний ответ
            0

            • Войти

            • Нет учётной записи? Зарегистрироваться

            • Login or register to search.
            • Первое сообщение
              Последнее сообщение
            0
            • Категории
            • Главная
            • Документация
            • Последние
            • Пользователи