Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Блоги сообщества Raspberry Pi
  3. GPIO для чайников (Часть 2)

GPIO для чайников (Часть 2)

Запланировано Прикреплена Закрыта Перенесена Блоги сообщества Raspberry Pi
14 Сообщения 2 Posters 862 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #3

    2.5 Совсем забыл! Я хотел бы порекомендовать сменить наименования портов. Например, следующие имена сделают программу более прозрачной для восприятия:

    #define LED (RPI_GPIO_P1_03)
    #define UPPER (RPI_GPIO_P1_05)
    #define BUTTON (RPI_GPIO_P1_07)
    
    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано pi
      #4

      У меня такой вопрос, в RPi версии rev.V2
      не работает вот это: bcm2835_gpio_pud(PIN_IN, 1);
      на этой строчке компилятор останавливается и рукается, что слишком много параметров.

      Немного залез в мануалы, глянул там такие команды как:

      bcm2835_gpio_pudclc
      bcm2835_gpio_set_pud
      

      Может как-то через гих реализовать?

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано pi
        #5

        Небольшая поправка:
        "Компилируем и запускаем:
        gcc -o button button.c -lrt -lbcm283"
        Нужно:

        gcc -o button button.c -lrt -lbcm2835
        
        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано
          #6

          Просто удалите. Автор писал.

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #7

            Для RPI rev.V2 вместо строчки
            bcm2835_gpio_pud(PIN_IN, 1);
            нужно написать
            bcm2835_gpio_set_pud(PIN_IN, BCM2835_GPIO_PUD_DOWN);

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано pi
              #8

              Еще до того как увидел данную статью поигрался с бесконечным циклом и разным временем работы светодиода. Как будто мысли ваши читал.

              Почему-то программа с кнопкой у меня не компилируется. Пробовал так как тут и с исправленными пинами и для второй и для первой ревизии. И библиотеку уже установил старую - 1.17, а до этого была самая новая, думал в этом дело... и компилировать пробовал по разному... никак не хочет... не пойму в чем дело...

              Вот такие ошибки:

              button.c: In function ‘main’:
              button.c:23:23: error: ‘RPI_V2_GPIO_P1_06’ undeclared (first use in this function)
              button.c:23:23: note: each undeclared identifier is reported only once for each function it appears in
              button.c:24:5: error: too many arguments to function ‘bcm2835_gpio_pud’
              /usr/local/include/bcm2835.h:723:17: note: declared here
              button.c:38:5: error: too many arguments to function ‘bcm2835_gpio_pud’
              /usr/local/include/bcm2835.h:723:17: note: declared here
              
              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано pi
                #9

                Вот такие ошибки:
                button.c: In function ‘main’:

                В начале кода:
                #include <bcm2835.h>
                #include <stdio.h>
                Например для ошибки button.c:23:23 можно так для :

                #define PIN RPI_V2_GPIO_P1_06

                для button.c:24:5:

                ругается что много аргументов которые заданы в скобках () после -- bcm2835_gpio_pud

                надо было их здесь олицетворить...
                но наверное должно быть что-то типа этого:

                bcm2835_gpio_set_pud(PIN, BCM2835_GPIO_PUD_UP)

                В скобках 2 аргумента, это PIN задефайнен см. вверху и макрос BCM2835_GPIO_PUD_UP для Pull-up/down resistor....

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано
                  #10

                  Использование bcm2835_gpio_set_pud() выдавало сообщение: ошибка сегментации. В итоге в схему добавил подтягивающий резистор на 10к, как и говорил Александр Антонович. Все заработало. Работаю на RaspberryPi 3.

                  1 ответ Последний ответ
                  0
                  • piP Не в сети
                    piP Не в сети
                    pi
                    написал в отредактировано
                    #11

                    Всем привет.
                    есть raspberry pi3 нужно собрать монтажную плату и подключить пару кнопок.
                    за вознаграждение.
                    пишите если у кого есть желание.

                    1 ответ Последний ответ
                    0
                    • piP Не в сети
                      piP Не в сети
                      pi
                      написал в отредактировано
                      #12

                      Подскажите как будет выглядеть подключение если кнопка будет иметь внешнее питание 3,3в, а не внутреннее. Например батарейка. Как в таком случае считать сигнал нажатия?

                      1 ответ Последний ответ
                      0
                      • piP Не в сети
                        piP Не в сети
                        pi
                        написал в отредактировано
                        #13

                        Кнопка в принципе не имет питания. Она механически замыкает/размыкает цепь

                        1 ответ Последний ответ
                        0
                        • piP Не в сети
                          piP Не в сети
                          pi
                          написал в отредактировано
                          #14

                          Ок, я не много не так выразился. Есть два провода(с внешнего устройства) плюс и минус. Как мне с них снять сигнал? То-есть там либо есть ток, либо нету. По сути таже кнопка, только питание идет не с пина gpio.

                          1 ответ Последний ответ
                          0
                          • R RomanNV5 сослался на эту тему в

                          • Войти

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

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