Hi,
I deleted all comments and so reduced the file size fro 13kB to 7kB. Hopefully I did no mistake.
The sketch contains all planned functions for my project, but till jet is only used for testing the serial port.
On PC side I use PureBasic because with this proceccing language I'm not fit for programming diagrams, graphics ect. If it make sense, I send this code also.
here the Arduino sketch:
const int MessPin0 = A0;
const int MessPin1 = A1;
const int MessPin2 = A2;
const int MessPin3 = A3;
const int MessPin4 = A4;
const int MessPin5 = A5;
const int Steuerspannung1P = 13;
const int Steuerspannung1M = 12;
const int Steuerspannung2P = 11;
const int Steuerspannung2M = 10;
const int Steuerspannung3P = 5;
const int Steuerspannung3M = 4;
const int Steuerspannung4P = 3;
const int Steuerspannung4M = 2;
const int PWMSpannung = 6;
const int LedPin1 = 8;
const int LedPin2 = 9;
int Led = 0;
int Aus = 0;
const int TasterPin = 7;
int Taster = 0;
int i = 0;
String Zeichen = "";
String Selektor = "";
String ss = "";
int Selekt = 0;
int Zahl = 0;
String Wert = "";
int stellen = 0;
int Strom = 0;
String Zeit = "";
int warte = 0;
void setup() {
Serial.begin(57600);
pinMode(LedPin1, OUTPUT);
pinMode(LedPin2, OUTPUT);
pinMode(TasterPin, INPUT_PULLUP);
pinMode(Steuerspannung1P, OUTPUT);
pinMode(Steuerspannung1M, OUTPUT);
pinMode(Steuerspannung2P, OUTPUT);
pinMode(Steuerspannung2M, OUTPUT);
pinMode(Steuerspannung3P, OUTPUT);
pinMode(Steuerspannung3M, OUTPUT);
pinMode(Steuerspannung4P, OUTPUT);
pinMode(Steuerspannung4M, OUTPUT);
pinMode(PWMSpannung, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, LOW);
if (Serial.available() > 0) {
digitalWrite(LED_BUILTIN, HIGH);
Zeichen = Serial.read();
Zahl = Zeichen.toInt() - 48;
if (Zeichen.equals("77")){
Serial.print("A" + String(analogRead(MessPin1)) + " ");
Serial.print("B" + String(analogRead(MessPin2)) + " ");
Serial.print("C" + String(analogRead(MessPin3)) + " ");
Serial.print("D" + String(analogRead(MessPin4)) + " ");
Serial.println();
}
if (Zeichen.equals("84")){
Serial.print("P" + String(analogRead(MessPin0)) + " ");
Serial.print("R" + String(analogRead(MessPin5)) + " ");
Serial.println();
}
if((Zahl <0) || (Zahl > 9)) Selekt = 0;
if (Selekt == 1){
Selektor = Selektor + String(Zahl);
}
if(Zeichen.equals("83")) {
Selekt = 1;
Selektor = "";
}
if (Zeichen.equals("43")){
if (Selektor.length() == 4){
ss = Selektor.charAt(0);
if (ss.equals("1")){
digitalWrite(Steuerspannung1P, HIGH);
digitalWrite(Steuerspannung1M, LOW);
} else {
digitalWrite(Steuerspannung1P, LOW);
digitalWrite(Steuerspannung1M, LOW);
}
ss = Selektor.charAt(1);
if (ss.equals("2")){
digitalWrite(Steuerspannung2P, HIGH);
digitalWrite(Steuerspannung2M, LOW);
} else {
digitalWrite(Steuerspannung2P, LOW);
digitalWrite(Steuerspannung2M, LOW);
}
ss = Selektor.charAt(2);
if (ss.equals("3")){
digitalWrite(Steuerspannung3P, HIGH);
digitalWrite(Steuerspannung3M, LOW);
} else {
digitalWrite(Steuerspannung3P, LOW);
digitalWrite(Steuerspannung3M, LOW);
}
ss = Selektor.charAt(3);
if (ss.equals("4")){
digitalWrite(Steuerspannung4P, HIGH);
digitalWrite(Steuerspannung4M, LOW);
} else {
digitalWrite(Steuerspannung4P, LOW);
digitalWrite(Steuerspannung4M, LOW);
}
}
}
if (Zeichen.equals("45")){
if (Selektor.length() == 4){
ss = Selektor.charAt(0);
if (ss.equals("1")){
digitalWrite(Steuerspannung1P, LOW);
digitalWrite(Steuerspannung1M, HIGH);
} else {
digitalWrite(Steuerspannung1P, LOW);
digitalWrite(Steuerspannung1M, LOW);
}
ss = Selektor.charAt(1);
if (ss.equals("2")){
digitalWrite(Steuerspannung2P, LOW);
digitalWrite(Steuerspannung2M, HIGH);
} else {
digitalWrite(Steuerspannung2P, LOW);
digitalWrite(Steuerspannung2M, LOW);
}
ss = Selektor.charAt(2);
if (ss.equals("3")){
digitalWrite(Steuerspannung3P, LOW);
digitalWrite(Steuerspannung3M, HIGH);
} else {
digitalWrite(Steuerspannung3P, LOW);
digitalWrite(Steuerspannung3M, LOW);
}
ss = Selektor.charAt(3);
if (ss.equals("4")){
digitalWrite(Steuerspannung4P, LOW);
digitalWrite(Steuerspannung4M, HIGH);
} else {
digitalWrite(Steuerspannung4P, LOW);
digitalWrite(Steuerspannung4M, LOW);
}
}
}
if(((Zahl <0) || (Zahl > 9)) && (stellen == 1)){
stellen = 0;
Strom = map(Wert.toInt(), 0, 100, 0, 255);
analogWrite(PWMSpannung, Strom);
}
if (stellen == 1){
Wert = Wert + String(Zahl);
}
if (Zeichen.equals("75")){
stellen = 1;
Wert = "";
}
if(((Zahl <0) || (Zahl > 9)) && (warte == 1)){
warte = 0;
delay(Zeit.toInt());
}
if (warte == 1){
Zeit = Zeit + String(Zahl);
}
if (Zeichen.equals("86")){
warte = 1;
Zeit = "";
}
if (Led == 1){
if (Zahl == 1){
digitalWrite(LedPin1, HIGH);
}
if (Zahl == 2){
digitalWrite(LedPin2, HIGH);
}
Led = 0;
}
if (Zeichen.equals("76")){
Led = 1;
}
if (Aus == 1){
if (Zahl == 1){
digitalWrite(LedPin1, LOW);
}
if (Zahl == 2){
digitalWrite(LedPin2, LOW);
}
Aus = 0;
}
if (Zeichen.equals("65")){
Aus = 1;
}
if (Zeichen.equals("69")){
Zeichen = "";
Serial.println("X");
}
if (Zeichen.equals("67")){
Serial.println(String(map(Strom, 0, 255, 0, 100)));
}
}
Taster = digitalRead(TasterPin);
if (Taster == LOW) {
analogWrite(PWMSpannung, 0);
Strom = 0;
digitalWrite(LedPin2, HIGH);
delay(1000);
digitalWrite(LedPin2, LOW);
}
}