-

Exibições: 344

As respostas para este tópico estão encerradas.

Respostas a este tópico

André bom dia.

voce define : String str; // Variavel string para receber dados da Serial

 usa  :          if(Serial.available() > 0)    para ver se tem dados na saída da serial,

e  usa :        str = Serial.readStringUntil('\n'); // Le os dados da serial para uma string

para ler os dados enviados pela serial.

Se quiser, post seu código aqui, ou no PASTEBIN, (e post o link), para facilitar o entendimento da sua dificuldade.

Rui

Oi André, bom dia.

Seque abaixo um código que mostra o uso do serial para receber dados.

Ele recebe um numero e converte em codificação para sete segmentos.

Sei que a rotina deve ter mais  coisa, como a geração dos numeros que vão aparecer para a 

pessoa que vai apertar o botão, controle do botão, etc etc.

Mas este fraqmento de código deve mostrar no 7Seg o numero digitado.

Eu usei os pinos D13 até D7 do arduino Uno, voce pode midifica-los para seu Arduino.

Rui


// o serial monitor deve estar configurado como No line ending

int SegA = 13;
int SegB = 12;
int SegC = 11;
int SegD = 10;
int SegE = 9;
int SegF = 8;
int SegG = 7;

char tamanho; // Variavel pra receber o numero digitado
unsigned int num = 11;

byte disp_7[11][7]={
{1,1,1,1,1,1,0}, //dígito 0
{0,1,1,0,0,0,0}, //dígito 1
{1,1,0,1,1,0,1}, //dígito 2
{1,1,1,1,0,0,1}, //dígito 3
{0,1,1,0,0,1,1}, //dígito 4
{1,0,1,1,0,1,1}, //dígito 5
{1,0,1,1,1,1,1}, //dígito 6
{1,1,1,0,0,0,0}, //dígito 7
{1,1,1,1,1,1,1}, //dígito 8
{1,1,1,1,0,1,1}, //dígito 9
{0,0,0,0,0,0,0}, //off (10)
};

int button=25;

void setup()
{
Serial.begin(9600);
pinMode(SegA, OUTPUT); //seg A
pinMode(SegB, OUTPUT); //seg B
pinMode(SegC, OUTPUT); //seg C
pinMode(SegD, OUTPUT); //seg D
pinMode(SegE, OUTPUT); //seg E
pinMode(SegF, OUTPUT); //seg F
pinMode(SegG, OUTPUT); //seg G
pinMode(button, INPUT);
Serial.println("Digite um numero de 0 a 9");
}

void loop()
{
if(Serial.available() > 0) // Verifica se tem dados disponiveis na serial
{
num = Serial.parseInt(); // Le os dados da serial
Serial.print("Numero digitado = "); Serial.println(num);
}
// Serial.print("Numero digitado = "); Serial.println(num);

if (num <11)
{
// este trecho é so para ver os digitos do sete sgmentos no serial
// deve ser retirado depois
Serial.println(disp_7[num][0]);
Serial.println(disp_7[num][1]);
Serial.println(disp_7[num][2]);
Serial.println(disp_7[num][3]);
Serial.println(disp_7[num][4]);
Serial.println(disp_7[num][5]);
Serial.println(disp_7[num][6]);
// até aqui

Serial.println(" ");

digitalWrite(SegA, disp_7[num][0]);
digitalWrite(SegB, disp_7[num][1]);
digitalWrite(SegC, disp_7[num][2]);
digitalWrite(SegD, disp_7[num][3]);
digitalWrite(SegE, disp_7[num][4]);
digitalWrite(SegF, disp_7[num][5]);
digitalWrite(SegG, disp_7[num][6]);

delay(2000);

Serial.println("Digite outro numero de 0 a 9");
}

num = 11;
}

André

post o novo código para que eu possa ver onde sera rotina do botão na sua versão.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço