{"id":72,"date":"2025-09-30T11:05:44","date_gmt":"2025-09-30T14:05:44","guid":{"rendered":"http:\/\/educate.poa.ifrs.edu.br\/?page_id=72"},"modified":"2025-09-30T11:05:44","modified_gmt":"2025-09-30T14:05:44","slug":"servo-motor-e-potenciometro-a","status":"publish","type":"page","link":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/servo-motor-e-potenciometro-a\/","title":{"rendered":"Servo Motor e Potenci\u00f4metro (A)"},"content":{"rendered":"\n<p><strong>Controlando o movimento com precis\u00e3o<\/strong>.<\/p>\n\n\n\n<p>Nesta atividade, vamos construir um sistema de controle direto, onde o giro de um simples bot\u00e3o (o potenci\u00f4metro) ser\u00e1 traduzido em um movimento preciso de um motor (o servomotor). \u00c9 a base para a cria\u00e7\u00e3o de bra\u00e7os rob\u00f3ticos, sistemas de dire\u00e7\u00e3o e qualquer projeto que exija controle de posi\u00e7\u00e3o.<\/p>\n\n\n\n<p>Este projeto \u00e9 uma introdu\u00e7\u00e3o essencial \u00e0 leitura de sensores anal\u00f3gicos e ao controle de atuadores, mostrando de forma imediata e tang\u00edvel como podemos criar uma interface de controle para nossos rob\u00f4s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Roteiro para Professores (Foco no Aprofundamento T\u00e9cnico)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Objetivo da Atividade:<\/strong> Implementar um sistema de controle anal\u00f3gico em tempo real, utilizando a leitura de um potenci\u00f4metro (<code>analogRead<\/code>) para definir o \u00e2ngulo de um servomotor (<code>servo.write<\/code>), aplicando a fun\u00e7\u00e3o de mapeamento linear (<code>map<\/code>) para compatibilizar as escalas dos componentes.<\/li>\n\n\n\n<li><strong>Conceitos Tecnol\u00f3gicos Fundamentais:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Potenci\u00f4metro (Divisor de Tens\u00e3o):<\/strong> Entender como o potenci\u00f4metro funciona como um divisor de tens\u00e3o vari\u00e1vel, fornecendo uma voltagem entre 0V e 5V a um pino anal\u00f3gico.<\/li>\n\n\n\n<li><strong><code>analogRead()<\/code>:<\/strong> Fun\u00e7\u00e3o que l\u00ea a voltagem em um pino anal\u00f3gico e a converte para um valor inteiro entre 0 (para 0V) e 1023 (para 5V).<\/li>\n\n\n\n<li><strong><code>map(valor, min_entrada, max_entrada, min_saida, max_saida)<\/code>:<\/strong> Fun\u00e7\u00e3o essencial que re-escala um n\u00famero de uma faixa para outra. Neste caso, converte a leitura do potenci\u00f4metro (0-1023) para o \u00e2ngulo do servo (0-180).<\/li>\n\n\n\n<li><strong><code>servo.write()<\/code>:<\/strong> Fun\u00e7\u00e3o da biblioteca <code>Servo.h<\/code> que envia um sinal PWM ao servo para que ele se mova para o \u00e2ngulo especificado.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Princ\u00edpio L\u00f3gico:<\/strong> O potenci\u00f4metro fornece uma leitura anal\u00f3gica na faixa de 0 a 1023. O servomotor, por sua vez, opera com \u00e2ngulos na faixa de 0 a 180 graus. A fun\u00e7\u00e3o <code>map()<\/code> \u00e9 a ponte entre esses dois mundos: ela pega o valor lido do potenci\u00f4metro e o converte proporcionalmente para um valor dentro da faixa de \u00e2ngulos do servo, criando um link de controle direto e intuitivo.<\/li>\n\n\n\n<li><strong>Guia de Solu\u00e7\u00e3o de Problemas (Troubleshooting):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Servo com movimento &#8220;nervoso&#8221; ou tremendo:<\/strong> A leitura do potenci\u00f4metro pode ser inst\u00e1vel (&#8220;ru\u00eddo&#8221;). Um pequeno <code>delay(15)<\/code> no final do loop, como no exemplo, geralmente resolve. Em casos mais severos, pode ser necess\u00e1rio um pequeno capacitor no potenci\u00f4metro ou algoritmos de suaviza\u00e7\u00e3o de software.<\/li>\n\n\n\n<li><strong>Servo n\u00e3o atinge a amplitude completa (0-180\u00ba):<\/strong> Verifique a fia\u00e7\u00e3o do potenci\u00f4metro. Se os pinos de 5V e GND estiverem invertidos, o movimento pode n\u00e3o funcionar corretamente. Alguns servos tamb\u00e9m t\u00eam limites f\u00edsicos um pouco menores que 180 graus.<\/li>\n\n\n\n<li><strong>Movimento do servo est\u00e1 invertido em rela\u00e7\u00e3o ao potenci\u00f4metro:<\/strong> Solu\u00e7\u00e3o simples no c\u00f3digo. Inverta os valores de sa\u00edda na fun\u00e7\u00e3o <code>map()<\/code>. Mude de <code>map(valorPot, 0, 1023, 0, 180);<\/code> para <code>map(valorPot, 0, 1023, 180, 0);<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Desafio Extra (N\u00edvel Avan\u00e7ado):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Limitar o Alcance:<\/strong> Modifique a fun\u00e7\u00e3o <code>map()<\/code> para que o giro completo do potenci\u00f4metro controle o servo apenas em uma faixa limitada, por exemplo, entre 45 e 135 graus. Isso \u00e9 fundamental para mecanismos com limites f\u00edsicos. Exemplo: <code>map(valorPot, 0, 1023, 45, 135);<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Materiais Necess\u00e1rios:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Hardware:<\/strong> SmartMotor com Servo Motor (Placa B) <strong>OU<\/strong> (Kit Arduino, Protoboard, Servo Motor, Potenci\u00f4metro).<\/li>\n\n\n\n<li><strong>Software:<\/strong> Arduino IDE e\/ou conta na plataforma TinkerCAD.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Possibilidades de Aplica\u00e7\u00e3o e Expans\u00e3o:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Interface de Controle para Bra\u00e7os Rob\u00f3ticos:<\/strong> Cada junta de um bra\u00e7o pode ser controlada por um potenci\u00f4metro.<\/li>\n\n\n\n<li><strong>Sistema de Dire\u00e7\u00e3o (Joystick Simples):<\/strong> Usar o sistema para controlar a dire\u00e7\u00e3o de um ve\u00edculo rob\u00f3tico.<\/li>\n\n\n\n<li><strong>Painel de Controle para Animatr\u00f4nicos:<\/strong> Criar um painel com v\u00e1rios potenci\u00f4metros para controlar diferentes partes de um boneco.<\/li>\n\n\n\n<li><strong>Controle de Par\u00e2metros:<\/strong> Usar o potenci\u00f4metro n\u00e3o para controlar posi\u00e7\u00e3o, mas para ajustar em tempo real outras vari\u00e1veis de um programa, como a velocidade de um pisca-pisca ou a sensibilidade de outro sensor.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Programa\u00e7\u00e3o Sugerida<br><\/strong>\/\/ Inclui a biblioteca para controle de servomotores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">include<\/h3>\n\n\n\n<p>\/\/ Cria um objeto &#8216;meuServo&#8217; para representar nosso motor.<br>Servo meuServo;<\/p>\n\n\n\n<p>\/\/ Define o pino anal\u00f3gico onde o potenci\u00f4metro est\u00e1 conectado.<br>const int pinoPot = A0;<\/p>\n\n\n\n<p>void setup() {<br>\/\/ Anexa o objeto servo ao pino digital 9 (que suporta PWM).<br>meuServo.attach(9);<br>}<\/p>\n\n\n\n<p>void loop() {<br>\/\/ 1. L\u00ea o valor do potenci\u00f4metro (um n\u00famero de 0 a 1023).<br>int valorPot = analogRead(pinoPot);<\/p>\n\n\n\n<p>\/\/ 2. Mapeia\/converte o valor lido (0-1023) para a escala de \u00e2ngulos do servo (0-180).<br>int angulo = map(valorPot, 0, 1023, 0, 180);<\/p>\n\n\n\n<p>\/\/ 3. Comanda o servo para se mover para o \u00e2ngulo calculado.<br>meuServo.write(angulo);<\/p>\n\n\n\n<p>\/\/ Um pequeno delay para estabilizar a leitura e o movimento.<br>delay(15);<br>}<\/p>\n\n\n\n<p><strong>Esquem\u00e1tico Eletr\u00f4nico<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/gfbilhalva4.wordpress.com\/wp-content\/uploads\/2024\/01\/image-17.png?w=1024\" alt=\"\" class=\"wp-image-151\"\/><\/figure>\n\n\n\n<p><strong>SmartMotors<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/gfbilhalva4.wordpress.com\/wp-content\/uploads\/2024\/01\/image-6.png?w=1024\" alt=\"\" class=\"wp-image-80\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Controlando o movimento com precis\u00e3o. Nesta atividade, vamos construir um sistema de controle direto, onde o giro de um simples bot\u00e3o (o potenci\u00f4metro) ser\u00e1 traduzido em um movimento preciso de um motor (o servomotor). \u00c9 a base para a cria\u00e7\u00e3o de bra\u00e7os rob\u00f3ticos, sistemas de dire\u00e7\u00e3o e qualquer projeto que exija controle de posi\u00e7\u00e3o. Este [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-72","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/pages\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":1,"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/pages\/72\/revisions"}],"predecessor-version":[{"id":75,"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/pages\/72\/revisions\/75"}],"wp:attachment":[{"href":"http:\/\/educate.poa.ifrs.edu.br\/index.php\/wp-json\/wp\/v2\/media?parent=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}