- Modulação por largura de pulso (PWM)
- Programando ATtiny13 usando Arduino
- Componentes necessários
- Diagrama de circuito e funcionamento
O servo motor funciona com base na Modulação por Largura de Pulso (PWM) e seu ângulo de rotação é controlado pela duração do pulso aplicado ao seu pino de controle. Aqui neste tutorial iremos controlar um servo motor com microcontrolador ATtiny13 usando a técnica PWM. Portanto, antes de prosseguirmos, primeiro aprenderemos sobre PWM, servo motor e como programar ATtiny13 com a placa Arduino.
Modulação por largura de pulso (PWM)
A modulação por largura de pulso (PWM) é definida como um método para gerar um sinal analógico usando uma fonte digital. Um sinal PWM consiste em dois componentes principais - ciclo de serviço e frequência. Esses componentes definem seu comportamento. O ciclo de trabalho descreve a quantidade de tempo que o sinal está em um estado alto. É indicado como uma porcentagem do tempo total necessário para completar um ciclo.
Ciclo de trabalho = tempo para ligar / (tempo para ligar + tempo para desligar)
A frequência define quão rápido o PWM completa um ciclo e quão rápido o sinal muda entre os estados alto e baixo. Uma frequência de 100 Hz significa 100 ciclos por segundo. Ao ligar e desligar um sinal digital em uma taxa rápida e com um certo ciclo de trabalho, a saída aparecerá como um sinal analógico de tensão constante. Um dos poderosos benefícios do PWM é que a perda de energia é mínima.
Todos os servo motores trabalham diretamente com alimentação de + 5V, mas temos que ter cuidado com a quantidade de corrente que o motor consumiria. Se estivermos usando mais de dois servo motores, um servo blindado adequado deve ser projetado.
Antes de conectar o servo ao Attiny13, você pode testar o seu servo com a ajuda deste circuito testador do servo motor. Aqui temos um servo motor em interface com muitos microcontroladores:
- Servo motor de interface com ARM7-LPC2148
- Servo motor de interface com MSP430G2
- Controlando vários servo motores com Arduino
- Interface Servo Motor com Microcontrolador PIC usando MPLAB e XC8
- Controle servo motor com Raspberry Pi
- Controle do servo motor com Arduino Due
- Servo motor de interface com o microcontrolador AVR Atmega16
Programando ATtiny13 usando Arduino
Attiny13 pode ser programado usando Arduino Uno ou qualquer outra placa Arduino. Conecte o Attiny13 ao Arduino Uno conforme mostrado na figura abaixo.
- Arduino 5V - ATtiny13 pino 8
- Arduino GND - ATtiny13 pino 4
- Arduino pino 13 - ATtiny13 pino 7
- Arduino pino 12 - ATtiny13 pino 6
- Arduino pino 11 - ATtiny13 pino 5
- Arduino pino 10 - ATtiny13 pino 1
Arduino é definido como um programador para programar ATtiny13. Isso é feito carregando o esboço do ArduinoISP para o Arduino. Este esboço do Arduino está disponível nos exemplos no IDE do Arduino. Abra o IDE do Arduino e vá para Arquivos> Exemplos> ArduinoISP .
Agora o programa para ArduinoISP aparecerá. Faça upload do programa para o Arduino Uno.
O Arduino Uno agora está pronto para programar Attiny13. Mas temos que configurar o Attiny instalando seus arquivos principais. Para fazer isso, vá para Arquivo >> Preferências no IDE Arduino
Em seguida, uma nova janela aparecerá. E em " URL de gerente de placa adicional" adicione o link abaixo e clique em "OK".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Agora, em seu IDE Arduino, vá para Ferramentas >> Placa >> Gerenciador de placas
Em seguida, outra janela aparecerá onde na caixa de pesquisa digite 'Attiny', então você obterá “DIY ATtiny” e clique no botão 'instalar' (já instalei, é por isso que o botão de instalação na cor cinza)
Para começar a programar o ATtiny 13, devemos gravar o Bootloader nele. Para isso, vá para Ferramentas> Placa> ATtiny13.
Agora vá para Ferramentas> Versão do processador e verifique se a versão correta do ATtiny está selecionada. Selecione ATtiny13 ou ATtiny13a dependendo do seu chip.
Em seguida, clique no botão Gravar bootloader na parte inferior do menu Ferramentas.
Após gravar o bootloader, o ATtiny está pronto para ser programado. Agora você pode carregar seu programa.
Componentes necessários
- Microcontrolador ATtiny13
- Servo motor
- Potenciômetro
- Bateria de + 5V
- IDE Arduino
- Fios de conexão
Diagrama de circuito e funcionamento
O diagrama de circuito para controlar um servo motor usando potenciômetro com ATtiny13 é fornecido abaixo.
Abaixo estão as conexões
- Conecte o pino de controle do servo motor ao pino 5 do ATtiny13
- Conecte o terra do servo motor ao pino 4 do ATtiny13
- Conecte o VCC do servo motor ao pino 8 do ATtiny13
- Conecte o pino do meio do potenciômetro ao pino 7 do ATtiny13
- Conecte o primeiro e o terceiro pinos do potenciômetro ao VCC e ao GND.
- Conecte o positivo da bateria de + 5V ao pino 8 do ATtiny13
- Conecte o negativo da bateria de + 5V ao pino 4 do ATtiny13
Um potenciômetro é conectado ao pino 7 (PB2) do ATtiny13 e o fio de controle do servo motor é conectado ao pino 5 (PB0).
Aqui, o valor do potenciômetro é lido e convertido para um valor entre 0 e 180. Em seguida, esse valor de ângulo é convertido em microssegundos e um pulso é dado ao pino de controle do servo motor com o atraso de microssegundos calculado. Agora o servo motor girará de acordo com o valor do potenciômetro, conforme demonstrado no vídeo abaixo.