Wygląda na to, że bez większych poblemów i kombinacji, da się wykorzystać Nano do tego projektu.
W międzyczasie pobawiłem się i odpaliłem mój LCD, który zamierzam wykorzystać do wyświetlania komunikatów podczas wykonywania kolejnych cykli programu.
Powinno bez problemu dać się pogodzić i stepper i LCD.
W razie napotkania problemów będę pytał.

No i pytam:
Jak byście rozwiązali problem pinów?
LCD używa tych samych w podanym przykładzie. Nie znając dokładnie możliwości każdego z pinów (być może się różnią) nie chciałbym zmienić np wyjść dla LCD które nie będą działały (mało prawdopodobne ale ponieważ nie mam pewności ... ).
jak byście to rozwiązali:
poniższy kod działał bez LCD na wybranych pinach.
Kod:
#include <LiquidCrystal.h>
#include <Stepper.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
const int stepsPerRevolution = 140;
int inPin_Prog_1 = 0;
int inPin_Prog_2 = 1;
int LED1 = 12;
int LED2 = 4;
int CAMERA = 13;
int val1 = 0;
int i = 1;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
void setup() {
Serial.begin(9600);
pinMode(inPin_Prog_2,INPUT_PULLUP);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);//Program numer
pinMode(CAMERA,OUTPUT);
myStepper.setSpeed(175);
digitalWrite(CAMERA,LOW);
// set up the LCD's number of columns and rows:
lcd.begin(8, 2);
// Print a message to the LCD.
lcd.print("TurnTab1");
}
void loop() {
val1 = digitalRead(inPin_Prog_2);
if(val1 == HIGH ){
digitalWrite(LED1, HIGH);
program(24,2);
}else{
digitalWrite(LED1, LOW); // turn LED ON
}
}
void program(int shots, int prog){
String program = "Program ";
lcd.setCursor(8, 1);
lcd.print(program + prog);
Serial.println(program + prog);
delay(1000);
Serial.println("======= 3 =======");
delay(1000);
Serial.println("======= 2 =======");
delay(1000);
Serial.println("======= 1 =======");
digitalWrite(LED1, HIGH);
for(int i=1; i <= shots; i++){
String message = "Shoot ";
String of = "of";
Serial.println(message + i + of + shots);
lcd.setCursor(0, 1);
lcd.print(message + i);
digitalWrite(LED1, LOW);
digitalWrite(CAMERA, HIGH);
delay(500);
digitalWrite(CAMERA,LOW);
delay(1000);
digitalWrite(LED1, HIGH);
myStepper.step(stepsPerRevolution);
delay(1000);
digitalWrite(LED1,LOW);
if (i>=shots){
Serial.println("I'm done");
}
}
}
Które piny najlepiej przypisać dla danych LCD ?