Professional Documents
Culture Documents
2013-05-28 1:39 AM
Conexionado
Monta este conexionado para realizar la mayora de los programas de este tutorial
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 1 of 19
2013-05-28 1:39 AM
NOTA: Cuando tenemos abierto el puerto COM3 no podemos utilizar a la vez el Serial Monitor.
NOTA: Con un Hyperterminal tambin podemos comunicarnos con el Arduino.
Page 2 of 19
2013-05-28 1:39 AM
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
Page 3 of 19
2013-05-28 1:39 AM
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();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 4 of 19
2013-05-28 1:39 AM
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
Page 5 of 19
2013-05-28 1:39 AM
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 informacin 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.
- Ahora lo mismo pero con otro cdigo ms sencillo, dos botones y dos LED. En este caso solo se enva un carcter ("1"), no una cadena "12 on")
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 6 of 19
2013-05-28 1:39 AM
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);
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 7 of 19
2013-05-28 1:39 AM
' Para que se abra el Bloc de notas cuando se pulse el botn 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 cdigo. Dos botones y un SerialPort. No hace falta el botn Recibir ni Enviar.
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 8 of 19
2013-05-28 1:39 AM
********************************************************************************************************************
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 9 of 19
2013-05-28 1:39 AM
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
' Programa realizado por Juan Antonio Villalpando
' juana1991@yahoo.com
' Este programa trata de dos modalidades distintas
' una pulsamos un botn en Visual Basic y se enciende un LED en el Arduino
' otra pulsamos un botn 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
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 10 of 19
2013-05-28 1:39 AM
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 botn 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
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 11 of 19
2013-05-28 1:39 AM
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 12 of 19
2013-05-28 1:39 AM
*************************************************************************************************************
Page 13 of 19
2013-05-28 1:39 AM
.
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
// 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));
}
?>
Page 14 of 19
2013-05-28 1:39 AM
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);
}
}
}
**********************************************************************************************************************************************.
arduino2.php
// Programa realizado por Juan Antonio Villalpando
// 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));
}
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 15 of 19
2013-05-28 1:39 AM
if ($dato=="Decrementa") {
echo "Decrementa" ;
fputs($fp, chr(49));
}
?>
*********************************************************************************************************************
*********************************************************************************************************************
*********************************************************************************************************************
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 16 of 19
2013-05-28 1:39 AM
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(boton2, INPUT);
}
void loop(){
buttonState = digitalRead(boton2);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.print("HOLA");
}
else {
digitalWrite(ledPin, LOW);
}
}
arduino3.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="refresh" content="1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Valor leido :</p>
<?php
if ($handle = fopen("COM3", "rb")) {
$data = fread($handle, 8);
print "<center><h1>";
echo $data;
print "</h1></center>";
fclose($handle);
}
?>
</body>
</html>
http://wiki.pinguino.cc/index.php/Interfacing_with_php
**************************************************
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 17 of 19
2013-05-28 1:39 AM
?>
******************************************************************
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 18 of 19
2013-05-28 1:40 AM
- Arduino PHP
- Chat Bluetooth -VisualBasic
- http://www.amarino-toolkit.net/index.php/getting-started.html
- http://my.opera.com/gatodrolo/blog/show.dml/20699632
- http://www.instructables.com/id/how-to-Control-arduino-by-bluetooth-from-PC-pock/step6/controlling-from-a-pocket-PC-PDA/
- http://www.electan.com/emisor-receptor-433mhz-p-3039.html
- http://www.electan.com/arduino-mega-adk-android-p-3141.html
- http://www.instructables.com/id/Use-Twitter-to-control-Arduino-Uno-via-Visual-Basi/
- http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1266689999/all recibir datos
- Hyperterminal para conectarse al Arduino. http://www.pcworld.com/downloads/file_download/fid,3376-order,4/download.html
- http://www.mbeckler.org/microcontrollers/rgb_led/
En un prximo tuturial desarrollar la transmisin por Bluetooth, para ello debemos adquirir un Arduino Bluetooth como esta:
http://www.arduino.cc/en/Main/ArduinoBoardBluetooth
(Ver precio: http://www.electan.com/arduino-bluetooth-p-2935.html) - unos 94
o bien comprar un mdulo Bluetooth que se lo podemos insertar a nuestro Arduino bsico: http://www.bricogeek.com/shop/modulos-radiofrecuencia/242modem-bluetooth-bluesmirf-gold.htmlunos 51
(Ver forma de conectar: http://wiring.org.co/learning/tutorials/bluetooth/)
Tambin tengo pendiente hacer un tutorial para transmitir datos por RF, para ello se utiliza un par de mdulo bastante baratos, unos 7 :
http://www.electan.com/emisor-receptor-433mhz-p-3039.html
*******************************************
1.640.672
http://www.iesromerovargas.net/recursos/elec/sol/arduino.htm
Page 19 of 19