Boa tarde,
estou iniciando no mundo do Arduino e me deparei com o seguinte problema:
Montei um código para digitar uma frequência pela entrada Serial e com isso emitir um som com o buzzer
Segue código abaixo:
[code]
char tom[4];
int tomint;
void setup() {
Serial.begin(9600);
while(Serial.available())
Serial.read();
pinMode(11,OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int index = 0;
delay(200);
int numcar = Serial.available();
if (numcar > 4) {
numcar = 4;
}
while (numcar--) {
tom[index++] = Serial.read();
}
tomint = strtol(tom,NULL,10);
Serial.print("Hz escolhida: ");
Serial.println(tomint);
delay(500);
}
tone(11,tomint);
delay(2000);
noTone(11);
delay(2000);
}
[/code]
O problema é que se eu digitar 1 por exemplo o meu código considera 1000, se eu quiser colocar valores abaixo de 1000 tenho que colocar 0001 por exemplo.
Como faço para consertar isso?
Outra dúvida, em C++ eu colocar cin variável, e o programa aguarda até a resposta do usuário, é possível fazer isso no Arduino, veja que a programação acima ficaria muitooooo menor.
Desde já obrigado!