Ciao a tutti,
quest'oggi sono intenzionato a far eseguire al mio Arduino dei calcoli con seno e coseno. Non riesco a programmarlo però perché mi da valori che non so utilizzare [-1;1]...
Il calcolo che devo fare è "int a = b*cos(alfa)", dove "b" è un numero intero. mi potreste spiegare e/o fare degli esempi?
Grazie 100 a tutti! =D Credo di aver capito...
Ora ho un altro problema però, ho provato a riscrivere lo sketch di fs10, ecco la prima stesura:
void setup() {
Serial.begin(9600);
float x;
float a;
float b;
}
void loop() {
b = map(x,0.00,360.00,0.00,6.28); // trasformo i valori da gradi(0,360) in radianti a calcoli fatti(0,6.28)
a=cos(b);
Serial.println(a);
x +=10;
if(x==360){
Serial.println(" Giro!");
}
delay(1000);
}
però mi dava che tutte e tre le variabili non erano dichiarate per tale scopo... perché?
A questo punto ho provato a mettere le tre variabili direttamente nel void loop() ma mi dava sempre 0.00 in seriale. Quindi ho pensato che fosse perché all'inizio di ogni giro mi azzerasse le variabili dichiarandole ad ogni giro... Ho introdotto un for per risolvere il problema ma nulla...
void setup() {
Serial.begin(9600);
}
void loop() {
float x;
float a;
float b;
for(int i =0; i <370; i +=10){
b = map(x,0.00,360.00,0.00,6.28);
a=cos(b);
Serial.println(a);
x +=10;
if(x==360){
Serial.println(" Giro!");
}
delay(1000);
}
}
brioches95:
però mi dava che tutte e tre le variabili non erano dichiarate per tale scopo... perché?
Perchè dichiarandole all'interno del void setup() non sono variabili globali ma locali.
Se vuoi rendere una variabile globale (visibile in tutto lo sketch) devi dichiararle prima di qualsiasi funzione all'inizio dello sketch: