martes, 10 de noviembre de 2015

Encender y apagar un Led con Arduino y Visual Studio 2015



Código Arduino

Código con Visual C#, C++ y Visual Basic .net

Código Arduino IDE, encender y apagar el Led 13 que viene integrado en la placa Arduino UNO.

pinMode(pinLed1, OUTPUT);  // Inicializa el pin del Led 1 como salida.
char caracter;
String comando;
void setup()
{
                Serial.begin(115200);
}
void loop()
{
/* Voy leyendo carácter a carácter lo que se recibe por el canal
 *  serie (mientras llegue algún dato allí), y los voy concatenando
*  uno tras otro en una cadena. En la práctica, si usamos el
*  "Serial monitor" el bucle while acabará cuando pulsemos Enter.
*  El delay es conveniente para no saturar el canal serie y que la
*  concatenación se haga de forma ordenada.
*/

while (Serial.available() > 0)
{
     caracter= Serial.read();
     comando.concat(caracter);
     delay(10);
}
/* Una vez ya tengo la cadena "acabada", compruebo su valor y hago
* que la placa Arduino reaccione según sea este. Aquí podríamos
* hacer lo que quiesiéramos: si el comando es "tal", enciende
* un Led, si es cual, mueve un motor... y así.
*/
if (comando.equals("Led_ON") == true)
     {
          digitalWrite(pinLed, HIGH); // Enciende el Led.
          Serial.println("Led 13 encendido.");
     }
if (comando.equals("Led_OFF") == true)
     {
          digitalWrite(pinLed, LOW); // Apaga el Led.
         
Serial.println("Led 13 apagado.");
     }

// Limpiamos la cadena para volver a recibir el siguiente comando.
 comando="";
}
// Fin del código.







Probando Monitor Serie

Probaremos los comandos establecidos en el código de Arduino, encender el Led corresponde al comando Led_ON y apagar el Led corresponde al comando Led_OFF.
Conectamos Arduino con el USB al ordenador o PC y probamos el código pulsando “Control + U” o en Programa -> Subir.
Abrimos el Monitor Serie de Arduino IDE, en Herramientas -> Monitor Serie.
Cuando tengamos la ventana abierta del Monitor Serie, introducimos Led_ON para encender el Led 13 de la placa Arduino UNO.
Como puedes ver en la imagen de arriba, al introducir el comando Led_ON, a parte que dice en el Monitor Serie el mensaje “Led 13 encendido”, comprueba en la placa Arduino UNO que dicho Led realmente esté encendido. Lo mismo probar el comando Led_OFF para apagar el Led. No olvidar que se usan los 115200 baudios tanto en el programa como en el  Monitor Serie.




Comprueba que el Led del pin 13 lo puedes encender y apagar.






Visual C# AWF 2015

Creamos un proyecto nuevo con Visual C#.


Selecciona Entorno clásico en Visual C#, Aplicación de Windows Forms, he puesto como nombre del proyecto en este caso Arduino_Led, luego pulsar Aceptar.





Arrastramos dos botones en el formulario principal, en el cuadro de propiedades cambiamos los valores.
Botón Enceder:
Propiedad
Cambie a
Text
Encender
(Name)
button_Encender

Botón Apagar:
Propiedad
Cambie a
Text
Apagar
(Name)
button_Apagar




Revisa que puerto COM estás usando, en mi caso es el COM4, indicado en la parte de debajo de Arduino IDE.

Propiedades a cambiar del componente SerialPort.
Propiedad
Cambie a
(Name)
serialPort1
BaudRate
115200
PortName
COM4
StopBits
Two



Código Visual C# AWF.

using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO.Ports; // No olvidar.

namespace Arduino_Led
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // Abrir puerto mientras se ejecuta esta aplicación.
            if(!serialPort1.IsOpen)
            {
                try
                {
                    serialPort1.Open();
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }

        private void button_Encender_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = Encoding.ASCII.GetBytes("Led_ON");
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }

        private void button_Apagar_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = Encoding.ASCII.GetBytes("Led_OFF");
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }
    }
}




Ver vídeo:

Autor: Ángel Acaymo M. G.

Descargar:
PDF 3.62 MB.
PDF 3.62 MB.
PDF 3.62 MB.
ZIP (PDF) 3.23 MB.

XPS 4.53 MB.
XPS 4.53 MB.
ZIP (XPS) 4.01 MB.

Ejemplos 182 KB.
Ejemplos 182 KB.




Más información...

1 comentario:

rayvega dijo...

No funciona, te falto usar el comando trim, para los que quieran hacer funcionar este programa agreguen ,la siguiente linea

comando.trim();

justo despues de leer y concatenar el comando

si no NO funciona y el Arduio no hace nada simplemente.