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

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

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

    Смотрите 2-ю часть, там про использование порта в режиме ввода.

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

      Я не правильно выразился. Можно ли на вход подать сигнал не верхнего уровня, а на пример 1 В или 1,5 В и определит ли его RPI? И можно ли на выходе получить значение из диапазона 0-3,3 В?

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

        GPIO- это цифровой порт, а значит он умеет оперировать только цифровыми сигналами. Он может быть либо в состоянии "1", либо в "0". Промежуточные значения он не может обработать достоверно и каждый раз вы будете получать непредсказуемый результат. Поэтому, при сопряжении устройств с различными уровнями логики, вы обязательно должны их согласовывать. Работа с GPIO ничем не отличается от работы с другими логическими устройствами. Так что смело набирайте в гугле "согласование логических уровней" и выбирайте для себя наиболее подходящий вам способ. Самый универсальный вариант, это применение специализированных микросхем- трансляторов уровней. Например в вашем случае подойдёт ADG3301, или другие из этой линейки. Можно выполнить согласование и через операционный усилитель, или даже через обыкновенный транзистор. Нам просто нужно усилить сигнал уровнем 1в, до 3,3в. Т.е. нам необходимо расчитать усилитель с коэффициентом усиления 3,3.
        Обратное преобразование с 3,3в к 1в очень легко можно выполнить резистивным делителем напряжения из 2-х резисторов.

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

          Что касается второго вашего вопроса, то опять-же, в логических уровнях нет промежуточных значений, а значит на выходе нельзя получить промежуточные значения напряжений.
          Для решения этой задачи применяются цифро-аналоговые преобразователи. Так же можно применить ШИМ, а к выходу порта подключить интегрирующую цепочку из резистора и конденсатора, а к её выходу- операционный усилитель. Тогда изменяя скважность импульсов, вы сможите на выходе усилителя получать любые напряжения. Без усилителя на выходе интегрирующего звена вы получите напряжение в диапазоне от 0 до 3,3в. Но работать такая схема будет лишь на высокоомной нагрузке. Поэтому в любом случае лучше поставить операционный усилитель, даже если он будет работать в режиме повторителя с коэффициентом усиления 1.

          В общем все этивопросы напрямую относятся к схемотехнике и одинаково решаются для всех логических устройств, в том числе и для Raspberry.

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

            Все понял куда копать. Нашел пример с АЦП на микросхеме MCP3008 (http://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi).
            Вы говорили, что в RPI имеется встроенный аппаратный ШИМ, а встроенного АЦП или ЦАП случайно нет?

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

              Нет. ЦАП и АЦП в нём нету.

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

                Через резистивный делитель к примеру можно любое напряжение на выходе получить.

                1.5В на входе должен по идее принять за лог.1

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

                  Все гораздо проще и рациональнее можно сделать...Вот пример http://www.airspayce.com/mikem/bcm2835/pwm_8c-example.html через реализованный через библиотечный CLOCK_DIVIDER.. Можно задать любую частоту работы для устройства...надо обновится до версии bcm2835 1.30...

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

                    В этом примере используете 18 порт, он является плюсовым как я понял, а в 1 части со свтеодиодом был использован отрицательный порт. Вопрос такой, как узнать или где можно посмотреть сколько еще имеется на raspberry портов таких как 18?

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

                      http://raspberrypi.ru/gpio_pinout_pi3/

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

                        Странно, что никто не заметил."средний ток будет пропорционален отношению t1 к t2. А именно: Iср=Iн x
                        t1/t2, где Iн- номинальный ток светодиода, который мы благодаря
                        резистору установили в 10мА. При номинальном токе светодиод светится
                        наиболее ярко. А в нашем случае Iср=10 х 2/3 = 6,7мА."А если я установлю время свечения 3 мс, а время несвечения 2 мс, у меня соотношение t1/t2 будет 3/2, значит ток будет в Icp=10 x 3/2 = 15 мА?  Если время несвечения уменьшать еще, то ток будет продолжать расти?Может, все-таки, t1 на Т надо делить? Тем более тогда обратная скважности величина получится.

                        1 ответ Последний ответ
                        0

                        • Войти

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

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