Publicado 2026-03-10
Você possui um SG90servona sua mão e quer que ele se mova. Você pode abrir o software de programação e ficar de frente para a caixa de código em branco. Sua mente está uma bagunça? Não sei o que fazer na primeira etapa, mas o código fica preso no meio da escrita? Na verdade, contanto que primeiro analisemos o fluxograma no papel ou mentalmente, escrever código é tão fácil quanto seguir uma receita.
Desenhar o fluxograma do SG90 não é tão misterioso. Para ser franco, significa desenhar os pensamentos em sua mente usando molduras e setas. Imagine que você quer oservovirar da esquerda para a direita e vice-versa. O primeiro passo do fluxograma é sempre “iniciar”, seguido de “inicialização”, que consiste em informar ao microcontrolador qual pino deve ser conectado aoservoe quão rápido deve ser. O próximo passo é "girar o servo em 90 graus", desenhar uma caixa de processamento, depois "esperar 1 segundo" e, em seguida, desenhar uma caixa de processamento "girar para 0 graus". Por fim, use uma seta para voltar e formar um loop ou "terminar" diretamente. Escreva cada etapa com clareza e o código será traduzido de acordo com essa lógica.
O programa está escrito, mas o servo não se move. Esta pode ser a coisa mais frustrante. Não se preocupe, nove em cada dez vezes, falta uma etapa importante no fluxograma - a fonte de alimentação. Embora o SG90 seja pequeno, ele também é um motor e não pode ser acionado pela corrente de um microcontrolador. No seu fluxograma, você precisa adicionar a etapa "Verificar fonte de alimentação externa" após "Inicialização". ️A solução é muito simples, conecte o fio vermelho do servo ao 5V, o fio marrom ao terra e o fio amarelo ao sinal. Se ainda assim não funcionar, verifique se a onda PWM correta está definida em seu fluxograma. O SG90 geralmente requer uma frequência de 50 Hz, que é um período de 20 ms, e o tempo de alto nível está entre 0,5 ms e 2,5 ms. Nenhuma dessas condições pode faltar no fluxograma.
Por que meu servo vai para 60 graus quando é girado para 45 graus? Este é provavelmente um problema com a lógica de cálculo do seu fluxograma. O SG90 que usamos controla o ângulo alterando a duração do nível alto. Uma abordagem mais precisa é não memorizar mecanicamente 0 graus é 0,5 ms e 180 graus é 2,5 ms. Você pode primeiro fazer um link de "calibração" no fluxograma. Por exemplo, primeiro você envia um pulso de 0,5 ms e mede o ângulo real, depois envia um pulso de 2,5 ms e mede novamente. Faça uma conversão linear entre esses dois ângulos reais e os valores teóricos, e coloque-os em seu programa, para que você possa acertá-los onde quiser. Muitos pequenos erros são causados pelo fato de que as diferenças individuais reais não são consideradas no fluxograma.
Finalmente começou a girar, mas o servo tremia como palha e o som era áspero. O problema geralmente reside no fato de o design do seu processo ser muito "áspero". Você deixa o servo saltar diretamente de 0 graus para 180 graus instantaneamente? É como pedir a uma pessoa que corra da porta de sua casa até a porta de sua comunidade num instante. Ele definitivamente tropeçará alguns passos. A solução é adicionar “transições suaves” ao fluxograma. Por exemplo, se você deseja que o servo gire de 0 a 90 graus, você pode dividi-lo em 10 etapas, girar 9 graus a cada vez e adicionar um atraso de 10 milissegundos entre cada etapa. No fluxograma, isso é refletido como uma estrutura de loop: defina o ângulo alvo, calcule a diferença entre o ângulo atual e o ângulo alvo e, se a diferença for maior que 1 grau, dê outro passo. Com este design, o mecanismo de direção se move com muito mais suavidade.
Se o seu projeto exigir que o servo execute repetidamente uma série de ações, como girar 30 graus primeiro, esperar um pouco, depois girar 120 graus e depois voltar. Nunca escreva uma longa lista de códigos em um fluxograma. Uma abordagem melhor seria introduzir o conceito de “máquina de estado”. Você pode definir "estado 0" como girar 30 graus, "estado 1" como esperar 1 segundo e "estado 2" como girar 120 graus. O programa principal faz apenas uma coisa: determinar em que estado se encontra atualmente, executar a ação correspondente a esse estado e decidir qual será o próximo estado. Com este design, seu fluxograma ficará muito claro. Se quiser adicionar ou modificar uma ação, você só precisa alterar o estado e as condições de salto sem tocar em todo o programa.
Quer usar um microcontrolador para controlar vários SG90s para que eles possam se mover à sua maneira? Neste momento, o desenho do fluxograma testará seu nível. Se você controlá-los um por um, descobrirá que quando o segundo servo está prestes a se mover, o primeiro parou e eles não podem se mover “ao mesmo tempo”. O truque é não deixar o programa “ficar preso” no fluxograma esperando que um determinado servo termine de girar. Você pode atualizar o sinal PWM de cada servo em uma interrupção temporizada. No loop principal, ele é responsável apenas por calcular o próximo ângulo alvo de cada servo. Assim como o regente de uma sinfonia, ele não precisa tocar sozinho, basta dar a cada músico um sinal de partida no momento certo. Seu fluxograma também deve ser desenhado assim: um é responsável pelo cálculo e tomada de decisão, e o outro (rotina de serviço de interrupção) é responsável pela execução precisa. Desta forma, dez ou oito servos podem ser usados com sucesso.
Qual é o problema mais problemático que você encontra ao trabalhar em um projeto de caixa de direção? Venha bater um papo na área de comentários, talvez eu possa te ajudar a otimizar seu fluxograma. Se você achar este artigo útil, não se esqueça de curtir e compartilhá-lo para que mais amigos que jogam servos possam vê-lo.
Hora de atualização: 10/03/2026
Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.