Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!

Participe do fórum, é rápido e fácil

Vilarejo PK2P
Bem-vindo ao fórum Vilarejo PK2P! O fórum oficial do canal Press Key to Play do Youtube!
Vilarejo PK2P
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Grupo para reunir as pessoas que acompanham os vídeos no canal Press Key to Play e discutir os assuntos abrangidos pelo Blog PK2P.

Últimos assuntos

» RPG de Mesa: A fronteira Volume 4: O Castelo Owlrick. (D&D5e)
por Ariano 10/12/2020, 23:18

» [tutorial] hash em C/C++ com openssl
por kodo no kami 21/9/2020, 13:37

» ping lista grafico
por kodo no kami 24/7/2020, 07:53

» [Discord] Campanha de RPG D-cyber
por Jonatan15 17/7/2020, 11:11

» [tradução] 1869 (msdos)
por kodo no kami 26/6/2020, 13:43

» [source] exemplo filtro mediano
por kodo no kami 1/6/2020, 00:24

» [tutorial] criar filtro nas imagens (python)
por kodo no kami 22/5/2020, 19:29

» Wireless IDS Sagemcom
por kodo no kami 22/4/2020, 23:50

» [source] detectar dispositivos no wifi (sagemcom)
por kodo no kami 9/3/2020, 20:25

» [tutorial] wla assemblador (65xx, 68xx, z80, 8008, 8080 e huc6280)
por kodo no kami 2/2/2020, 16:42


Você não está conectado. Conecte-se ou registre-se

[tutorial] comunicação delphi e arduino (ComPort)

Ir para baixo  Mensagem [Página 1 de 1]

kodo no kami

kodo no kami

e ae galera nesse tutorial vamos ver como usar o delphi para enviar um comando para o arduino via porta serial, para o uso da porta serial no delphi podemos usar um componente chamado ComPort (ele nao vem por padrao deve ser instalado), para esse tutorial como de costume vamos evitar tacar fogo na casa usando o proteus kkk, tambem vou usar o VSPE que é um virtualizado de portas seriais com isso vamos criar duas portas virtuais COM e enviar o sinal pelo nosso programa delphi para uma porta virtual que vai enviar para dentro do proteus que vai esta simulando o circuito do nosso arduino, para começar vamos criar o circuito no proteus para isso abrimos ele primeiro

[tutorial] comunicação delphi e arduino (ComPort) Dq3clh

no proteus vamos usar o componente que simula o arduino deve ser baixado caso nao tenha ja que nao vem por padrao, o componente compim que vai simular a porta serial tambem vai permitir conectar na virtual, por fim o led que vamos acender (em projeto real tambem usamos um residor para o led nao queimar), conectamos o led em um dos pinos do arduino no meu caso foi no pino 13 (pode ser usado qualquer outro pino menos o pino 0 e 1 que são pinos de transferência para comunicação serial), os pinos 0 e 1 conectamos na porta serial do computador correspodente a porta TX e RX dele que provavelmente é a 2 e 3 no computador (se eu não me engano daria no mesmo usando o usb do arduino tambem)

[tutorial] comunicação delphi e arduino (ComPort) 1z2n0ug

se a gente der dois cliques no compim podemos configurar ele, no caso vou mudar a porta para COM4 (que vai ser a virtual que vou criar depois), e em physical e virtual baund rate vou colocar 9600

[tutorial] comunicação delphi e arduino (ComPort) 10ynyqc

nosso circuito ta pronto agora vou abrir o VSPE e criar um par de porta virtual COM4 <=> COM5

[tutorial] comunicação delphi e arduino (ComPort) 2rp7di1

agora criamos o codigo do arduino para isso abrimos a IDE do arduino

Código:
void setup() {
}

void loop() {
}

primeiro setamos o pino do led como saida, no meu caso é o pino 13

Código:
void setup() {
  pinMode(13,OUTPUT);
}

void loop() {
}

tambem iniciamos o led deslgado entao enviamos LOW nele usando a função digitalWrite

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
}

void loop() {
}

tambem iniciamos a comunicação serial com Serial.begin passamos como argumento baund que no meu caso foi 9600

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

void loop() {
}

agora dentro do loop usamos uma condição if e na condição dele passamos como argumento a função Serial.available() para executar o codigo apenas se houver alguma comunicação

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available()){
  }
}

agora basta ler o valor passado com a funçao Serial.read() e atribuir ele para uma variavel do tipo char

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
  }
}

agora colocamos outro if e comparamos se o valor naquela variavel é igual um caracter especifico que no meu caso vou colocar letra "k" ele executa aquele trecho

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
    }
  }
}

dentro daquele if ativamos o led com digitalWrite

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
      digitalWrite(13,HIGH);
    }
  }
}

colocamos um outro if e comparamos com outro caracter se for igual apagamos o led (no meu caso vai ser o 'n')

Código:
void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
      digitalWrite(13,HIGH);
    }
    if(valor == 'n'){
      digitalWrite(13,LOW);
    }
  }
}

com isso o nosso programa do arduino esta pronto bastando compilar e jogar para dentro do arduino (no caso do proteus temos que gerar o executavel .hex e carregar no simulador)

[tutorial] comunicação delphi e arduino (ComPort) 1qnxv5

agora vamos fazer o programa em delphi para enviar o "k" e "n" via serial, então abrimos o delphi

[tutorial] comunicação delphi e arduino (ComPort) Sblwuw

colocamos dois botões e componente comport

[tutorial] comunicação delphi e arduino (ComPort) 1sm5it

tambem setamos algumas propriedade no componente comport, no caso em port colocamos a porta COM que vamos usar no meu caso a COM5, e em baundrate colocamos o baund no meu caso br9600

[tutorial] comunicação delphi e arduino (ComPort) T54qk4

no evento onclick do do primeiro botao conectamos o comport

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ComPort1.Connected := true;
end;

agora basta enviar o caracter que vai ativar o led com o metodo WriteStr

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ComPort1.Connected := true;
  Comport1.WriteStr('k');
end;

depois desconectar novamente

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ComPort1.Connected := true;
  Comport1.WriteStr('k');
  ComPort1.Connected := false;
end;

fazemos o mesmo no outro botão porem com outro caracter que vai apagar o led

Código:

procedure TForm1.Button2Click(Sender: TObject);
begin
  ComPort1.Connected := true;
  Comport1.WriteStr('n');
  ComPort1.Connected := false;
end;

[tutorial] comunicação delphi e arduino (ComPort) 2v8h7a9

prontinho agora basta salvar e compilar o nosso codigo

[tutorial] comunicação delphi e arduino (ComPort) Fc1a2b

se tudo estiver certo quando apertar o botão vai acender o led

[tutorial] comunicação delphi e arduino (ComPort) 2nk3s3r

se apertar o outro botão vai apagar o led

[tutorial] comunicação delphi e arduino (ComPort) 9utg8n

bom galera não necessariamente precisa ser um led podemos acionar qualquer coisa pelo arduino

by kodo no kami

https://eofclub.in/forum

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos