Como usar a biblioteca ServoTimer2 (explicação simples) Varredura do servo
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Introdução
Tenho tentado fazer um robô humanóide recentemente - o que significa lidar com servo motores. Tudo funcionou perfeitamente antes de eu tentar fazer o robô FALAR. Quando precisei usar a biblioteca TMRpcm. Mas existem algumas bibliotecas como
# TMRpcm.h # VirtualWire.h
são bibliotecas que usam o Timer1 do Arduino. Parece que você não pode usar dois dispositivos simultaneamente onde ambos usam o mesmo temporizador ... Então, se meu robô falar, os servos não funcionam. Porque o Servo.h e o TMRpcm funcionam no Arduino TImer1. O que é uma bagunça. Se você quiser que ambos funcionem, você terá que usar outra biblioteca para servos. Qual é a biblioteca ServoTimer2? Isso usa o Timer2 no Arduino ... Infelizmente na internet não encontrei nenhum tutorial para entender como essa biblioteca ServoTimer2 realmente funciona e como usá-la no código. Então, decidi fazer um tutorial para que pessoas como eu possam entender melhor. Estaremos usando um servo motor com esta biblioteca e faremos um código de varredura Servo simples
Você pode assistir ao vídeo para entender melhor.
Etapa 1:Peças e montagem:
A parte principal é um servo motor.
Estou usando um micro servo sg90, qualquer modelo está bem.
Em seguida, pegue um braço servo como na foto 2 e cole-o em um papelão rígido (isso é apenas para obter uma boa visibilidade do grau) e, em seguida, adicione o braço ao servo motor como na foto 4.
Etapa 2:Baixe e adicione a biblioteca ServoTimer2 ao Arduino
Em primeiro lugar, você terá que baixar a biblioteca aqui https://github.com/nabontra/ServoTimer2 e colá-la na pasta da biblioteca do Arduino.
Em seguida, vá para sketch> include library> add zip.file da pasta de biblioteca.
Agora você está pronto para ir.
Etapa 3:construir o circuito simples
Esta é a parte mais fácil
- Cabo vermelho do servo para Arduino vcc (5v)
- cinza - Gnd
- Orange - digital 6
Etapa 4:o código.
Antes de conhecermos o código do ServoTimer2, vamos dar uma olhada na varredura da biblioteca Servo.h.
(o motor irá girar de 0 graus a 90 graus - espere 1 segundo - então a 180 graus - espere 1 segundo)
#include Servo servo1; void setup () {servo1.attach (6); // coloque seu código de configuração aqui, para executar uma vez} void loop () {// coloque seu código principal aqui, para executar repetidamente:servo1.write (0); delay (1000); servo1.write (90); delay ( 1000); servo1.write (180); atraso (1000);}
Como você pode ver nesta biblioteca, se quisermos girar um Servo para uma determinada posição, temos que apenas escrever o grau e o servo se sairá bem. Mas na biblioteca ServoTimer2 devemos escrever a largura de pulso do servo e o servo se move para aquela posição usando isso. Mais comumente, 1500 significa 90 graus. A largura de pulso máxima é 2250 e a mínima é 750. O que significa que 750 é para 0 graus e 2250 é para 180 graus. Mas deixe-me dizer a você, isso varia de servo para servo. Basta enviar seus valores e ver o que acontece. Não se preocupe, isso não vai destruir ou danificar um pouco o seu servo motor.
Agora farei o mesmo código para o ServoTimer 2 e, assim, você obterá quais são as diferenças reais.
#include "ServoTimer2.h" ServoTimer2 servo1; void setup () {servo1.attach (6); } void loop () {// coloque seu código principal aqui, para executar repetidamente:servo1.write (750); // largura mínima de pulso para 0 degreedelay (1000); servo1.write (1500); // largura de pulso para 90 degreedelay (1000); servo1.write (2250); // largura máxima de pulso por cerca de 180 degreedelay (1000);}
Agora é só ligar o arduino e ver com uma escala de graus para qual valor o quanto o servo gira. E ao fazer isso, você pode fazer seu projeto funcionar. Happy Making.o 2700 para fazê-lo.
Etapa 5:por último, ligue o Arduino e experimente
Agora é só ligar o arduino e ver com uma escala de graus para qual valor o quanto o servo gira. E comprando fazendo isso, você pode fazer seu projeto andar. Happy Making.
Código
- Servo seep.code
- ServoTimer2.sweep.code
Servo seep.code C / C ++
#includeServo servo1; void setup () {servo1.attach (6); // coloque seu código de configuração aqui, para executar uma vez} void loop () {// coloque seu código principal aqui, para executar repetidamente:servo1.write (0); delay (1000); servo1.write (90); delay ( 1000); servo1.write (180); atraso (1000);}
ServoTimer2.sweep.code C / C ++
#include "ServoTimer2.h" ServoTimer2 servo1; void setup () {servo1.attach (6); } void loop () {// coloque seu código principal aqui, para executar repetidamente:servo1.write (750); // largura mínima de pulso para 0 degreedelay (1000); servo1.write (1500); // largura de pulso para 90 degreedelay (1000); servo1.write (2250); // largura máxima de pulso por cerca de 180 degreedelay (1000);}
Esquemas
ServoTimer2.sweep.code
https://github.com/ashraf-minhaj/Arduino-ServoTimer2-basic-sweep-/tree/code-sweepProcesso de manufatura
- Como usamos o molibdênio?
- Como fazer uma plataforma de robô Arduino + Raspberry Pi
- Robô Pi Simples
- Como fazer fibra de vidro
- Função realloc() na Biblioteca C:Como usar? Sintaxe e Exemplo
- Função free() na biblioteca C:Como usar? Aprenda com o Exemplo
- Quão fácil é usar um termistor ?!
- Como fazer uma animação de corte no Solidworks
- Como fazer um protótipo
- Como usar um moedor de corte