Raspberry Pi é uma placa baseada em processador de arquitetura ARM projetada para engenheiros eletrônicos e amadores. O PI é uma das plataformas de desenvolvimento de projeto mais confiáveis que existe agora. Com maior velocidade do processador e 1 GB de RAM, o PI pode ser usado para muitos projetos de alto perfil, como processamento de imagens e Internet das coisas.
Para fazer qualquer um dos projetos de alto nível, é necessário compreender as funções básicas do PI. Estaremos cobrindo todas as funcionalidades básicas do Raspberry Pi nestes tutoriais. Em cada tutorial, discutiremos uma das funções do PI. Ao final da série de tutoriais, você será capaz de realizar projetos de alto nível sozinho. Verifique estes para Introdução à configuração do Raspberry Pi e do Raspberry Pi.
Discutimos LED Blinky, interface de botão e geração de PWM em tutoriais anteriores. Neste tutorial vamos controlar a velocidade de um motor DC usando Raspberry Pi e a técnica PWM. PWM (modulação por largura de pulso) é um método usado para obter tensão variável de uma fonte de alimentação constante. Discutimos sobre PWM no tutorial anterior.
Existem 40 pinos de saída GPIO no Raspberry Pi 2. Mas de 40, apenas 26 pinos GPIO (GPIO2 a GPIO27) podem ser programados. Alguns desses pinos executam algumas funções especiais. Com GPIO especial colocado de lado, temos 17 GPIO restantes. Para saber mais sobre os pinos GPIO, acesse: LED piscando com Raspberry Pi
Cada um desses 17 pinos GPIO pode fornecer no máximo 15 mA. E a soma das correntes de todos os pinos GPIO não pode exceder 50mA. Portanto, podemos extrair um máximo de 3mA em média de cada um desses pinos GPIO. Portanto, não se deve mexer nessas coisas, a menos que saiba o que está fazendo.
Existem pinos de saída de alimentação de + 5 V (Pinos 2 e 4) e + 3,3 V (Pinos 1 e 17) na placa para conectar outros módulos e sensores. Este barramento de alimentação é conectado em paralelo à alimentação do processador. Portanto, extrair alta corrente deste barramento de alimentação afeta o processador. Há um fusível na placa PI que desarmará quando você aplicar alta carga. Você pode desenhar 100mA com segurança do trilho + 3,3V. Estamos falando sobre isso aqui porque; estamos conectando o motor DC a + 3.3V. Com o limite de potência em mente, só podemos conectar o motor de baixa potência aqui, se você quiser acionar o motor de alta potência, considere alimentá-lo com uma fonte de alimentação separada.
Componentes necessários:
Aqui, estamos usando o Raspberry Pi 2 Model B com o Raspbian Jessie OS. Todos os requisitos básicos de hardware e software foram discutidos anteriormente. Você pode consultá-los na introdução do Raspberry Pi, exceto o que precisamos:
- Pinos de conexão
- Resistor 220Ω ou 1KΩ (3)
- Motor DC Pequeno
- Botões (2)
- 2N2222 Transistor
- Diodo 1N4007
- Capacitor- 1000uF
- Tábua de pão
Explicação do circuito:
Como disse antes, não podemos extrair mais de 15mA de nenhum pino GPIO e o motor DC extrai mais de 15mA, então o PWM gerado pelo Raspberry Pi não pode ser alimentado diretamente para o motor DC. Portanto, se conectarmos o motor diretamente ao PI para controle de velocidade, a placa pode ser danificada permanentemente.
Portanto, vamos usar um transistor NPN (2N2222) como um dispositivo de chaveamento. Este transistor aqui aciona o motor DC de alta potência, tomando o sinal PWM de PI. Aqui deve-se prestar atenção que conectar incorretamente o transistor pode carregar muito a placa.
O motor é uma indução e, portanto, ao alternar o motor, experimentamos picos indutivos. Este pico vai aquecer fortemente o transistor, então usaremos o diodo (1N4007) para fornecer proteção ao transistor contra pico indutivo.
Para reduzir as flutuações de tensão, conectaremos um capacitor de 1000uF na fonte de alimentação, conforme mostrado no Diagrama de Circuito.
Explicação de trabalho:
Depois que tudo estiver conectado de acordo com o diagrama de circuito, podemos ligar o PI para escrever o programa em PYHTON.
Vamos falar sobre alguns comandos que vamos usar no programa PYHTON.
Vamos importar o arquivo GPIO da biblioteca, a função abaixo nos permite programar os pinos GPIO do PI. Também estamos renomeando “GPIO” para “IO”, portanto, no programa, sempre que quisermos nos referir aos pinos GPIO, usaremos a palavra 'IO'.
importar RPi.GPIO como IO
Às vezes, quando os pinos GPIO, que estamos tentando usar, podem estar executando algumas outras funções. Nesse caso, receberemos avisos durante a execução do programa. O comando abaixo diz ao PI para ignorar os avisos e prosseguir com o programa.
IO.setwarnings (falso)
Podemos referir os pinos GPIO do PI, tanto pelo número do pino a bordo quanto pelo número da função. Como 'PIN 35' na placa é 'GPIO19'. Portanto, dizemos aqui que vamos representar o pino aqui por '35' ou '19'.
IO.setmode (IO.BCM)
Estamos configurando GPIO19 (ou PIN35) como pino de saída. Obteremos a saída PWM deste pino.
IO.setup (19, IO.IN)
Depois de definir o pino como saída, precisamos configurar o pino como pino de saída PWM, p = IO.PWM (canal de saída, frequência do sinal PWM)
O comando acima é para configurar o canal e também para configurar a frequência do sinal PWM. 'p' aqui é uma variável, pode ser qualquer coisa. Estamos usando GPIO19 como canal de saída PWM. ' frequência do sinal PWM ' foi escolhido 100, pois não queremos ver o LED piscando.
O comando abaixo é usado para iniciar a geração do sinal PWM, ' DUTYCYCLE ' é para definir a taxa de ativação, 0 significa que o LED ficará LIGADO por 0% do tempo, 30 significa que o LED ficará LIGADO por 30% do tempo e 100 significa completamente LIGADO.
p.start (DUTYCYCLE)
Caso a Condição entre colchetes seja verdadeira, as instruções dentro do loop serão executadas uma vez. Portanto, se o pino 26 do GPIO ficar baixo, as instruções dentro do loop IF serão executadas uma vez. Se o pino 26 do GPIO não ficar baixo, as instruções dentro do loop IF não serão executadas.
if (IO.input (26) == Falso):
Enquanto 1: é usado para loop infinito. Com este comando, as instruções dentro deste loop serão executadas continuamente.
Temos todos os comandos necessários para conseguir o controle de velocidade com isso.
Depois de escrever o programa e executá-lo, tudo o que resta é operar o controle. Temos dois botões conectados ao PI; um para aumentar o ciclo de trabalho do sinal PWM e outro para diminuir o ciclo de trabalho do sinal PWM. Ao pressionar um botão, a velocidade do motor DC aumenta e ao pressionar o outro botão, a velocidade do motor DC diminui. Com isso, alcançamos o Controle de Velocidade do Motor DC da Raspberry Pi.
Verifique também:
- Controle de velocidade do motor DC
- Controle de motor DC usando Arduino