|
Minichat
Feliz año dos meses tarde!!! Aqui el tiempo pasa mas lento Feliz año 2024. Me embargó la nostalgia al ver que aun existe el foro Feliz Navidad 2023 02/10/2023 Saludos chicos cuanto tiempo, El_ Nene cuanta razon 2023 Saludos! Iniciar sesión despues de 13 años, que recuerdos! y aún así algo te llama para volver a entrar saludos años t años que no entraba a esta pagina Acabo de empezar un nuevo proyecto, a ver si los demás os animais. cuanto tiempo!!! Buen año a todos! Hola Locos Saludos-28-oct-2022 Saludos-28-oct-2022 Aloha. 14/Sept/2022 No veo como enviar mensaje No veo como enviar mensaje Hola 2022!! Buenas Mundo!!! 31/12/21 Buenas tardes.... 25/11/21 Saludos!!! un buen dia para el que lea esto un buen dia para el que lea esto
|
|
Ver tema anterior :: Ver tema siguiente |
Autor |
Mensaje |
Meta modder
País: Sexo: Registrado: 20 enero 2008 Mensajes: 202 Ubicación: http://electronica-pic.blogspot.com
|
Publicado: Jue, 17 Ago 2017 1:59 pm Asunto: [TUTORIAL] Arduino Delphi 10.2 y Puerto serie |
|
|
Tutorial Arduino Delphi 10.2 y Puerto serie. Interfaz creado con Delphi que puedes controlar el puerto serie a Arduino encendiendo y apagando un Led, manejar el LCD y recibes mensajes hacia el PC.
El entorno Delphi con el lenguaje pascal sigue vigente en la actualidad y su uso en Arduino está creciendo cada vez más.
Código fuente de Delphi:
Código: | unit Principal;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CPort;
type
TForm1 = class(TForm)
Label_Titulo: TLabel;
Label_Mensajes: TLabel;
Button_ON: TButton;
Button_OFF: TButton;
Button_COM: TButton;
Button_Abrir: TButton;
Memo_Mensajes: TMemo;
Button_Limpiar: TButton;
ComPort1: TComPort;
procedure Button_ONClick(Sender: TObject);
procedure Button_OFFClick(Sender: TObject);
procedure Button_COMClick(Sender: TObject);
procedure Button_AbrirClick(Sender: TObject);
procedure Button_LimpiarClick(Sender: TObject);
procedure ComPort1AfterClose(Sender: TObject);
procedure ComPort1AfterOpen(Sender: TObject);
procedure ComPort1RxChar(Sender: TObject; Count: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button_AbrirClick(Sender: TObject);
begin
// Si el puerto está conectado.
if ComPort1.Connected then
begin
ComPort1.Close; // Cierra el puerto.
Button_COM.Enabled := True;
Button_ON.Enabled := False;
Button_OFF.Enabled := False;
end
else // En caso contrario.
begin
ComPort1.Open; // Abre el puerto.
Button_COM.Enabled := False;
Button_ON.Enabled := True;
Button_OFF.Enabled := True;
end;
end;
procedure TForm1.Button_COMClick(Sender: TObject);
begin
ComPort1.ShowSetupDialog; // Abre la configuración del puerto.
end;
procedure TForm1.Button_LimpiarClick(Sender: TObject);
begin
Memo_Mensajes.Clear(); // Limpia los mensajes del Memo.
end;
procedure TForm1.Button_OFFClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_OFF'); // Envía el comando "Luz_OFF" al puerto.
end;
procedure TForm1.Button_ONClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_ON'); // Envía el comando "Luz_ON" al puerto.
end;
procedure TForm1.ComPort1AfterClose(Sender: TObject);
begin
if Button_Abrir <nil> 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 reacciones según sea este. Aquí podríamos hacer lo
que quisiéramos: si el comando es "tal", enciende un Led, si es cual,
mueve un motor... y así.
*/
// Si los carácteres es recibido y verdadero.
if (comando.equals("Luz_ON") == true)
{
digitalWrite(Led, HIGH); // Enciende el Led 13.
Serial.write("ON - Led encendido."); // Envía este mensaje al PC.
lcd.setCursor(0, 1);
lcd.print("Luz ON. "); // Mostrar en el LCD.
}
if (comando.equals("Luz_OFF") == true)
{
digitalWrite(Led, LOW); // Apaga el Led 13.
Serial.write("OFF - Led apagado. "); // Envía este mensaje al PC.
lcd.setCursor(0, 1);
lcd.print("Luz OFF. "); // Mostrar en el LCD.
}
// Limpiamos la cadena para volver a recibir el siguiente comando.
comando = "";
} |
Ver vídeo.
Ver visor.
Un cordial saludo. |
|
Volver arriba |
|
|
|
|
Este sitio no se hace responsable de ningún daño que cause en su ordenador con la información que en el se expone.Todos los productos y marcas están registrados por sus respectivos propietarios. Prohibida la reproducción total o parcial de los textos e imagenes de esta web sin el consentimiento expreso de su autor. Hardcore-Modding.com 2001-2019 Los comentarios son propiedad de sus autores (ya sean anonimos o registrados). Portal basado en NukeET, RSS
Página Generada en: 0,096 segundos
π |