Verificar conexaõ USB

Ola, estou a tentar fazer um programa que reconhece quando é usado o monitor serial, mas não funciona como é suposto:
`bool USB;

#define led 5

void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);

if (Serial){
USB = true;
Serial.println("Comunicação USB disponível");
digitalWrite(led, LOW);
}

else{
USB = false;
digitalWrite(led, HIGH);
}
}

void loop() {
if (USB == true){
Serial.println("teste");
}
}`

O objetivo é se abrir o monitor serial mesmo sem enviar nenhuma informação o led fica desligado e faz print no monitor;
Se não ligar ao monitor serial o led liga e não faz print no monitor serial.

Olá!

Já fazem alguns dias que você escreveu, não sei se já conseguiu resposta para a sua pergunta.

Conforme o guia de referência do Arduíno, a expressão if(Serial) só serve para este propósito que você deseja em placas com USB Nativa:

Arduino Due, Arduino Leonardo, Arduino Micro, Arduino Nano 33 IOT, Arduino Zero, Arduino MKR Zero, Arduino MKR1000

Ou seja, se a sua placa é um UNO, if(Serial) vai retornar sempre true

1 Like

Não tinha a resposta, agora tenho, muito obrigado, estou a tentar á tanto tempo tanta coisa, mas nunca funciona agora faz sentido.

Se possível ajude-me em mais uma coisa parecida, eu tenho isto
if (!SD.begin(pinCS)) { //Verifica se o cartão não foi iniciado Serial.println("Cartão SD não encontrado, verifique se está inserido"); SerialAPC.println("Cartão SD não encontrado, verifique se está inserido"); while(1); } //Termina o programa do if
e sempre que tento adicionar um else ao if simplesmente deixa de funcionar como deveria.

Em teoria você não precisaria do else, porque se o cartão for inicializado corretamente, o programa deve seguir adiante.

Dê uma olhada nos exemplos que são destinados ao uso do cartão SD. :wink:

1 Like

Ok, muito obrigado pela ajuda.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.