in meinem konkretenfall so
ist zwar c aber dennoch find ich gut verständlich
ich werde das auch noch optimieren müssen
ich habe hier noch den fall das keine daten kommen bedacht das war bei mir besonders wichtig
ansonsten bei treppe und keine verbindung treppe: robo ade
if ((time+500)<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
digitalWrite(13,0);
der teil immer wieder
Code:
#include <Servo.h>
int byte1;
int byte2;
int byte3;
int byte4;
int byte5;
int byte6;
int byte7;
int startbyte;
unsigned long time;
Servo myservo;
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
myservo.attach(9);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(3, OUTPUT);
pinMode(11, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(13,1);
}
void loop() {
digitalWrite(13,1);
time = millis();
do {
if (Serial.available() ==1) {
startbyte=byte(Serial.read()); //serial eingang prüfen ob "post
}
// startbyte=0;
if ((time+500)<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
digitalWrite(13,0);
//myservo.write(byte5-1);
}
}
while (startbyte<254);
startbyte=0;
digitalWrite(13,1);
time = millis();
do{
if (time+1000<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
//myservo.write(byte5-1);
}
}
while (Serial.available() ==0); //warten bis was ankommt
byte1=Serial.read();
do{
if (time+1000<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
//myservo.write(byte5-1);
}
}
while (Serial.available() ==0); //warten bis was ankommt
byte2=Serial.read();
do{
if (time+1000<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
//myservo.write(byte5-1);
}
}
while (Serial.available() ==0); //warten bis was ankommt
byte3=Serial.read();
do{
if (time+1000<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
//myservo.write(byte5-1);
}
}
while (Serial.available() ==0); //warten bis was ankommt
byte4=Serial.read();
do{
if (time+1000<millis()){
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
analogWrite(3,0); //HALT!!!
//myservo.write(byte5-1);
}
}
while (Serial.available() ==0); //warten bis was ankommt
byte5=Serial.read();
analogWrite(5, byte1-1);
analogWrite(6, byte2-1);
analogWrite(3, byte3-1);
analogWrite(11, byte4-1);
myservo.write(byte5-1);
}
Lesezeichen