Software für den Cocktailbot
This commit is contained in:
parent
3bc847acd6
commit
ead1fceefc
|
@ -0,0 +1,184 @@
|
|||
#include <FastLED.h>
|
||||
#define NUM_LEDS 2
|
||||
#define DATA_PIN 9
|
||||
int pos = 0;
|
||||
long y = 0;
|
||||
CRGB leds[NUM_LEDS];
|
||||
|
||||
|
||||
void setup() {
|
||||
// put your setup code here, to run once:
|
||||
|
||||
Serial.begin(9600);
|
||||
Serial.setTimeout(2000);
|
||||
pinMode(6, OUTPUT); //Enable
|
||||
pinMode(5, OUTPUT); //Step
|
||||
pinMode(4, OUTPUT); //Direction
|
||||
|
||||
pinMode(7, OUTPUT); //Enable
|
||||
pinMode(2, OUTPUT); //Step
|
||||
pinMode(3, OUTPUT); //Direction
|
||||
|
||||
|
||||
digitalWrite(6, LOW);
|
||||
digitalWrite(7, HIGH); //Low aktiv
|
||||
|
||||
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void loop(){
|
||||
leds[0] = CRGB::Red;
|
||||
leds[1] = CRGB::Blue;
|
||||
FastLED.show();
|
||||
String inputData;
|
||||
int i;
|
||||
y++;
|
||||
// delayMicroseconds(15000);
|
||||
if (y == 2500) { y = 0; Serial.print("timeout\r\n");}
|
||||
if(Serial.available() >= 2) {
|
||||
y=0;
|
||||
inputData = Serial.readString();
|
||||
leds[0] = CRGB::Red;
|
||||
leds[1] = CRGB::Red;
|
||||
FastLED.show();
|
||||
switch (inputData.charAt(0)) {
|
||||
case 'a':
|
||||
StepperY(0);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'b':
|
||||
StepperY(1);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'c':
|
||||
StepperY(2);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'd':
|
||||
StepperY(3);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'e':
|
||||
StepperY(4);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'f':
|
||||
StepperY(5);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'g':
|
||||
StepperY(6);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'h':
|
||||
StepperY(7);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'i':
|
||||
StepperY(8);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
case 'j':
|
||||
StepperY(9);
|
||||
StepperX(int(inputData.charAt(1))); //Menge
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
leds[0] = CRGB::Green;
|
||||
leds[1] = CRGB::Green;
|
||||
FastLED.show();
|
||||
for (i = 0; i < 550; i++) delayMicroseconds(15000);
|
||||
Serial.print("Fertig\r\n");
|
||||
break;
|
||||
default:
|
||||
for (i = 0; i < 550; i++) delayMicroseconds(15000);
|
||||
Serial.print("error\r\n");
|
||||
Serial.print(inputData);
|
||||
leds[0] = CRGB::Yellow;
|
||||
leds[1] = CRGB::Yellow;
|
||||
inputData = "";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void StepperX(int Menge) { //Dosiermenge
|
||||
long int Index;
|
||||
int i;
|
||||
// put your main code here, to run repeatedly:
|
||||
digitalWrite(7, LOW);
|
||||
for (Index = 0; Index < 2000; Index++)
|
||||
{
|
||||
digitalWrite(2, HIGH);
|
||||
delayMicroseconds(1500);
|
||||
digitalWrite(2, LOW);
|
||||
delayMicroseconds(1500);
|
||||
}
|
||||
digitalWrite(3, HIGH);
|
||||
Menge = Menge -48; //Char to int
|
||||
Serial.print("Menge");
|
||||
Serial.print(Menge);
|
||||
Serial.print("\r\n");
|
||||
if (Menge > 0 && Menge < 10) {
|
||||
for (i = 0; i < Menge; i++){
|
||||
for (Index = 0; Index < 55; Index++) delayMicroseconds(15000);
|
||||
}
|
||||
}
|
||||
for (Index = 0; Index < 2000; Index++)
|
||||
{
|
||||
digitalWrite(2, HIGH);
|
||||
delayMicroseconds(1500);
|
||||
digitalWrite(2, LOW);
|
||||
delayMicroseconds(1500);
|
||||
}
|
||||
digitalWrite(7, HIGH);
|
||||
digitalWrite(3, LOW);
|
||||
for (Index = 0; Index < 55; Index++) delayMicroseconds(15000);
|
||||
Serial.print("Fertig\r\n");
|
||||
|
||||
}
|
||||
|
||||
void StepperY(int soll) { //Position
|
||||
delayMicroseconds(1500);
|
||||
long int Index;
|
||||
digitalWrite(6, LOW);
|
||||
while (soll > pos) {
|
||||
Serial.print("rechts");
|
||||
|
||||
// for (Index = 0; Index < 55; Index++) delayMicroseconds(15000);
|
||||
for (Index = 0; Index < 500; Index++)
|
||||
{
|
||||
digitalWrite(5, HIGH);
|
||||
delayMicroseconds(1500);
|
||||
digitalWrite(5, LOW);
|
||||
delayMicroseconds(1500);
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
while (soll < pos) {
|
||||
|
||||
digitalWrite(4, HIGH); //Links Drehen
|
||||
|
||||
Serial.print("links");
|
||||
|
||||
// for (Index = 0; Index < 55; Index++) delayMicroseconds(15000);
|
||||
for (Index = 0; Index < 500; Index++)
|
||||
{
|
||||
digitalWrite(5, HIGH);
|
||||
delayMicroseconds(1500);
|
||||
digitalWrite(5, LOW);
|
||||
delayMicroseconds(1500);
|
||||
}
|
||||
digitalWrite(4, LOW); //Wieder normale richtung
|
||||
pos--;
|
||||
}
|
||||
|
||||
digitalWrite(6, HIGH);
|
||||
// for (Index = 0; Index < 55; Index++) delayMicroseconds(15000);
|
||||
Serial.print("pos: ");
|
||||
Serial.print(pos, DEC);
|
||||
|
||||
}
|
Loading…
Reference in New Issue