Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Comunicação serial C# e arduino - Controlando LED RGB

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C# Comunicação serial C# e arduino - Controlando LED RGB

    Bom pessoal, estou aqui fazendo um simples tutorial para aqueles, que como eu, conhecem um pouco de eletrônica e de programação, no caso arduino.
    Para começar, vamos fazer um LED (Diodo Emissor de Luz) RGB ser controlado por um software feito em C#, utilizando da IDE Visual Studio.
    Mas qual hardware escolher para receber os comandos que virão do software? No caso, foi escolhido o arduino UNO R3, mas aí, o que seria o arduino?
    Arduino é uma plataforma de prototipagem eletrônica de hardware livre, não ajudou muito, então vamos explicar de um modo mais simples, o arduino é uma placa pronta com um microcontrolador, potente até. O arduino tem seu compilador, você pode compilar, gravar, quantas vezes quiser, fazendo dele uma ferramenta muito útil e vantajosa em vários aspectos.
    Bom, mas vamos lá, o que faremos primeiro é um software simples no Visual Studio.
    Começaremos abrindo um novo projeto (presumo que saiba abrir um novo projeto por isso não coloquei como iniciar um projeto novo aqui). Agora vamos primeiramente mexer com a parte visual. Nesse programa colocarei apenas coisas simples, os componentes são:

    • 3 Trackbar
    • 3 Textbox
    • 1 OvalShape
    • 1 Button
    • 1 SerialPort (esse é essencial, não esqueça)
    • 1 Label (se quiser)


    No final, o design do seu software deve estar parecido com esse:


    Modifiquei um pouco o meu, pra ficar mais do jeito que eu gosto e ficou dessa forma:


    Em seguida, vamos à programação.
    A primeira coisa a se fazer é colocar uma nova biblioteca:

    Using System.IO.Ports;
    Ela que permite a entrada e saída de dados pela porta serial.


    Agora seguindo de acordo com os prints abaixo, deixe da mesma forma.
    Estamos apenas dizendo que a porta serial a ser comunicada é a COM3 e o BaudRate é de 9600.
    OBS: É necessário que o BaudRate seja igual ao do arduino para que não haja perdas na hora da comunicação entre os dois, se for diferente os comandos não serão executados.
    BaudRate é uam taxa de transferência na comunicação, a qual tem que ser sincronizada com o outro dispositivo a se comunicar.



    Aqui é o evento Click do botão, nele você pode ver que estamos abrindo a comunicação serial e mudando algumas coisas que mudei pra deixar mais bonito.
    PS: tem um button2 ali, esqueci como deixa um botão apenas como on e off e olha a hora pra pesquisar, então gambiarra mode on.


    Esse é o botão da gambiarra:


    Aqui é o que a trackbar vai fazer, ou seja, estou atribuindo ao textbox que está em frente à caixa o valor da trackbar, para melhor visualização e praticidade. Também pode-se ver uma função “enviarCor()” ela irá pegar o valor e enviar para a porta serial.


    Por fim e importante, está a função que envia a cor para a porta serial, é bem simples de entender, a cada string ali foi atribuído o valor que foi pêgo nas textbox e assim sendo enviado pela porta serial.


    Terminamos a programação no software em C#, agora vamos partir para o arduino.

    int vermelho = 11;
    int verde = 10;
    int azul = 9;

    void setup()
    {
    pinMode(vermelho,OUTPUT);
    pinMode(verde,OUTPUT);
    pinMode(azul,OUTPUT);
    Serial.begin(9600);
    }

    String color = "";
    int c = 0;
    void loop()
    {
    while (Serial.available())
    {
    char dado= Serial.read();
    color += dado;
    c++;
    if(c==9){
    int r = color.substring(1,3).toInt();
    int g = color.substring(4,6).toInt();
    int b = color.substring(7,9).toInt();
    setColor(r,g,b);
    color = "";
    c=0;
    }
    }
    }

    void setColor(int red, int green, int blue)
    {
    analogWrite(vermelho, red);
    analogWrite(verde, green);
    analogWrite(azul, blue);
    }
    Assim, ao compilar, você com seu arduino instalado e com seu LED RGB na placa (ou protoboard), poderá mudar as trackbars e assim ir mudando a cor e misturando até.

    esse é o esquema que ficará no seu arduino com a protoboard:



    Divirta-se.
    Last edited by Nickguitar.dll; 15-06-2014, 20:29.

    Sono e fome, isso me define.
    sigpic
    Similar Threads
X
Working...
X