As respostas para este tópico estão encerradas.
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por