buongiorno a tutti
sto scrivendo un sketch per motorizzare una parabola con una bussola che indichi la posizione sul display
il mio problema è che quando compilo mi da una serie di errori che li capisco più o meno ma non saprei come risolverli
ho una tastiera collegata su un pin analogico
non è tutta farina del mio sacco,ho preso da più sketch esistenti trovati su internet
questo è il sketch che ho scritto fin ora:
#include <LiquidCrystal.h>
#include <EEPROM.h>
#define inCom A0 // pin in pulsanti
#define inPot A1 // pin in potenziometro elevazione
#define inMot 13 // pin motore acceso
#define motEa 10 // pin motore elevazione 1
#define motEb 11 // pin motore elevazione 2
#define motDa 12 // pin motore orientamento 1
#define motDb 13 // pin motore orientamento 2
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //inizializza libreria display
float dirIn = 0; // lettura bussola in gradi
int dirLock = 0; // direzione ok
float compass = 0; // valore orientamento (cmps03)
int manButton; //ingresso comandi manuali
void setup() {
pinMode(inPot, INPUT); // ingresso potenziometro elevazione
pinMode(inCom, INPUT); //ingresso tastiera
pinMode(8, INPUT); // ingresso bussola
pinMode(motEa, OUTPUT); //motore elevazione
pinMode(motEb, OUTPUT);
pinMode(motDa, OUTPUT); //motore orientamento
pinMode(motDb, OUTPUT);
}
void loop() {
int dirHB = EEPROM.read(0); // legge direzione dalla cella 0
compass = pulseIn(8, HIGH); // lettura bussola
dirIn = (compass/1000-1)*10.15; //trasforma in gradi
manButton = analogRead(inCom); // valori comandi manuali immessi su A0
//valori comandi manuali
{
if (manButton < 50) ferma(); // arresta motori
if (manButton > 150 && manButton < 250) chiudi(); // 200 chiude antenna
if (manButton > 250 && manButton < 350) alza(); // 300 alza antenna
if (manButton > 350 && manButton < 450) abbassa(); // 400 abassa antenna
if (manButton > 450 && manButton < 550) orario(); // 500 rotazione oraria
if (manButton > 550 && manButton < 650) antiorario(); // 600 rotazione antioraria
{
if (digitalRead(inMot) == HIGH) chiude(); // chiude a motore acceso
}
}
//********** FUNZIONI MOTORI **********/
void alza(){
digitalWrite(motEb, HIGH);
digitalWrite(motEa, LOW);
}
//****************************
void abbassa(){
digitalWrite(motEb, HIGH);
digitalWrite(motEa, LOW);
}
//****************************
void orario(){
digitalWrite(motDb, HIGH);
digitalWrite(motDa, LOW);
}
//****************************
void antiorario(){
digitalWrite(motDa, HIGH);
digitalWrite(motDb, LOW);
}
//****************************
void ferma(){
digitalWrite(motDa, HIGH);
digitalWrite(motDb, HIGH);
digitalWrite(motEb, HIGH);
digitalWrite(motEa, HIGH);
}
//****************************
void chiudi(){ // chiude antenna da tasto
}
//****************************
void chiude(){ // chiude antenna motore acceso
}
}
mi seleziona la riga con if e ferma e mi dice:
Arduino:1.6.5 (Windows 7), Scheda:"Arduino/Genuino Uno"
sketch_parabola_motorizzata_mio.ino: In function 'void loop()':
sketch_parabola_motorizzata_mio:41: error: 'ferma' was not declared in this scope
sketch_parabola_motorizzata_mio:48: error: 'chiudi' was not declared in this scope
sketch_parabola_motorizzata_mio:49: error: 'alza' was not declared in this scope
sketch_parabola_motorizzata_mio:50: error: 'abbassa' was not declared in this scope
sketch_parabola_motorizzata_mio:51: error: 'orario' was not declared in this scope
sketch_parabola_motorizzata_mio:52: error: 'antiorario' was not declared in this scope
sketch_parabola_motorizzata_mio:54: error: 'chiude' was not declared in this scope
sketch_parabola_motorizzata_mio:60: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:65: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:70: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:75: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:80: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:87: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio:90: error: a function-definition is not allowed here before '{' token
sketch_parabola_motorizzata_mio.ino: At global scope:
sketch_parabola_motorizzata_mio:103: error: expected declaration before '}' token
'ferma' was not declared in this scope