Hallo,
hab die Teemaschine nun ohne Benutzung einer Steppermotor-Libary zun laufen gebracht. Ist zwar jetzt blockierend aber macht was es soll.
#include <Button.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse, Zeichenzahl, Reihenzahl
// LCD-Displayanschluss: SCL an A5 und SDA an A4
#define NachObenTasterPin 7
#define NachUntenTasterPin 8
#define EnterTasterPin 9
int x =0;
int MotorSchritte =600;
unsigned int MotorGeschwindigkeit = 1000;
int ScrollTasterZaehler =0;
int EnterTasterZaehler =0;
Button NachObenTaster(NachObenTasterPin);
Button NachUntenTaster(NachUntenTasterPin);
Button EnterTaster(EnterTasterPin);
const int motorPin1 = 6;
const int motorPin2 = 5;
const int motorPin3 = 4;
const int motorPin4 = 3;
void setup()
{
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
NachObenTaster.begin();
NachUntenTaster.begin();
EnterTaster.begin();
Serial.begin(9600);
lcd.init();
lcd.clear();
lcd.backlight();
lcd.print("P1");
EnterTasterZaehler = 0;
ScrollTasterZaehler = 0;
}
void BeutelHoch()
{
while (x<MotorSchritte)
{
// 1
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 2
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 3
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 4
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 5
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 6
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
// 7
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
// 8
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
x++;
}
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
}
void BeutelRunter()
{
lcd.setCursor(0, 0);
lcd.print("Beutel runter ");
lcd.setCursor(0, 1);
lcd.print("bitte warten ");
while (x<MotorSchritte)
{
// 1
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 2
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 3
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 4
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 5
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delayMicroseconds(MotorGeschwindigkeit);
// 6
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
// 7
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
// 8
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delayMicroseconds(MotorGeschwindigkeit);
x++;
}
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
}
void Kamille()
{
lcd.setCursor(0, 0);
lcd.print("Zubereitung ");
lcd.setCursor(0, 1);
lcd.print("bitte warten ");
lcd.noBacklight();
delay(60000*10);
BeutelHoch();
}
void Schwarztee()
{
Serial.println("Programm läuft");
lcd.setCursor(0, 0);
lcd.print("Zubereitung ");
lcd.setCursor(0, 1);
lcd.print("bitte warten ");
delay(60000*4);
lcd.noBacklight();
BeutelHoch();
}
void GruenerTee()
{
Serial.println("Programm läuft");
lcd.setCursor(0, 0);
lcd.print("Zubereitung ");
lcd.setCursor(0, 1);
lcd.print("bitte warten ");
lcd.noBacklight();
delay(60000*3);
BeutelHoch();
}
void KraeuterTee()
{
Serial.println("Programm läuft");
lcd.setCursor(0, 0);
lcd.print("Zubereitung ");
lcd.setCursor(0, 1);
lcd.print("bitte warten ");
lcd.noBacklight();
BeutelHoch();
delay(60000*6);
}
void loop()
{
x = 0;
EnterTasterZaehler = 0;
EnterTaster.read();
NachUntenTaster.read();
NachObenTaster.read();
if (EnterTaster.pressed())
{
EnterTasterZaehler=1;
Serial.print("EnterTasterZaehler= ");
}
if (NachObenTaster.pressed())
{
//taster1modus wird um +1 erhöht
ScrollTasterZaehler++;
}
if (NachUntenTaster.pressed())
{
//taster1modus wird um -1 verkleinert
ScrollTasterZaehler--;
}
if (ScrollTasterZaehler == 6)
{
ScrollTasterZaehler = 0;
}
if (ScrollTasterZaehler == -1)
{
ScrollTasterZaehler = 5;
}
if (ScrollTasterZaehler == 0)
{
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);
lcd.print("Kamille 10 min.");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 1)
{
lcd.setCursor(0, 0);
lcd.print("Schwarztee 4 min");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 2)
{
lcd.setCursor(0, 0);
lcd.print("Gruener Tee 3 min");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 3)
{
lcd.setCursor(0, 0);
lcd.print("Kraeutetee 6 min");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 4)
{
lcd.setCursor(0, 0);
lcd.print("Beutel hoch ");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 5)
{
lcd.setCursor(0, 0);
lcd.print("Beutel runter ");
lcd.setCursor(0, 1);
lcd.print("weiter mit Pfeil");
}
if (ScrollTasterZaehler == 0 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
Kamille();
}
if (ScrollTasterZaehler == 1 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
Schwarztee();
}
if (ScrollTasterZaehler == 2 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
GruenerTee();
}
if (ScrollTasterZaehler == 3 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
KraeuterTee();
}
if (ScrollTasterZaehler == 4 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
BeutelHoch();
}
if (ScrollTasterZaehler == 5 && EnterTasterZaehler == 1)
{
EnterTasterZaehler = 0;
BeutelRunter();
}
}
Gruß
Gerald