Buona sera a tutti, sono un neofita del mondo arduino e sto cercando di svolgere un piccolo progetto per il mio hobby di falegnameria.
Vorrei attivare un motore passo passo a seconda dei parametri che inserisco tramite un display e tre bottoni
il primo per aumentare il valore
il secondo per diminuire
il terzo per confermare
al momento i parametri da inserire sono tre
lo spessore della lama
la lunghezza della tavola
il numero dei denti
il codice che ho scritto è il seguente
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#define bottonesu 11
#define ok 12
#define bottonegiu 13
int lama = 3;
void setup() {
pinMode(bottonesu, INPUT);
pinMode(ok, INPUT);
pinMode(bottonegiu, INPUT);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("SPESSORE LAMA");
lcd.setCursor(0, 1);
lcd.print("mm 3");
}
void loop() {
int pinsu = digitalRead(bottonesu);
int pinok = digitalRead(ok);
int pingiu = digitalRead(bottonegiu);
int fasi = 1;
int tavola = 200;
for ( int i = 0 ; i < 4 ; i++){
if (pinsu == HIGH && (fasi == 1 )) {
lama ++;
lcd.setCursor(3, 1);
lcd.print (lama);
}
else if (pingiu == HIGH && (fasi == 1)) {
lama --;
lcd.setCursor(3, 1);
lcd.print(lama);
}
else if (pinok == HIGH && (fasi == 1)){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MISURA TAVOLA");
lcd.setCursor(0, 1);
lcd.print("mm ");
lcd.setCursor(3, 1);
lcd.print(tavola);
fasi ++;
}
///////////////////////////SECONDA FASE//////////////////////////////////////////////////////
if (pinsu == HIGH && (fasi == 2)) {
tavola ++;
lcd.setCursor(3, 1);
lcd.print(tavola);
}
else if (pingiu == HIGH && (fasi == 2)) {
tavola --;
lcd.setCursor(5, 1);
lcd.print(tavola);
}
else if (pinok == HIGH && (fasi == 2)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("NUMERO DENTI");
lcd.setCursor(0, 1);
lcd.print("10");
fasi ++;
}
}
}
il risultato è il seguente
mi appare la scritta spessore lama e sotto mm3, e con i tasti me lo fa modificare, poi se premo il tasto di conferma mi salta la seconda fase e va in automatico alla terza fase, cioè numero denti, con sotto scritto 10. Se poi provo a modificare quel 10 con il bottone + o - non mi fa modificare il dieci ma mi scrive accanto ad un carattere di distanza.
Per completezza vi metto anche lo schema di montaggio
In fine vi chiedo di non darmi la soluzione spiattellata, ma di farmio capire dove sbaglio.
grazie a tutti.

