Controlando Servo Motor utilizando o teclado com Arduino e C#

Já faz alguns dias que venho estudando um pouco de eletrônica para o desenvolvimento do meu TCC. Estive pesquisando um pouco sobre microcontroladores e recentemente andei desenvolvendo umas aplicações com o Arduino Duemilanove.

Andei fazendo uns testes com servo motor, e resolvi fazer este tutorial para compartilhar.

Abaixo segue um video que fiz da aplicação em funcionamento.

Para este tutorial é necessário que você saiba um mínimo de programação e já tenha feito alguma coisa com o arduino. Se quiser saber mais acesse o site: www.arduino.cc.

Este projeto nada mais é do que uma interface desenvolvida em C# que permite controlar um servo motor conectado ao arduino a partir das setas direita e esquerda do teclado. Ao final estão os links para download dos projetos que podem ser abertos no Visual Studio (utilizei a versão 2008).
Desenvolvi uma versão mais simples utilizada no tutorial e uma outra um pouco mais completa, os dois projetos estão disponiveis para download no final.

Tentei desenvolver utilizando Java, porém, não consegui compilar no Windows 64 bits. Mas futuramente posto alguma coisa. 😉

Utilizei o servo S3003 da Futaba, mas acredito que não há problema em usar outro modelo.

Abaixo segue uma lista do que utilizei no desenvolvimento:

1º: Conectar o Servo Motor ao Arduino

O Servo Motor que estou utilizando possui um conector com tres fios, um vermelho (5V), um preto (GND) e um branco (responsável pela comunicação com o servo), cada um desses deve ser conectado de acordo com a figura abaixo:

2º: Código para o Arduino e Teste

O programa que será gravado no Arduino, recebe três caracteres através através da comunição serial, por exemplo: se receber “000” o motor ira para 0 graus, se receber “050” para 50 graus, “120” para 120 graus, e assim por diante. É dessa forma que os comandos são enviados para o servo

Note que quando inicio a comunicação Serial utilizando “Serial.begin(9600)”, estou definindo que a taxa de transmissão (baud rate) da porta será de 9600.

Abra a IDE Arduino 0018. Automaticamente ela já inicia com um novo projeto.
Em seguida, utilize o código abaixo e faça o upload para o seu Arduino ou se preferir, faça o download do arquivo no final da página e abra-o na IDE.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Importa a biblioteca Servo.h do arduino
#include <Servo.h>

// Cria uma variavel do tipo Servo que será
// o nosso servo.
Servo servo1;

// Array de char que receberá o comando
// via serial
char buffer[4];

// Variavel que identifica quantos
// caracteres foram recebidos, pois só é
// possível receber um caracter por vez
int received;

void setup(){

  // Define o baud rate (taxa de trasmissão) como 9600
  Serial.begin(9600);

  // Atribui o servo ao pino 8 do Arduino
  servo1.attach(8);

  // Atribui o valor 0 para a variavel received
  received = 0;

  // Na posição 0 do array, atribui o valor '\0'
  // que identifica onde começa o array
  buffer[received] = '\0';
}

void loop(){

  // Verifica se existe alguma entrada de dados
  // disponivel na entrada serial
  if(Serial.available()){

    // Salva os caracteres no array a cada iteração
    buffer[received++] = Serial.read();

    if(received >= (sizeof(buffer)-1)){

      // Imprime na saída serial o valor
      // Apenas para mostrar o valor
      Serial.println(buffer);

      // Converte o valor de "char" para "int"
      int numero = atoi(buffer);

      // Envia o comando para o Servo Motor
      servo1.write(numero);

      // Zera novamente a variavel
      received = 0;
    }

    // Limpa o buffer da entrada serial
    Serial.flush();

  }

}

Após ter feito o upload do código para o Arduino, você pode testar utilizando o Serial Monitor da IDE.
Insira valores entre 0 e 180 utilizando 3 caracteres por exemplo:

Para 0, digite 000
Para 2, digite 002
para 87, digite 087
para 153, digite 153

e assim por diante.

As duas figuras abaixo demonstram como abrir e como utilizar o serial monitor:



3º: Implementação em C#

No código C# utilizamos a Classe “SerialPort” para conectar a porta serial (no meu caso a porta “COM3”) e enviamos o comando desejado através da função “Write()” ou “WriteLine()”, podendo ser uma string, um array de char ou de bytes. Simples não ?… hehe

O código abaixo mostra como abrir a conexão a porta serial “COM3” utilizando o Baud Rate de 9600 (como explicado anteriormente) e enviando a string “Hello World”:


1
2
3
SerialPort porta = new SerialPort("COM3",9600);
porta.Open();
porta.WriteLine("Hello World");

Para saber qual porta você está utilizando, na IDE Arduino 0018 vá no menu Tools->Serial Port, conforme a figura abaixo:

Abaixo segue o código utilizado na classe da Janela que conecta na porta e interage com o Servo Motor utilizando as setas do teclado.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/**
 *
 * Aplicativo desenvolvido para controlar
 * servo motores com Arduino a partir de
 * uma porta serial.
 *
 * Autor: Renato Peterman
 * E-mail: [email protected]
 *
 * Data: 26/07/2010
 *
 */

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace ArduinoSimpleServoControl
{
    public partial class JanelaPrincipal : Form
    {
        // Atributo do tipo SerialPort necessário para abrir a conexão
        private SerialPort porta;

        // Atributo do tipo int que armazenara a posição do motor
        private int posicao;

        public JanelaPrincipal()
        {
            InitializeComponent();

            // Atribui o valor zero a posição
            posicao = 0;

            /* Cria um novo objeto SerialPort
             * Que conecta a porta "COM3"
             * E utiliza um Baud Rate (Taxa de Transmissão de dados) de 9600
             */
            porta = new SerialPort("COM3", 9600);

            //Verifica se a porta não está aberta
            if (!porta.IsOpen)
            {
                // Abre a porta
                porta.Open();

                /* Envia o valor "000", para que o
                 * motor volte para a possição 0
                 */
                porta.WriteLine("000");
            }
        }

        /* Sobrescreve o metódo ProcessCmdKey
         * responsável por processar as entradas
         * do teclado
         */
        protected override bool ProcessCmdKey(ref Message m, Keys keyData)
        {
            bool blnProcess = false;

            /* Verifica se a tecla que está sendo pressiona
             * é a seta Esquerda (Left)
             */
            if (keyData == Keys.Left)
            {
                if (posicao >= 0 && posicao < 180)
                {
                    // Incrementa 10
                    posicao += 10;
                }

                // Aqui serão enviados os dados para a porta.
                if (posicao >= 0 && posicao >= 100)
                {
                    porta.WriteLine(posicao.ToString());
                }
                else
                {
                    porta.WriteLine("0" + posicao.ToString());
                }

                labelGraus.Text = posicao.ToString();

                blnProcess = true;
            }

            /* Verifica se a tecla que está sendo pressiona
             * é a seta Direita (Right)
             */
            if (keyData == Keys.Right)
            {
                if (posicao > 0 && posicao <= 180)
                {
                    // Diminui 10
                    posicao -= 10;
                }

                if (posicao >= 0 && posicao >= 100)
                {
                    porta.WriteLine(posicao.ToString());
                }
                else if (posicao == 0)
                {
                    porta.WriteLine("000");
                }
                else
                {
                    porta.WriteLine("0" + posicao.ToString());
                }

                labelGraus.Text = posicao.ToString();

                blnProcess = true;
            }

            /* Aqui verifica se "blnProcess" for verdadeiro
             * retorna este método, se não chama o metódo pai (super)
             */
            if (blnProcess == true)
            {
                return true;
            }
            else
            {
                return base.ProcessCmdKey(ref m,keyData);
            }

        }
    }
}

Abaixo a aplicação resultante do código acima que mostra o grau de rotação do servo.

No mesmo projeto desenvolvi outra aplicação um pouco mais completa conforme a figura abaixo, os arquivos de ambas estão disponíveis para download no final da página.



4º: Fim

Acho que é isso ai, agora é só divertir e usar a criatividade. 😀

Abaixo segue o link para download do projeto completo, com o projeto para upload no Arduino e as duas aplicações desenvolvidas em C#.

Download do projeto no GitHub

Pra saber como controlar mais de um servo motor na sua aplicação clique aqui.

89 pensou em “Controlando Servo Motor utilizando o teclado com Arduino e C#

    • Olá Aluisio,

      A princípio sim.
      É necessário configurar a porta serial corretamente.
      Já faz um tempo que a aplicação foi compilada, caso não funcione, aconselho a tentar compilar novamente.

  1. Olá amigo, muito interessante o projeto!
    Gostaria de fazer um projeto para controlar uma persiana remotamente, (esquerda / direita ou pra cima / pra baixo) usando um servo-motor. Você poderia me ajudar sobre quais componentes eu devo usar e o código?
    meu email: [email protected]
    Muito obrigado

  2. Renato, legal seu desenvolvimento, parabéns, gostei muito.
    Estou desenvolvendo um sistema onde controlo 6 servo motores com Arduino e C, para um braço robótico. Gostaria de saber com você, se é possível e se for como eu posso fazer para que eu vá movimentando os servos e armazenando na memória os movimentos e depois eu clico em um botão repete, onde ele faz todos os movimentos que eu fiz com ele. Poderia me ajudar ?

  3. boas amigo.
    é o seguinte eu ando a tentar controlar um motor normal de 5 voltes pelo arduino atravez do teclado do computador, ou seja tenho de utilizar o vb.
    mas até agora o que consigo fazer é carrego num botao o motor anda, carrego no outro o motor para, mas o que quero fazer é o que o seu programa faz, carregio na seta e ele anda.
    onte tem o código em vb desse procedimento?
    dá para mandar para o meu mail para estudar o código?
    aguardo respostas, desde já obrigado pela atenção ;]

  4. Olá Renato!

    Sou iniciante com Arduino e sei somente o básico de programação, há como eu utilizar esse principio que você utilizou porém com mais servos e fazendo eles se movimentarem automaticamente ?

    Grato

  5. Boa Noite Renato, Muito Bom seu projeto.
    Estou com um pequeno problema, quando controlo o servo pelo serial monitor do arduino ela gira certo mas quando estou pelo teclado ele gira errado vai e volta sem parar mesmo eu apertando so um lado. Alguem teve esse problema?

    • Peterman parabéns pelos seus projetos.
      Estou com o mesmo problema. Acho que pode ser que alguma coisa está reiniciando o Arduino: diferencial de tensão, corrente etc sei não. E aí Peterman o que vc acha?

      • Olá David e Marcelo,

        Um pouco difícil de saber assim. Mas se pelo serial monitor da ide do arduino ele funciona ok e no código C# que efetua a rotação apresenta o problema, pode ser que o problema esteja no código C# ou na classe que faz a comunicação serial.
        Boa sorte! 😉

        Renato

  6. Boa noite!

    Renato, muito legal seu site, parabéns!

    Cara, estou iniciando com o arduino, portanto comprei uma placa arduino mega 2560 e queria saber se irei conseguir reproduzir seu exemplo na mesma!

    Tenho o .net 2010 e quero fazer uma aplicação onde será necessário passar alguns parâmetros pela interface.

    Queria implementar para web, portanto vou iniciar com o windows form e evoluindo a aplicação ao longo do tempo até conseguir fazer uma aplicação que será possível ler e enviar dados pelo celular, pc, tablet e outros.

    Se for possível, me envie algumas dicas ou links que eu posso implementar usando shield para enviar dados pela internet.

    Atenciosamente,

    Kennedy Sampaio

    • Olá Kennedy,

      Eu particularmente não testei com o mega, mas acredito que consiga sim.
      Não conheço muito de .net, logo, não posso te passar muita coisa, mas essa comunicação com móvel e pc é tranquilo, só conhecer bem a plataforma.
      Qualquer coisa estou a disposição.

      Renato

  7. Boa noite, estou implementando seu projeto num sistema que estou fazendo.. gostaria de conversar mais com voce a respeito disso.. pretendo usar esse seu sistema em C# para utiliza-lo para controlar diversos servo motores (implementar tipo uma caixa para selecionar o servo desejado) me passa seu contato para que possamos conversar a respeito e quem sabe chegar a alguma soluçao.
    Obrigado

    • Olá Moises,

      Você precisa verificar qual erro está dando e debugar o código. Muitas pessoas já utilizaram e não tiveram problemas, provavelmente deve ser algum detalhe no seu código.

  8. Ola Renato, Boa tarde!!

    Gostei muito do que vi no seu site, e como muitos outros mencionaram acima também estou projetando um sistema usando servo motor e arduino Uno.

    O que eu gostaria de confirmar é:

    – Decidi usar o servo motor, por enquanto seram utilizados 4 no meu projeto ( um braço mecânico ), mas o que eu quero mesmo é alem de programar os movimentos deles com entradas de teclado, tentar deixa-los trabalhando sozinhos ( automatiza-los para gerar um movimento especifico)

    Você sabe o que eu preciso estudar para alcançar esse objetivo?

    Sera q preciso simplesmente criar um Loop para determinadas posições do servo?

    Desde ja muito Obrigado meu amigo e parabens pelo site!

    • Olá Douglas, tudo bem ?

      Legal!, acredito que não terá problemas no seu projeto. Procure se informar se o arduino terá corrente suficiente para alimentar os 4 motores, mas acredito que sim.
      Acredito que neste tutorial você terá quase tudo o que é necessário, se você já programa, não terá dificuldades.
      Pra automatizar eles, não sei exatamente o que está querendo fazer, mas se for algo simples, é só fazer isso mesmo que você disse, definir os movimento e deixar pré programado.
      Espero que tenha dado tudo certo, boa sorte no projeto!

  9. Bom dia!
    Renato, preciso fazer o controle de um servomotor através da leitura de um encoder utilizando o arduino, se possível gostaria que me enviasse um Email para tratarmos desse projeto e para que eu possa lhe explicar melhor.

    Obrigado.

    • Olá Priscila,

      Após implementar o projeto de acordo com o código e informar os valores para movimentar o motor.
      Mas se você deseja que o motor gire apenas entre este intervalo de 73º a 90º, acredito que será necessário definir uma condição para isso.

  10. Boa tarde!

    temos um braço mecanico com seis servos, estamos utilizando o arduino master. estamos com problemas em definir a posição e mandar informação para a placa, se colocar o passo dois que vc descreveu acima consigo adiciona mais servos?

  11. oi …. muito bom seu trabalho .. meu projeto é com arduino e um leitor RFID ….. tipo ja consegui recolher os dados com arduino na porta COM 1 … queria saber oq eu faço para jogar esses dados no visual studio (2008) , para comparar com o banco de dados por fim lançar em uma interface … porfavor … se puder me ajuda..

  12. Ola Gostaria de saber se você tem ou teve alguma experiencia utilizando arduino e sdk kinect para movimentar um servo motor atravez dos movimentos das mãos?

  13. Excelente! Ya lo probare y espero me funcione de maravilla, espero no cambiar mucho en la versión visual studio 2010..

    Excelente! Isso prova o que eu espero um grande trabalho, espero não mudar muito na versão visual studio 2010 ..

  14. Caro Renato, estou fazendo testes para fazer meu projeto, tentei fazer esse seu teste com o C#, porem na hora de compilar da um erro:
    expected unqualifiel-id before ‘public’
    e marca a linha 26 do seu codigo acima, nao entendi bem que erro é esse, e nao tô conseguindo compiplar, será q vc pode me ajudar?

    Abraço!

    • Olá Lucas, tudo bem ?

      Você já trabalha com C# ?… faz um tempinho que não mexo com C#, se não estou enganado, parece ser um erro simples, deve ser algo relacionado com sua estrutura de arquivos do projeto.
      Tente, ao invés de copiar toda a classe descrita acima, copie apenas a parte útil do código seguindo a implementação, acredito que vai dar certo.
      Espero ter ajudado.

      Abraço,
      Renato Peterman

        • Olá Danilo,

          Não entendi muito bem a sua pergunta, mas vou tentar responder.
          Se você se refere aqueles mouses e teclados sem fio que geralmente acompanham um dispositivo usb pra comunicação, confesso que nunca vi algo relacionado e não sei como funciona a comunicação.
          Talvez, seja possível realizar essa comunicação utilizando um desses módulos bluetooth pra arduino e um teclado bluetooth.
          Boa sorte!

  15. Muito legal mesmo seu site, parabéns!!! Eu gostaria de receber tb o seu programa com 2 servos, pois estou a construir uma mini ponte levadiça para poder controlar ela por dois servo motor e um arduino, ja comprei o arduino bt que é bluetooth, porem quero tb fazer funcionar pelo adaptador APC 220 de 1 km sendo um no arduino e outro no computador por um adaptador usb. O que puder me ajudar agradeço muito.

  16. Pingback: Controlando dois (ou mais) servo motores com Arduino. | Blog do Renato Peterman

  17. Olá Renato,
    Eu baixe os seus arquivos, eu até consegui conectar essa aplicação em C#, porém da um erro na hora de fazer o upload para o arduino, esse erro mostra algo de errado com o java. Você sabe me dizer porque aconteceu isso?

    • Olá Wanderson,

      Eu desenvolvi usando a IDE 0018, talvez pode ser algum erro quanto a compatibilidade, ou pode ser algum erro com a IDE que você está usando mesmo, tente reinstalar ou atualizar o Java.

      Abraço,
      Renato

      • Consegui fazer o upload para o arduino, realmente era a versão da IDE, porém tive que utilizar a opção Duemilanove mesmo sendo o arduino UNO. Mas ainda não consegui mover meu servo através do teclado. Quando eu seleciono a porta da IDE COM3 e a porta do aplicativo COM3, ele avisa que a porta já está sendo usada. O que eu faço?
        Obg pela atenção!

        • Olá Wanderson,

          Que bom que resolveu.
          Isso deve estar ocorrendo porque ela deve estar em uso mesmo, procure abrir o programa sem estar com o Serial Monitor do IDE aberto. Se não pode ocorrer este tipo de conflito, e verifique se é esta porta mesmo que você deve utilizar.

          Abraço,
          Renato

  18. meu caro muito massa este site!
    gostaria de saber como faço para que o servo motor obedeça os movimentos do mouse, ex: mouse direita = motor direita, mouse esquerda = motor para esquerda. obrigado!

  19. Hi Renato. First of all, congratulations for your project, it’s really interesting. I have readen in comments that you have developed another project to control two servos, is this right? If it is possible, could you send me, please? Thanks a lot.

    • Hello Jose,

      Yes, that´s right, I developed another project to control two servos. Actually, is the same project, but, with a small modification.
      I will send the project to you, and, ASAP I will post the project in.

      Thank´s.

      • Hi Renato, finally I have modified/developed this project to control two servos, and it works very well!!! Now I’m trying to control these two servos trough the net (ie explorer, firefox…), but I don’t Know how to access to the executable (.exe) using explorer. Have you any idea about it? Could you give a hand, please?

        Thanks in advance.

        • Hi Jose,

          I’m glad you’ve managed to develop the application.
          Try to do in the some language like php, java or Asp, the same what you do in the C# (.exe), try to comunicate with the serial port in one of these languages.
          It may be possible.
          Have fun and good lucky !

          Thank’s!

  20. Olá Renato, sou professor de robótica a 3 anos e estou iniciando os meus estudos com arduino, porém eu tenho algumas dúvidas e gostaria que você me ajudasse. Primeiro eu gostaria que você me enviasse essas imagens que você anexou nessa página para meu email, não está abrindo no seu blog. Porque você utiliza o visual basic 2008 se existe a própria IDE do arduino?
    Um abraço!

    • Olá Wanderson, tudo bem ?…

      Eu utilizei a IDE do arduino sim, para desenvolver o programa que vai no Arduino e é responsável por controlar os servos, utilizei o Visual Studio para desenvolver a aplicação em C# que monitora as ações do teclado e se comunica com o Arduino via serial para con.
      Tá tudo ai no tutorial. 😉
      Qualquer dúvida estou a disposição.

      Abraço!

  21. cara teu programa é muito maneiro!!!!
    vc naum saberia como faser um outro programa pra controlar 12 servos e salvar as posiçoes deles e q tenha um outro programinha conpativel q seja o controle…
    muito obrigado e parabens pelo programa!!!

    • Olá Guilherme,

      Obrigado. 😉
      Acredito que com o Arduino Mega seja possivel sim, para 12 servos.
      Utilizando esse código, é possivel adaptar ele para isso, dai vai de você.

      Abraço,
      Renato

  22. Ola boa tarde meu nome é Lucas estou no ultimo ano de engenharia mecatronica e estou fazendo um projeto de controle do sistema de comando das aletas de uma missel, vou usar um arduino mega e servomotores para controle das aletas, porem ñ tenho muita experiencia na programação do arduino queria se fosse possivel da sua ajuda para que eu possa fazer a programação no arduino vou usar 4 servomotores um pra cada aleta! Vi seu blog e as postagens q vc deixou e achei q vc poderia me ajudar se possivel aguardo contato

    Um otimo fim de semana

  23. Good day Renato

    Please send me the source code & scetch for arduino to control 2 servos.
    I did not mannage to edit the c# or scetch to work.
    Please help me with this.
    You mentioned to use pin 8 & 9 in the scetch, so i have wired my servos to pin 8 & 9 in advance.

    Thank you & regards
    Riaan Deyzel
    South Africa

  24. Good day Renato

    I did not mannage to get the second servo working for my project.
    Can you please send me the source code & scetch for your two servo project.
    I will appreciate it very much.

    Thank you & regards.

    • Olá Tiago, aqui no Brasil eu comprei no site Mercado Livre, é um site de leilões e compras muito parecido com o eBay, ai em Portugal não sei onde pode comprar, talvez, você encontre no eBay.co.uk, ai fica mais perto de você ai. Há vários sites sobre Arduino, e também há o site oficial arduino.cc que tem tudo o que você precisa pra iniciar os seus estudos. grande abraço !

  25. Hi Renato
    How are you doing?
    Just checking in to see if you have the source code & Arduino scetch ready to control 2 servos. I am taking my robot out to a show on Sunday, and at the moment it can only look left & right, not up and down yet. Can you perhaps zip the files(Source Code & Aruino sketc) & e-mail it to me if you do not have time to update your website.
    My e-mail address is [email protected]
    Please let me know.

    Thank you & regards
    Riaan

    • Hi Riaan,

      I did a project using two servos, the code is simple to understand, I will send it to you, ok ?…
      The sketch is pratically the same, I did use the port 9 for first servo e port 8 to second servo.

      Regards,
      Renato

  26. Ola caro renato…
    Tem aqui um bom trabalho…

    Gostaria que me pudesse ajudar a fazer o controlo de um servo-motor através do Arduino…
    reparei no seu código, contudo tem ai coisas que ainda nao tive oportunidade de dar na escola ainda…

    caso tivesse disponibiblidade para me dar uma ajudinha agradecia…

    Cumprimentos, falcao…

    caso queira responder pode mandar um email: [email protected]

    Cumprimentos,

  27. Boa noite,
    vc consiguiu desenvolver algo em java?? To tentando fazer meu tcc so que to utilizando java e a bliblioteca rxtx pra fazer a comunicação.

    Abraços

    • Olá Ilan,

      Fiz um projeto que com dois sevomotores, acredito que não é a melhor forma de fazer, mas funcionou legal.
      Posso mandar o projeto pra você se quiser, no projeto estou utilizando dois servos e um lcd, caso não saiba como funciona o lcd simplesmente ignore.

      Abraço.

  28. Bom dia

    Depois de escolher a porta e o baud ao conectar dá erro:
    “Erro: Selecione a Porta e o baud rate para se conectar”

    Será por utilizar o Windows vista?

    responda p meu email pf

    Obrigado

  29. Good day

    I love this project, and wondered if it is possible for you to add support for another servo.
    The one you currently got can Pan, but i need a version to tilt as well (up & down)
    Can you please configure it so that the pan section (left & right work of pin 9) and the tilt section (up & down) Work on pin 10

      • Good day Renato

        Thank you, I will really appreciate it.
        I am building an robotic tank, and need this app to control the turret(CO2 Paintball gun) of the tank.
        I have been looking for this app, scetch & code now for more than 5 months, until I found it here.

        Have a great day.

        Regards,
        Riaan Deyzel

  30. Pingback: Tweets that mention Renato Peterman » Blog Archive » Controlando Servo Motor utilizando o teclado com Arduino e C# - "Simplicidade é complexidade resolvida." – Constantin Brancusi -- Topsy.com

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.