|   FOROS      |     Tutoriales    |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 Arduino
   Elastix - VoIP Cosas de Windows Webs interesantes  Telecomunicaciones

 


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Arduino. Visual basic.

 

37.- Arduino y Visual Basic conectados por USB.

En el ordenador tenemos Visual Basic 2010. Disponemos de un Arduino UNO.

El ordenador y el Arduino están conectados por cable USB.

Se trata de enviar información desde el ordenador al Arduino y desde el Arduino al ordenados (conectador por USB).

-------------------------------------------------------------------------

Visual Basic 2010 lo puedes bajar de...

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express

****************************************************************************


_____________________________________
0.- Conexionado.

Conexionado

Monta este conexionado para realizar la mayoría de los programas de este tutorial


NOTA: Cuando tenemos abierto el puerto COM3 no podemos utilizar a la vez el Serial Monitor.

NOTA: Con un Hyperterminal también podemos comunicarnos con el Arduino.

_____________________________
1.- Se trata de gobernar el Arduino desde Visual Basic 2010.

- Creamos dos botones en Visual Basic, cuando pulsamos estos botones se apaga o enciende el LED13 del Arduino.

- En Visual Basic 2010, insertamos dos Botones y un SerialPort
- Cambia el puerto COM3 por el puerto que tengas en el Arduino (1, 2, 3 o 4)

- Cuando pulsamos el Button1 se enciende el LED13
- Cuando pulsamos el Button2 se apaga el LED13

Visual Basic 2010




Imports System.IO 
Imports System.IO.Ports 
Imports System.Threading 

Public Class Form1 
Shared _continue As Boolean 
Shared _serialPort As SerialPort 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
SerialPort1.Close() 
SerialPort1.PortName = "com3" ' Cambia el Puerto 
SerialPort1.BaudRate = 9600 
SerialPort1.DataBits = 8 
SerialPort1.Parity = Parity.None 
SerialPort1.StopBits = StopBits.One 
SerialPort1.Handshake = Handshake.None 
SerialPort1.Encoding = System.Text.Encoding.Default 
End Sub 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
SerialPort1.Open() 
SerialPort1.Write("1") 
SerialPort1.Close() 
End Sub 


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
SerialPort1.Open() 
SerialPort1.Write("0") 
SerialPort1.Close() 
End Sub 
End Class 

- En el Arduino creamos este código.

Programa para el Arduino
int ledPin = 13; 

void setup() { 
Serial.begin(9600); 
pinMode(ledPin, OUTPUT); 
digitalWrite(ledPin, LOW); 
} 


void loop(){ 
while (Serial.available() == 0); 
int val = Serial.read() - '0'; 

if (val == 1) { 
Serial.println("LED on"); 
digitalWrite(ledPin, HIGH);
} 
else if (val == 0) 
{ 
Serial.println("LED OFF"); 
digitalWrite(ledPin, LOW);
} 
else 
{ 
//val = val; 
} 
Serial.println(val); 
Serial.flush(); 
} 


__________________
2.- Ahora con dos botones y dos LED

- Se trata de tener varios Botones para controlar varios LED.

Cuando pulsamos el Botón 1, se enciende el LED13, cuando volvemos a pulsarlo se apaga el LED13
Cuando pulsamos el Botón 2, se enciende el LED12, cuando volvemos a pulsarlo se apaga el LED12

Visual Basic 2010



Imports System.IO.Ports
Imports System.Threading

Public Class Form1
Dim cambio12 As Boolean = True
Dim cambio13 As Boolean = True


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "com3" 'CAMBIA EL PUERTO COM
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.Open()
If cambio13 = True Then
SerialPort1.Write("13 on")
Else
SerialPort1.Write("13 off")
End If
cambio13 = Not (cambio13)
SerialPort1.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Open()
If cambio12 = True Then
SerialPort1.Write("12 on")
Else
SerialPort1.Write("12 off")
End If
cambio12 = Not (cambio12)
SerialPort1.Close()
End Sub
End Class

- En el Arduino creamos este código.

Programa para el Arduino
char inData[20]; // Allocate some space for the string
char inChar=-1; // Where to store the character read
byte index = 0; // Index into array; where to store the character

void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

char Comp(char* This) {
while (Serial.available() > 0) // Don't read unless
// there you know there is data
{
if(index < 19) // One less than the size of the array
{
inChar = Serial.read(); // Read a character
inData[index] = inChar; // Store it
index++; // Increment where to write next
inData[index] = '\0'; // Null terminate the string
}
}

if (strcmp(inData,This) == 0) {
for (int i=0;i<19;i++) {
inData[i]=0;
}
index=0;
return(0);
}
else {
return(1);
}
}

void loop()
{
if (Comp("12 on")==0) { digitalWrite(12, HIGH);}
if (Comp("12 off")==0) {digitalWrite(12, LOW);} 
if (Comp("13 on")==0) { digitalWrite(13, HIGH);}
if (Comp("13 off")==0) {digitalWrite(13, LOW);}
}

- Lo que hace el programa Visual Basic anterior es enviar la frase "12 on" al puerto serie (En este caso no es el puerto serie, se trata del USB), el Arduino recoje la información que le llega por su puerto serie y "descompone" las letras recibidas, si las letras "descompuestas" son 12 on, entonces se enciende el LED 12.

- Con otro código...

- Ahora lo mismo pero con otro código más sencillo, dos botones y dos LED.

- En este caso solo se envía un carácter ("1"), no una cadena "12 on")

Visual Basic
' VISUAL BASIC 2010 (dos Button y un SerialPort) 
' Programa realizado por Juan Antonio Villalpando
' juana1991@yahoo.com 

Imports System.IO.Ports
Imports System.Threading

Public Class Form1
Dim cambio12 As Boolean = True
Dim cambio13 As Boolean = True

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "com3" 'CAMBIA EL PUERTO COM
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.Open()
If cambio13 = True Then
SerialPort1.Write("1")
Else
SerialPort1.Write("2")
End If
cambio13 = Not (cambio13)
SerialPort1.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Open()
If cambio12 = True Then
SerialPort1.Write("3")
Else
SerialPort1.Write("4")
End If
cambio12 = Not (cambio12)
SerialPort1.Close()
End Sub
End Class
Arduino
// Programa realizado por Juan Antonio Villalpando
// kio4.com
// juana1991@yahoo.com
int ledPin13 = 13; int ledPin12 = 12; int dato; void setup() { Serial.begin(9600); pinMode(ledPin13, OUTPUT); pinMode(ledPin12, OUTPUT); } void loop() { if (Serial.available() > 0) { dato = Serial.read(); if (dato == '1') { digitalWrite(ledPin13, HIGH); } if (dato == '2') { digitalWrite(ledPin13, LOW); } if (dato == '3') { digitalWrite(ledPin12, HIGH); } if (dato == '4') { digitalWrite(ledPin12, LOW); } } }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

______________________
3.- Ahora lo hacemos alrevés, es decir, pulsamos un botón en el Arduino y enviamos un mensaje a Visual Basic 2010

1.- Para hacerlo funcionar, primero pulsamos el Botón "Abrir puerto" para abrir el puerto COM3
2.- Luego pulsamos el botón de Recibir y quedamos a la espera.
3.- Cuando pulsemos el Botón del Arduino, pasará la información "Hola amigo" al Visual Basic y lo presentará en el Label1.
4. Para acabar el programa debemos pulsar el botón de "Cerrar puerto", si no lo cerramos el puerto quedará bloqueado y no podremos volver a cargar el Arduino.
En este caso, ejecuta el programa de Visual Basic y pulsa el botón de "Cerrar puerto"

- El botón "Enviar" no tiene código, cuando lo pulsemos el Arduino notará que le llega algo por el puerto serie mediante el LED TX.

Visual Basic 2010

- Insertamos 4 botones, 1 Label y un TextBox.

- También insertamos un SerialPort y en su Propiedad PortName, establecemos el Puerto de conexión del Arduino.



Public Class Form1

Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs)
SerialPort1.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.Open()
Button1.Enabled = False
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Close()
Button1.Enabled = True
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Label1.Text = SerialPort1.ReadLine
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
SerialPort1.WriteLine(TextBox1.Text)
End Sub

End Class

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

- Mejoras

' Para que se abra el Bloc de notas cuando se pulse el botón del Arduino y se reciba la palabra Hola

Dim a As String
.........................................
a = SerialPort1.ReadLine
If a = "Hola amigo" & vbCr & "" Then System.Diagnostics.Process.Start("notepad.exe")

********************************************************************************
' Mejora del código. Dos botones y un SerialPort. No hace falta el botón Recibir ni Enviar.

Public Class Form1

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
SerialPort1.Close()
SerialPort1.PortName = "com3" ' Cambia el Puerto
SerialPort1.BaudRate = 9600 ' Esta es la velocidad de transmisión, debe ser la misma en los programas y en el Bluetooth

CheckForIllegalCrossThreadCalls = False ' Esta línea no le gusta mucho a los programadores,
                                        ' pero aquí la ponemos para que funcione el Label1
End Sub

Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs)
SerialPort1.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.Open()
Button1.Enabled = False
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Close()
Button1.Enabled = True
Label1.Text ="" 
End Sub

Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDa
taReceivedEventArgs) Handles SerialPort1.DataReceived 'LINEA CORTADA!!!!! unir con la anterior!!!

Label1.Text = Label1.Text & SerialPort1.ReadLine

If SerialPort1.ReadLine = "Hola amigo" & vbCr & "" Then Process.Start("calc.exe")

End Sub

End Class


- En el Arduino creamos este código.

Programa para el Arduino
const int boton2 = 2; 
const int ledPin = 13;
int buttonState = 0; 

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); 
pinMode(boton2, INPUT); 
}

void loop(){

buttonState = digitalRead(boton2);

if (buttonState == HIGH) { 
digitalWrite(ledPin, HIGH); 
Serial.println("Hola amigo");
}
else {
digitalWrite(ledPin, LOW);
}
}

 

____________________
4.- Realizar un programa que pueda enviar datos al Arduino y recibirlo. Se basa en unir los dos programas vistos anteriormente.

1.- Este programa está formado por los dos programas vistos anteriormente.

Visual Basic 2010

Insertamos 4 botones, 1 Label y un TextBox. También insertamos un SerialPort y en su Propiedad PortName, establecemos el Puerto de conexión del Arduino.


 


Imports System.IO
Imports System.IO.Ports
Imports System.Threading

' Programa realizado por Juan Antonio Villalpando
' kio4.com 
' juana1991@yahoo.com

' Este programa trata de dos modalidades distintas
' una pulsamos un botón en Visual Basic y se enciende un LED en el Arduino
' otra pulsamos un botón en el Arduino y se envia un mensaje al Visual Basic y se ejecuta un programa.

Public Class Form1

Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs)
SerialPort1.Close()
End Sub

Shared _continue As Boolean
Shared _serialPort As SerialPort
Dim cambio12 As Boolean = True
Dim cambio13 As Boolean = True
Dim entradadedatos As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "com3" 'CAMBIA EL PUERTO COM
SerialPort1.BaudRate = 9600
SerialPort1.DataBits = 8
SerialPort1.Parity = Parity.None
SerialPort1.StopBits = StopBits.One
SerialPort1.Handshake = Handshake.None
SerialPort1.Encoding = System.Text.Encoding.Default
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SALIDA DE DATOS
' Enciende / Apaga LED12 y LED13
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort1.Close()
SerialPort1.Open()
If cambio13 = True Then
SerialPort1.Write("13 on")
Else
SerialPort1.Write("13 off")
End If
cambio13 = Not (cambio13) 
SerialPort1.Close()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Close()
SerialPort1.Open()
If cambio12 = True Then
SerialPort1.Write("12 on")
Else
SerialPort1.Write("12 off")
End If
cambio12 = Not (cambio12) 
SerialPort1.Close()
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ENTRADA DE DATOS
' Botones del Arduino
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
SerialPort1.Close()
SerialPort1.Open()
Button3.Enabled = False
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
SerialPort1.Close()
Button3.Enabled = True
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Button5.BackColor = Color.GreenYellow
Button5.Text = "Pulsa un botón del Arduino"
SerialPort1.Close()
SerialPort1.Open()
entradadedatos = SerialPort1.ReadLine
Label1.Text = entradadedatos
If entradadedatos = "Bloc de notas" & vbCr & "" Then System.Diagnostics.Process.Start("notepad.exe")
If entradadedatos = "Calculadora" & vbCr & "" Then System.Diagnostics.Process.Start("calc.exe")
SerialPort1.Close()
' Button5.BackColor = SystemColors.Control
Button5.BackColor = Color.OrangeRed
Button5.Text = "Preparado para recibir"
End Sub

End Class

- En el Arduino creamos este código.

Programa para el Arduino

 

char inData[20]; // Allocate some space for the string
char inChar=-1; // Where to store the character read
byte index = 0; // Index into array; where to store the character
// Programa adaptado por Juan Antonio Villalpando 
int boton2 = 0;
int boton3 = 0;

void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);

}
// ENCENDIDO DEL LED12 y LED13
////////////////////////////////////////////////////////////////


char Comp(char* This) {
while (Serial.available() > 0) 

{
if(index < 19) // One less than the size of the array
{
inChar = Serial.read(); // Read a character
inData[index] = inChar; // Store it
index++; // Increment where to write next
inData[index] = '\0'; // Null terminate the string
}
}

if (strcmp(inData,This) == 0) {
for (int i=0;i<19;i++) {
inData[i]=0;
}
index=0;
return(0);
}
else {
return(1);
}
}


void loop()
{
if (Comp("12 on")==0) { digitalWrite(12, HIGH);}
if (Comp("12 off")==0) {digitalWrite(12, LOW);} 
if (Comp("13 on")==0) { digitalWrite(13, HIGH);}
if (Comp("13 off")==0) {digitalWrite(13, LOW);}


// LECTURA DE LOS BOTONES 2 y 3 DEL ARDUINO
////////////////////////////////////////////////////////////////////////////

// Lee el estado de los botones
boton2 = digitalRead(2);
boton3 = digitalRead(3);

if (boton2 == HIGH) { 
Serial.println("Bloc de notas");
// digitalWrite(12, HIGH);
delay(300);
}
else {
//
//digitalWrite(12, LOW);
}

if (boton3 == HIGH) { 
Serial.println("Calculadora");
// digitalWrite(13, HIGH);
delay(300);
}
else {
// 
// digitalWrite(13, LOW);
}
}

************************************

Conexión PHP

- Controlamos el Arduino desde un servidor web, pero... el Arduino debe estár conectado al ordenador mediante USB.

Servidor Apache + PHP

Para realizar los programas basados en PHP en nuestro ordenador, debemos instalar un servidor web, es muy fácil.

1.- Instalamos el WAMP (Windows Apache MySQL PHP)
2.- Se instala en C:\wamp. La carpeta donde tienes que poner los php es C:\wamp\www.
3.- La configuración se realiza con una ventana que sale en el área de notificación cerca del reloj.
4.- El archivo de configuración es el httpd.conf en este archivo ponemos una almohadilla en...
# onlineoffline tag - don't remove
Order Allow,Deny
# Deny from all
Allow from all
5.- Cada vez que guardemos el archivo de configuración debemos Restart el servicio Apache.
6.- Para ver los php, ponemos en un navegador: localhost/arduino.php

___________________________
5.- Realizar un programa que pueda enviar datos al Arduino mediante un archivo PHP alojado en un servidor web.

1.- Creamos un archivo arduino.php con cuatro botones.
2.- Dependiendo del botón pulsado se enviará al puerto serie un carácter chr(48), chr(49), chr(50), chr(51) que corresponde al "0", "1", "2" y "3"
3.- El Arduino leerá el dato del puerto serie y según sea "0", "1", "2" o "3" mandará señal a las salidas 12 y 13 y los LED encencerán o apagarán.

- Es posible que el archivo arduino2.php de un error cuando se ejecuta por primera vez, ignorarlo.

arduino.php
// Programa realizado por Juan Antonio Villalpando
// kio4.com
// juana1991@yahoo.com 

<?php
//`mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off`;
$fp = fopen ("COM3:", "a");
?>
<html>
<head>

<Form Name ="form1" Method ="POST" ACTION = "arduino.php">
<INPUT TYPE = "Submit" Name = "dato" VALUE = "13 on">
<INPUT TYPE = "Submit" Name = "dato" VALUE = "13 off">
<INPUT TYPE = "Submit" Name = "dato" VALUE = "12 on">
<INPUT TYPE = "Submit" Name = "dato" VALUE = "12 off">

</html>

<?php
$datos=$_POST;
$dato = $datos['dato'];

if ($dato=="13 on") {
echo "Enciende LED 13" ;
fputs($fp, chr(48)); 
}


if ($dato=="13 off") {
echo "Apaga LED 13" ;
fputs($fp, chr(49)); 
}

if ($dato=="12 on") {
echo "Enciende LED 12" ;
fputs($fp, chr(50)); 
}

if ($dato=="12 off") {
echo "Apaga LED 12" ;
fputs($fp, chr(51)); 
}

?>

- En el Arduino creamos este código.

Programa para el Arduino
// Programa realizado por Juan Antonio Villalpando
// kio4.com 
// juana1991@yahoo.com 

int ledPin13 = 13;
int ledPin12 = 12;
int dato;

void setup() {
Serial.begin(9600);
pinMode(ledPin13, OUTPUT);
pinMode(ledPin12, OUTPUT);
}

void loop() {

if (Serial.available() > 0) {

dato = Serial.read(); 

if (dato == '0') {
digitalWrite(ledPin13, HIGH);
} 
if (dato == '1') {
digitalWrite(ledPin13, LOW);
}
if (dato == '2') {
digitalWrite(ledPin12, HIGH);
} 
if (dato == '3') {
digitalWrite(ledPin12, LOW);
}
}
}

____________________________
6.- Realizar un programa que pueda enviar datos al Arduino mediante un archivo PHP.

- En este caso al apretar un botón se incrementa el brillo del LED y al apretar otro botón se decrementa el brillo del LED.

1.- Creamos un archivo arduino2.php con dos botones (Incrementa y Decrementa)
2.- Según pulsemos uno u otro, se enviará por el puerto serie el chr(48) que es el carácter "0" o el chr(49) que es el carácter "1"
3.- El Arduino leerá el dato del puerto serie y según sea "0" o "1", incrementara o decrementará la variable brillo.
4.- El valor de la variable brillo irá a la salida PWM 9, dependiendo del valor de la variable, dará un nivel de tensión.


Es posible que el archivo arduino2.php de un error cuando se ejecuta por primera vez, ignorarlo.

arduino2.php
// Programa realizado por Juan Antonio Villalpando
// kio4.com
// juana1991@yahoo.com
<?php //`mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off`; $fp = fopen ("COM3:", "a"); ?> <html> <head> <Form Name ="form1" Method ="POST" ACTION = "arduino2.php"> <INPUT TYPE = "Submit" Name = "dato" VALUE = "Incrementa"> <INPUT TYPE = "Submit" Name = "dato" VALUE = "Decrementa"> </html> <?php $datos=$_POST; $dato = $datos['dato']; if ($dato=="Incrementa") { echo "Incrementa" ; fputs($fp, chr(48)); } if ($dato=="Decrementa") { echo "Decrementa" ; fputs($fp, chr(49)); } ?>

- En el Arduino creamos este código.
NOTA: en los esquemas anteriores utilizamos las salidas 12 y 13, en este montaje debemos utilizar la salida 9 ya que necesitamos que sea PWM.
Simplemente cambia el cable de la salida 13 de los montajes anteriores por la 9.

Programa para el Arduino
// Programa realizado por Juan Antonio Villalpando
// kio4.com
// juana1991@yahoo.com 

int ledPin9 = 9;
int dato;
int brillo = 0; 
int incremento = 5; 


void setup() {
Serial.begin(9600);
pinMode(ledPin9, OUTPUT);
}

void loop() {

if (Serial.available() > 0) {

dato = Serial.read(); 

if (dato == '0') {
analogWrite(ledPin9, brillo); 
brillo = brillo + incremento; 
} 
if (dato == '1') {
analogWrite(ledPin9, brillo); 
brillo = brillo - incremento; 

}
}
}

________________________________

Esos son programas ya preparados para controlar al Arduino desde el ordenador conectado por cable USB.

1.- Cargas en el Arduino el Sketch que puedes encontrar en...

Archivos / Ejemplos / Firmdata / StandarFirmdata.


2.- Baja e instala en tu ordenador este programa para Windows.

firmata_test.exe

3.- En el programa anterior establece el Puerto correspondiente del Arduino (Port).

4.- Saldrá un menú desde donde puedes controlar al Arduino estando conectado al ordenador por cable USB.

Puedes activar y consultar los terminales del Arduino mediante esta aplicación. El Arduino debe estar conectador por su cable USB al ordenador.

Compruébalo con el LED13.

- Librería FirmData del Arduino: https://www.arduino.cc/en/reference/firmata

_____________________________________________

Control desde el móvil al Arduino estando los dos conectados por cable USB. Cable USB OTG.

Para ello necesitas comprar un cable USB OTG, vale menos de 1 €

En la figura de abajo se muestra el conexionado de un cable normal y otro OTG

 

 

Cargar esta aplicación en el móvil: https://play.google.com/store/apps/details?id=arduino.control.firmata

Consultar: http://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/

________________________________

Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.com

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información