Code:
//LCD
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int sinus_rauf [] =
{ 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9,
10, 11, 12, 14, 15, 16, 18, 20, 21, 23, 25, 27, 29 ,31, 33, 35,
37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76,
78, 81, 84, 87, 90, 93, 96, 99,102,105,108,111,115,118,121,124,
127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,
176,178,181,184,187,190,192,195,198,200,203,205,208,210,212,215,
217,219,221,223,225,227,229,231,233,234,236,238,239,240,242,243,
244,245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,
}; //128
int sinus_runter [] =
{
254,254,254,254,253,253,253,252,252,251,250,249,249,248,247,245,
244,243,242,240,239,238,236,234,233,231,229,227,225,223,221,219,
217,215,212,210,208,205,203,200,198,195,192,190,187,184,181,178,
176,173,170,167,164,161,158,155,152,149,146,143,139,136,133,130,
127,124,121,118,115,111,108,105,102, 99, 96, 93, 90, 87, 84, 81,
78, 76, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39,
37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 16, 15, 14, 12, 11,
10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0
}; //128
//resett pin definieren
#define PIN2RESET 10
// DIR und STEP pins definieren
#define dirPin_VL 28
#define stepPin_VL 26
#define dirPin_HL 55
#define stepPin_HL 54
#define dirPin_VR 34
#define stepPin_VR 36
#define dirPin_HR 61
#define stepPin_HR 60
//definiere enable pins:
#define enbl_VL 24
#define enbl_HL 38
#define enbl_VR 30
#define enbl_HR 56
//steps pro umdrehung definieren:
#define stepsPerRevolution 200 //1600
uint8_t taste = 0;
uint8_t s_vor = 0;
uint8_t s_rueck = 0;
uint8_t s_links = 0;
uint8_t s_rechts = 0;
uint8_t s_stop = 0;
uint8_t s_parken = 0;
uint16_t step_delay = 2000;
void setup()
{
//LCD
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.setBacklight(HIGH);
lcd.print("outdoor FB switch");
lcd.setCursor(0, 1);
lcd.print("smartphone 1");
delay(2000);
lcd.clear();
//pins als output:
pinMode(dirPin_VL, OUTPUT);
pinMode(stepPin_VL, OUTPUT);
pinMode(enbl_VL, OUTPUT);
pinMode(dirPin_HL, OUTPUT);
pinMode(stepPin_HL, OUTPUT);
pinMode(enbl_HL, OUTPUT);
pinMode(dirPin_VR, OUTPUT);
pinMode(stepPin_VR, OUTPUT);
pinMode(enbl_VR, OUTPUT);
pinMode(dirPin_HR, OUTPUT);
pinMode(stepPin_HR, OUTPUT);
pinMode(enbl_HR, OUTPUT);
// deaktiviere enable pins:
digitalWrite(enbl_VL, HIGH);
digitalWrite(enbl_HL, HIGH);
digitalWrite(enbl_VR, HIGH);
digitalWrite(enbl_HR, HIGH);
Serial1.begin(115200);
Serial.begin(115200);
//resett pin zustand definieren
pinMode(PIN2RESET, INPUT);
//resett pin aktivieren
digitalWrite(PIN2RESET, HIGH);
}
void loop()
{
if (Serial1.available())
{
taste = Serial1.read();
Serial.println(taste);
// taste_neu = taste;
delay(50);
tasten_abfrage();
}
richtung_abfrage();
}
/***********************************************************/
void richtung_abfrage(void)
{
if (s_rechts == 1) rechts_drehen();
if (s_links == 1) links_drehen();
if (s_vor == 1) vorwaerts();
if (s_rueck == 1) rueckwaerts();
if (s_stop == 1) alle_stepper_stop();
if (s_parken == 1) parken();
}
/***********************************************************/
void tasten_abfrage(void)
{
switch (taste)
{
case 116:// fahre vor - FB smartphone "t"
{
// beschleunigen();
vorwaerts();
break;
}
case 115:// fahre rückwärts - FB smartphone "s"
{
rueckwaerts();
break;
}
case 100:// rotate rechts - FB smartphone "d"
{
rechts_drehen();
break;
}
case 97:// rotate links - FB smartphone "a"
{
links_drehen();
break;
}
case 49: //alle Stepper stop - FB smartphone "1"
{
alle_stepper_stop();
break;
}
case 51: //parken - FB smartphone "3"
{
parken();
break;
}
}
}
/***********************************************************/
void reboot()
{
pinMode(PIN2RESET, OUTPUT);
digitalWrite(PIN2RESET, LOW);
delay(100);
}
/************************************************************/
hier ist die funktion für vorwärtsfahren:
Lesezeichen