Bienvenido a Hardcore Modding

 Vivir el modding / Iniciarse en el modding 27 de abril de 2024 19:11   Modding  ·  Artículos  ·  Guías  ·  Guías de los usuarios  ·  Reviews  ·  Enviar Noticia ·  Top 10 ·  Temas

Minichat

El_Nene :Feliz año dos meses tarde!!! Aqui el tiempo pasa mas lento
xenon :Feliz año 2024. Me embargó la nostalgia al ver que aun existe el foro :)
Cyg :Feliz Navidad 2023
DjSalva :02/10/2023 Saludos chicos cuanto tiempo, El_ Nene cuanta razon :)
Jesmasco :2023
Steam :Saludos! Iniciar sesión despues de 13 años, que recuerdos!
El_Nene :y aún así algo te llama para volver a entrar :)
djmax :saludos años t años que no entraba a esta pagina
El_Nene :Acabo de empezar un nuevo proyecto, a ver si los demás os animais.
El_Nene :cuanto tiempo!!!
aulex51 :Buen año a todos!
unkdememoria :Hola Locos
Cyg :Saludos-28-oct-2022
Cyg :Saludos-28-oct-2022
Chinoka :Aloha. 14/Sept/2022
TELOR5 :No veo como enviar mensaje
TELOR5 :No veo como enviar mensaje
alvaro :Hola 2022!!
el_friky :Buenas Mundo!!! 31/12/21
Tpm :Buenas tardes.... 25/11/21 Saludos!!!
CR6302428 :un buen dia para el que lea esto :)
CR6302428 :un buen dia para el que lea esto :)
:)8):eek::(:@;):P9):O

Ultimos articulos

En este momento no existe contenido para este bloque.

 FAQFAQ   BuscarBuscar   Grupos de UsuariosGrupos de Usuarios   PerfilPerfil   Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   ConectarConectar 

[TUTORIAL] Arduino Delphi 10.2 y Puerto serie

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Electronica
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Meta
modder
modder



País:
Sexo:
Registrado: 20 enero 2008
Mensajes: 202
Ubicación: http://electronica-pic.blogspot.com

MensajePublicado: Jue, 17 Ago 2017 1:59 pm    Asunto: [TUTORIAL] Arduino Delphi 10.2 y Puerto serie Responder citando



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.
http://electronica-pic.blogspot.com Manuales de electrónica general y PIC.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión -> Electronica Todas las horas son GMT + 2 Horas
Página 1 de 1

 
Cambiar a:  

Powered by phpBB.


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,092 segundos

π